菜单

js常用方法总结_此外_脚本之家澳门太阳娱乐手机登录

2020年2月27日 - 澳门太阳娱乐手机登录

概述

Underscore.js是多个很得力的库,压缩后独有4KB。它提供了几十种函数式编制程序的措施,大大有扶植了Javascript的编制程序。MVC框架backbone.js便是依赖这么些库。

它定义了叁个下划线对象,函数库的有着办法都归于这几个指标。那几个主意大约上得以分为:会集、函数和工具中国共产党第五次全国代表大会类。

在node.js下安装

Underscore.js不只能够用于浏览器境况,还足以用来node.js。安装命令如下:复制代码 代码如下:npm install
underscore不过,node.js不能够一贯利用_用作变量名,由此要用下边的诀要应用underscore.js。复制代码 代码如下:var u = require;

与聚焦有关的不二等秘书籍

Javascript语言的数码集结,包含两种结构:数组和目的。以下的点子同有的时候间适用于那三种布局。

map

该方法对集中的各种成员相继张开某种操作,将赶回的值依次存入贰个新的数组。复制代码 代码如下:_.map([1, 2, 3], function{
return num * 3; }); // [3, 6, 9] _.map({one : 1, two : 2, three :
3}, function{ return num * 3; }); // [3, 6, 9]

each

该情势与map相近,依次对集中的各种成员举行某种操作,但是不再次回到值。复制代码 代码如下:_.each; _.each({one : 1,
two : 2, three : 3}, alert);

reduce

该办法依次对集中的各种成员进行某种操作,然后将操作结果累加在某一个早先值之上,全体操作截止之后,重回累积的值。

js常用方法总结_此外_脚本之家澳门太阳娱乐手机登录。该办法选用八个参数。第叁个参数是被拍卖的聚众,第三个参数是对各种成员进行操作的函数,第多少个参数是一同用的变量。

_.reduce([1, 2, 3], function{ return memo + num; }, 0卡塔尔国; //
6reduce方法的第一个参数是操作函数,它自个儿又接受多个参数,第三个是一同用的变量,第二个是集合每一个成员的值。

filter 和 reject

filter方法依次对聚焦的各样成员开展某种操作,只回去操作结果为true的分子。复制代码 代码如下:_.filter([1, 2, 3, 4, 5,
6], function{ return num % 2 == 0; }); // [2, 4,
6]reject方法只回去操作结果为false的积极分子。复制代码 代码如下:_.reject([1, 2, 3, 4, 5,
6], function{ return num % 2 == 0; }); // [1, 3, 5]

every 和 some

every方法依次对聚焦的各种成员开展某种操作,假设具有成员的操作结果都为true,则赶回true,不然重临false。复制代码 代码如下:_.every([1, 2, 3, 4, 5,
6], function{ return num % 2 == 0; }卡塔尔; //
falsesome方准绳是一旦有叁个成员的操作结果为true,则赶回true,不然重返false。复制代码 代码如下:_.some([1, 2, 3, 4, 5, 6],
function{ return num % 2 == 0; }); // true

find

该方法依次对聚焦的种种成员开展某种操作,再次来到第一个操作结果为true的分子。假设持有成员的操作结果都为false,则再次回到undefined。复制代码 代码如下:_.find([1, 2, 3, 4, 5, 6],
function{ return num % 2 == 0; }); // 2

contains

假若有个别值在汇集内,该办法重返true,不然重临false。复制代码 代码如下:_.contains; // true

countBy

该措施依次对集中的各个成员开展某种操作,将操作结果一致的积极分子算作一类,最后回到多少个目的,注脚各类操作结果对应的分子数量。复制代码 代码如下:_.countBy([1, 2, 3, 4, 5],
function { return num % 2 == 0 ? ‘even’ : ‘odd’; }); // {odd: 3, even:
2}

shuffle

该格局重返一个打乱次序的集结。复制代码
代码如下:_.shuffle; // [4, 1, 6, 3, 5, 2]

size

该格局再次来到集结的分子数量。复制代码
代码如下:_.size({one : 1, two : 2, three : 3}); // 3

与对象有关的点子

toArray

该办法将目标转为数组。复制代码
代码如下:_.toArray; // [0, 1, 2]

pluck

该办法将多少个指标的某叁个本性的值,提取成八个数组。复制代码 代码如下:var stooges = [{name :
‘moe’, age : 40}, {name : ‘larry’, age : 50}, {name : ‘curly’, age :
60}]; _.pluck; // [“moe”, “larry”, “curly”]

与函数相关的办法

bind

