一些奇奇怪怪的js知识

0.关于前端为什么typeof null 得到的结果是 object
对于 null 来说,很多人会认为他是个对象类型,其实这是错误的。

虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。

1.关于let可以作为变量名
是因为ES6中let不是保留字也不是关键字 因此可以作为变量名,其他的声明例如var const 都不能作为变量名,因为其他的声明方式是关键字,而关键字保留字不能作为变量名.

2.setTimeout()函数的第三个参数
setTimeOut()函数的第三个参数会作为参数fn函数的实参传递进去 ,可以解决var循环变量问题,参数能传递多个 现版本谷歌,搜狗支持 ie不支持这样传递参数

setTimeout((arg) => {

console.log(arg)

},1000,'i m arg')

3.执行以下代码
控制台再次执行setTimeout函数时打印的6 7 为setTimeout的返回唯一标志

4.setTimeout() 第一个参数
如果传递的不是一个函数,定时器会立即执行 例如 setTiemout(console.log(1) , 1000)

  1. forEach /for of /for in
    不能通过return 进行循环跳出
posted @ 2024-04-13 10:28  story.Write(z)  阅读(37)  评论(0)    收藏  举报