文档章节

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
西安
程序员
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
HiShop2.x版本中的上传插件分析,得出所用的模板语言为Underscore.js 1.6.0且自己已修改

效果: 上传组件非常的酷,但是分析其使用JS写法使用了模板语言的,代码如下:   

easonjim
2016/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
3
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部