javascript - 数组原声方法中的一段代码
问题描述
var t = Object([1,2,3]);var len = t.length >>> 0;这段代码什么意思?数组为什么要被转换成对象 这个意思转换成类数组的意思吗
问题解答
回答1:Object([value])用法及功能:- 如果value为基元数据类型Boolean、Number、String,则返回对应类型的对象,例如:Boolean对象、Number对象、String对象。- 如果value本身为对象,则不对其作任何更改,返回其本身。- 如果省略了value参数,或value为null、undefined,则返回自身无任何属性的Object对象。var t = Object([1,2,3]);console.log(t===[1,2,3]); // false上面的代码中,value=[1,2,3],此时[1,2,3]并不是一个数组,因为它既没有new Array, 又没有对象字面量赋值,并不算是一个array,而Object([1,2,3]) 可以将其转化为数组对象,所以打印t===[1,2,3]为false。再看下面:var a = [1,2,3];var t = Object(a);console.log(a,typeof a, Array.isArray(a),t,typeof t, Array.isArray(t),t===a, t===[1,2,3]); // [1, 2, 3] 'object' true [1, 2, 3] 'object' true true false因为a = [1,2,3]定义了一个字面量数组,而数组也是对象,所以匹配到了第二条,返回了它本身,所以此时a===t。t.length >>> 0; 上面的代码中,把t.length这个值改为二进制,然后像又移了0位,也是没有任何意义的。可能是因为没有上下文,单纯两行代码只能看出这么多了。回答2:
代码应该还有吧,不因该就这两句吧?
相关文章:
1. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?2. javascript - nodejs调用qiniu的第三方资源抓取,返回401 bad token,为什么3. html5 - javascript写业务有用到什么编程范式没?4. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?5. javascript - immutable配合react提升性能?6. javascript - vue 手机端项目在进入主页后 在进入子页面,直接按返回出现空白情况7. css3 - 微信前端页面遇到的transition过渡动画的bug8. javascript - jQuery post()方法,里面的请求串可以转换为GBK编码么?可以的话怎样转换?9. python3.x - python 中的maketrans在utf-8文件中该怎么使用10. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();

网公网安备