一些奇奇怪怪的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)
- forEach /for of /for in
不能通过return 进行循环跳出
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?