underscore.js学习-一
博客专区 > o紫木o 的博客 > 博客详情
underscore.js学习-一
o紫木o 发表于3个月前
underscore.js学习-一
  • 发表于 3个月前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

1.

var _ = function(obj){
        if(obj instanceof _) return obj;
        // 执行new操作时,新创建一个实例,不是obj本身,故第一个条件仍为false
        if(!(this instanceof _)) return new _(obj);
        this._wrapped = obj;
    };

2.void 运算符通常只用于获取undefined的原始值,一般使用 void(0),等同于void 0。

在使用立即执行的函数表达式时,可以利用void运算符让 JavaScript 引擎把一个函数识别成函数表达式而不是函数声明(语句)。

void function iife() {
    var bar = function () {};
    var baz = function () {};
    var foo = function () {
        bar();
        baz();
     };
    var biz = function () {};

    foo();
    biz();
}();

当用户点击一个以javascript: URI 时,浏览器会对冒号后面的代码进行求值,然后把求值的结果显示在页面上,这时页面基本上是一大片空白,这通常不是我们想要的。只有当这段代码的求值结果是undefined的时候,浏览器才不会去做这件傻事,所以我们经常会用void运算符来实现这个需求

<a href="javascript:void(0);">
  这个链接点击之后不会做任何事情,如果去掉 void(),
  点击之后整个页面会被替换成一个字符 0。
</a>
<p> chrome中即使<a href="javascript:0;">也没变化,firefox中会变成一个字符串0 </p>
<a href="javascript:void(document.body.style.backgroundColor='green');">
  点击这个链接会让页面背景变成绿色。
</a>

注意,虽然这么做是可行的,但利用javascript:伪协议来执行 JavaScript 代码是不推荐的,推荐的做法是为链接元素绑定click 事件。

3.obj.length === +obj.length

等同于 typeof obj.length == 'number' && !isNaN(obj.length),用于判断length是一个(或者可以转为)非NaN的数值

+位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。如果它不能解析一个值,则计算结果为 NaN

4.length = (keys || obj).length

exp1 || exp2   如果expr1能转换成true则返回expr1,否则返回expr2

exp1 && exp2   如果expr1 能转换成false则返回expr1,否则返回expr2

||和&&返回一个指定操作数的值,当第一个表达式能确定运算值时返回第一个,不能就返回第二个操作数

5.单词 :raw dense predicate cornerstone sparse aka

共有 人打赏支持
粉丝 3
博文 14
码字总数 4745
×
o紫木o
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: