文档章节

underscore.js 分析 第二天

SnowFlake
 SnowFlake
发布于 2016/06/20 16:14
字数 212
阅读 4
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Underscore源码中有这么句
obj.length === +obj.length
意思是typeof obj.length == number,即检测obj的长度是否是数字
我的理解:这么写是来检测一个对象数组的类型到底是数组还是对象。
在Javascript中变量分为基本类型和引用类型,基本类型是Undefined、Null、Boolean、Number和String。
其他的都是引用类型,引用类型就是对象。所以array本质也是对象。

var obj ={
   name : "zhangsan",
   age :23
}
var arr=[1,2,3];
console.log(obj.length);    //undefined
console.log(arr.length);    //3
console.log(typeof arr);    //object
console.log(arr instanceof Array); //true

注,之前的size方法有用到obj.length === +obj.length。

在1.9中,源码是

// Return the number of elements in an object.
  _.size = function(obj) {
    if (obj == null) return 0;
    return isArrayLike(obj) ? obj.length : _.keys(obj).length;
  };

返回对象中元素的个数

如果是空对象返回0,如果是数组对象返回length。

 



本文转载自:http://www.cnblogs.com/mafeifan/p/3391148.html

下一篇: 游标
SnowFlake
粉丝 9
博文 171
码字总数 0
作品 0
郑州
程序员
私信 提问
【愣锤笔记】underscore源码里中高级前端所需要掌握的内容

underscore.js作为一个函数式库,也可以说是个工具库,在日常开发中可以显著的帮我们提示开发效率。当然了,同等的还有lodash等更为流行的库,但是这并不妨碍我们欣赏underscore.js的设计艺术...

愣锤
06/21
0
0
HiShop2.x版本中的上传插件分析,得出所用的模板语言为Underscore.js 1.6.0且自己已修改

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

easonjim
2016/12/27
0
0
如何封装Node.js和前端通用的模块

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

cd_ing
2014/02/17
103
0
实用JavaScript工具库--Lo-Dash

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

justintung
2014/04/06
1K
2
Backbone源码分析-Backbone架构+流程图

作者:nuysoft/高云/nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接。 Backbone0.9.1源码分析分析系列 jQuery1.6.1源码分析系列 参考资料 http://documentclo...

吞吞吐吐的
2017/09/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
19分钟前
9
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
24分钟前
3
0
两款软件

fadetop保护眼睛软件 Snipaste截图软件

伟大源于勇敢的开始
51分钟前
6
0
06.全局锁和表锁

根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是flush tables with read lock(FTW...

scgaopan
今天
7
0
图解安装CentOS8

最近正式发布了CentOS8!迫不及待地准备下载了CentOS8镜像,准备体验下,工作繁忙无暇理会。 今天抽空安装体验下~ 可从CentOS官网下载:https://centos.org/download/ 为了快速可以选择从国...

技术训练营
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部