文档章节

underscore.js学习-一

o紫木o
 o紫木o
发布于 2017/09/07 22:25
字数 574
阅读 5
收藏 0

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

© 著作权归作者所有

共有 人打赏支持
o紫木o
粉丝 2
博文 40
码字总数 12013
作品 0
西安
程序员
underscore.js源码解析2

_.isNull(object) 如果object的值是null,返回true。 .isNull(null); => true; .isNull(undefined); => false; undefined派生自null,所以两者相等(==),但是不全等(===),所以这里如果o...

熊猫ewall
2017/06/05
0
0
GeoCouch 初体验(CouchDB的地理位置索引查询插件)

原文出处:http://blog.nosqlfan.com/html/3267.html GeoCouch是一个CouchDB的插件,提供地理位置索引的查询,我们知道CouchDB是通过MapReduce建立视图的方式来进行非动态的查询,GeoCouch通...

红薯
2011/10/18
792
2
如何封装Node.js和前端通用的模块

前端模块通常是我们开发人员为了避免和他人冲突才把模块代码放置在一个闭包中。 如何封装Node.js和前端通用的模块,我们可以参考Underscore.js 实现,他就是一个Node.js和前端通用的功能函数...

cd_ing
2014/02/17
0
0
Underscore.php

Underscore 是 Underscore.js 的一个 PHP 移植版本。 示例代码: ::map(array(1, 2, 3), function($num) { return $num * 3; }); // array(3, 6, 9) ::map(array('one'=>1, 'two'=>2, 'three......

红薯
2013/12/31
1K
0
实用JavaScript工具库--Lo-Dash

Lo-Dash是一个实用的JavaScript工具库。类似 Underscore.js

justintung
2014/04/06
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu18.04下载安装Google图解法

首先Ctrl + Alt + T打开终端,或者可以在在搜索框搜索终端。 (1)sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/ ,(将下载源加入到系统的...

AI_SKI
24分钟前
0
0
spring could采坑 eureka开启验证后无法连接注册中心

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClie......

君千殇520
25分钟前
2
0
支付宝小程序下单支付接口:40004 ACQ.INVALID_PARAMETER

下面是支付宝下单接口 https://docs.open.alipay.com/api_1/alipay.trade.create/ 如果按官方文档的说明,并没有解释清楚buyer_id什么时候要传,只是说:特殊可选,啥叫特殊可选?!在调小程...

swingcoder
33分钟前
1
0
【Java】广州三本秋招经历

前言 只有光头才能变强 离上次发文章已经快两个月时间了,最近一直忙着秋招的事。今天是2018年10月22日,对于互联网行业来说,秋招就基本结束了。我这边的流程也走完了(不再笔试/面试了),所...

Java3y
35分钟前
3
0
在idea中启动多个SpringBoot项目

https://blog.csdn.net/forezp/article/details/76408139

灯下草虫鸣_
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部