面试汇总
面试题也是一种整理知识的方式。
扩展阅读:https://github.com/lietoumai/Awesome-offer
一些有意思的代码
[].forEach.call($$("*"), function(el){
el.style.outline = "1px solid #" + (~~(Math.random()*(1<<24))).toString(16);
})
解释:获取页面所有的元素,遍历这些元素,为它们添加1像素随机颜色的轮廓(outline)
$$(sel)
// $$函数被许多现代浏览器命令行支持,等价于document.querySelectorAll(sel)
[].forEach.call(NodeLists)
// 使用 call 函数将数组遍历函数 forEach 应到节点元素列表el.style.outline = "1px solid #333"
// 样式 outline 位于盒模型之外,不影响元素布局位置(1<<24)
//parseInt("ffffff", 16) == 16777215 == 2^24 - 1 // 1<<24 == 2^24 == 16777216
Math.random()*(1<<24)
// 表示一个位于 0 到 16777216 之间的随机浮点数~~Math.random()*(1<<24)
//~~
作用相当于 parseInt 取整(~~(Math.random()*(1<<24))).toString(16)
// 转换为一个十六进制-