该方法绑定函数运转时的上下文,作为叁个新函数再次来到。复制代码 代码如下:_.bind(function, object,
[*arguments]卡塔尔请看下边包车型地铁实例。复制代码
代码如下:var o = { p: 2, m: function ;} }; o.m(卡塔尔国 // 2 _.bind // 1

bindAll

该方法将有些对象的保有办法,全部绑定在该对象方面。复制代码 代码如下:var buttonView = { label :
‘underscore’, onClick : function(卡塔尔国{ alert(‘clicked: ‘ + this.label卡塔尔(قطر‎; },
onHover : function(State of Qatar{ console.log(‘hovering: ‘ + this.label卡塔尔国; } };
_.bindAll;

partial

该措施绑定将有些函数与参数绑定,然后作为一个新函数再次回到。复制代码 代码如下:var add = function { return a

memoize

该情势缓存三个函数针对某些参数的运维结果。复制代码 代码如下:var fibonacci = _.memoize {
return n < 2 ? n : fibonacci +
fibonacci;假诺叁个函数有八个参数,则须要提供三个hashFunction,用来生成标志缓存的哈希值。

delay

该方式可以将函数推迟钦命的时刻再运转。复制代码 代码如下:var log = _.bind;
_.delay(log, 1000, ‘logged later’); // ‘logged later’

defer

该方法能够将函数推迟到待运转的天职位数量为0时再运营,近似于setTimeout推迟0秒运营的功力。复制代码 代码如下:_.defer{ alert;

throttle

该方法再次回到贰个函数的新本子。一连调用这些新本子的函数时,必得等待一如时期才会触发下贰遍实践。复制代码 代码如下://
再次来到updatePosition函数的新本子 var throttled = _.throttle; //
新本子的函数每过100微秒才会接触一回 $.scroll;

debounce

该方式也是回到多少个函数的新本子。每便调用这几个新本子的函数,必需与上一遍调用间距一定的岁月,不然就没用。它的优秀应用是严防顾客双击有些开关,导致两回提交表单。复制代码 代码如下:$.on(“click”, _.debounce;

once

该措施再次来到二个新本子的函数,使得这一个函数只可以被运转一遍。首要用以对象的开首化。复制代码 代码如下:var initialize = _.once;
initialize; // Application只被创建一回

after

该办法再次回到二个新本子的函数,那么些函数唯有在被调用一定次数后才会运作,首要用以确认一组操作全体做到后,再做出反应。复制代码 代码如下:var renderNotes = _.after;
_.each { note.asyncSave({success: renderNotes}卡塔尔国; }卡塔尔(قطر‎; //
全部的note都被保存未来,renderNote才会运维一遍

wrap

该方法将一个函数作为参数,传入另三个函数,最后回到前面三个的叁个新本子。复制代码 代码如下:var hello = function { return
“hello: ” + name; }; hello = _.wrap { return “before, ” + func + “,
after”; }); hello(); // ‘before, hello: moe, after’

compose

该办法接收一多级函数作为参数,由后迈入依次运转,上二个函数的运行结果,作为后多少个函数的运营参数。也正是说,将f卡塔尔卡塔尔(قطر‎。复制代码 代码如下:var greet = function{ return
“hi: ” + name; }; var exclaim = function{ return statement + “!”; }; var
welcome = _.compose; welcome; // ‘hi: moe!’

工具方法

template

该办法用于编写翻译HTML模板。它选用四个参数。复制代码 代码如下:_.template(templateString,
[data], [settings]卡塔尔多个参数的含义如下:

templateString:模板字符串data:输入模板的数目settings:设置

templateString

模板字符串templateString正是布衣蔬食的HTML语言,其中的变量使用的款型插入;data对象承当提供变量的值。复制代码 代码如下:var txt = “

复制代码 代码如下:”; _.template(txt,
{word : “Hello World”}) // “Hello World

复制代码
代码如下:”假如变量的值包括四个特殊字符,就须求用转义。复制代码 代码如下:var txt = “复制代码 代码如下:”; _.template(txt, {word :
“H & W”}) //H & W

JavaScript命令能够动用的样式插入。上面是判别语句的事例。复制代码 代码如下:var txt = “” + “” + “”;
_.template(txt, {word : “Hello World”}卡塔尔 // Hello
World不以为意的用法还也是有循环语句。复制代码
代码如下:var list = ” ”; _.template(list, {people : [‘moe’, ‘curly’,
‘larry’]}State of Qatar; //
“moecurlylarry”如若template方法唯有第四个参数templateString,省略第二个参数,那么会回来三个函数,现在能够向这么些函数输入数据。复制代码 代码如下:var t1 = _.template; t1 //
‘Hello !’

data

templateString中的全部变量,在其间都以obj对象的属性,而obj对象正是指第叁个参数data对象。上边两句语句是相似的。复制代码 代码如下:_.template(“Hello !”, {
user: “” }) _.template(“Hello !”, { user: “”
}卡塔尔(قطر‎假使要改造obj那么些指标的名字,供给在第多少个参数中设定。复制代码 代码如下:_.template { %>Title: “,
null, { variable: “data”
}卡塔尔;因为template在变量替换时,内部使用with语句,所以地点这样的做法,运转速度会相当慢。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图