当前位置: 首页 > 面试题库 >

解释下这段代码的意思!

卫沈义
2023-03-14
问题内容
[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) })

问题答案:

作用

在你的Chrome浏览器的控制台中输入这段代码,你会发现不同HTML层都被使用不同的颜色添加了一个高亮的边框。是不是非常酷?但是,简单来说,这段代码只是首先获取了所有的页面元素,然后使用一个不同的颜色为它们添加了一个1px的边框。

解析

  • [].forEach.call() => 调用引用数组的forEach方法
  • $$('*') => document.querySelectorAll('*')
  • ~~a => parseInt(a)
  • 1<<24 => 对二进数1小数点右移24位
  • (parseInt(Math.random()*(1<<24)).toString(16)) => 获得了一个位于0-16777216之间的随机整数,也就是随机颜色,再使用toString(16)将它转化为十六进制数。

手写简版

[].forEach.call(
        document.querySelectorAll('*'),
        function(a){
            a.style.outline="1px solid #" + 
            (parseInt(Math.random()*(1<<24)).toString(16))
        }
    )

看蒙了,别问我怎么知道的,百度的!!

参考:

  • 从一行代码里面学点JavaScript :https://my.oschina.net/l3ve/blog/330358
 类似资料:
  • 本文向大家介绍解释下如下代码的意图:Array.prototype.slice.apply(arguments)相关面试题,主要包含被问及解释下如下代码的意图:Array.prototype.slice.apply(arguments)时的应答技巧和注意事项,需要的朋友参考一下 为类数组对象,并不是真正的数组。 可以实现数组的浅拷贝 由于 不是真正的数组,所以没有方法,通过可以调用数组对象的sli

  • 这是我从骡子3到骡子4转换的第一个项目。我与mule4一起工作,但在Mule3是新的。有谁能帮帮我吗?你能告诉我这些自定义处理器和变压器在这个mule3代码中的用途吗?而Mule4中的等价代码会是什么呢?在骡子4中没有像这样的自定义变压器。请帮帮我..

  • 我有这两种方法。我理解“getTotalSalary”一词,但并不真正理解“getAverageSalary(获取平均工资)”的写作方式。我不明白为什么在结尾处使用问号和冒号以及“(size()!=0)”和0。 这是编码: empReg 是 ArrayList 的名称。员工是一个由“姓名”和“薪水”组成的阶级。getSalary 显然是一种返还薪水的方法。

  • 问题内容: 我只是在android上开始,而我的java很生锈。我不记得曾经见过像这样嵌套在另一个函数中的函数。有人可以向我确切解释final的作用,并解释为什么您要在另一个函数中嵌套这样的功能吗? 问题答案: 这是一个匿名类。实际发生的情况是正在使用重写的函数创建 的子类。 关于匿名类的最优雅的事情之一是,它们使您可以在需要的地方准确定义单发类。此外,匿名类具有简洁的语法,可减少代码中的混乱情况

  • 我对javascript还是个新手,只知道基本知识。有人能解释一下下面的代码,就像在调用init函数时发生的流中一样吗? 我对下面代码的理解是,一旦调用init函数,就会设置一个全局变量输出,该输出映射到一个带有id输出的HTML元素。然后调用。这将创建一个WebSocket对象。这之后是我不完全理解的部分。 在行中,WebSocket对象有一个名为open的属性,我们将它设置为任何返回的属性 。

  • args) 请解释为什么我们在这里制作参数数组以及为什么它是静态的,什么是 args []。