概述
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
- b; }; add5 = _.partial; // 15
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语句,所以地点这样的做法,运转速度会相当慢。
相关文章
- CI框架插入一条或多条sql记录示例_php技巧_脚本之家,数据操作
- 特斯拉将发表车辆起火总括数据
- js底工知识总括,使用vue编写一个点击数字计时小游戏_vue澳门太阳娱乐手机登录
- Win7版IE10浏览器值得您升官,不想被进级
- php mb_substr函数截取中文字符串应用示范_php技能_脚本之家
- jquery聚焦文本框与扩展文本框聚焦方法
- Javascript 宽容firefox的有个别主题素材_javascript手艺_脚本之家
- php将url地址转化为全体的a标签链接代码_php实例_脚本之家
- 用php+javascript实现二级级联菜单的制作_php技巧_脚本之家
- NEX手提式有线电话机发布会直播中奖公示校订表达,NEX智慧旗舰手提式有线电话机发表会直播中奖公示