编程技术文章分享与教程

网站首页 > 技术文章 正文

牛客网错题

hmc789 2024-11-21 15:52:56 技术文章 2 ℃

7-22

一】


A window.onload()

B document.querySelectAll()

C ParentNode.children 是一个只读属性,返回一个节点的子元素,是一个动态更新的 HTMLCollection 类型。不是 document 对象的方法。

二】


这道语文题出的真不戳........提醒自己,细心,认真看题

三】



这道题AC就不说了,主要是BD。

B slice方法可以从已有的数组中返回选定的元素。返回值为新数组。

apply() 方法接收数组形式的参数。

Math.max(1,2,3); // 会返回3
Math.max.apply(null,[1,2,3]);// 也返回3
// 但是其实这个null根本没用到。如:
Math.max.apply(0,[1,2,3]);// 也返回3
Math.max.apply('',[1,2,3]);// 也返回3

了解上边两个方法后

只要使用[].slice.apply()不管里面的第一个参数是什么 这个对象都会返回一个数组


但是当参数中含有length属性的时候 会返回一个长度为属性值的数组 并且会把对象中下标<length的元素放到数组里面对应的下标位置中去


对于字符串:在执行[].slice.apply()的时候会把它包装成String对象 可以推测number类型和boolean类型也都会被包装

得出结论:slice方法的工作原理是根据上下文对象中的length属性建立一个length长度的数组 然后寻找对象中key值为数字的属性并且添加到数组里面 对于没有length属性的对象 默认length=undefined 返回的数组为空

对于map:上面的代码 使用[].map.call()和[].slice.apply()的结果是一样的


可以推测map的工作原理和slice类似 大概是是根据上下文对象中的length属性建立一个length长度的数组 然后只遍历下标为数字的数组并且放到数组中对应下标的位置里 而且下标大于length的元素是不会被遍历的

标签列表
最新留言