⚠️遇到啥写啥,内容不多,自用、记录为主
- JS中数字类型+任意非字符类型都是数字类型(包括NaN也是数字类型)
- JS中字符串+任何基本类型数据都是字符串
- script标签中的
defer和async:
defer,异步加载JS脚本,等html全部解析完毕顺序执行async,也是异步加载,但是完成一个执行一个,不顺序执行也不等待html全部解析完成
4.JS的数据类型:
- 基本:string、number、boolean、undefined、null、symbol、bigint
- 引用:object、array、function、date、regexp
5.null和undifined区别:
null是空对象,自动隐式转换为0(早期借鉴Java设计而来)undefined是基本类型空值,不会自动转换,转换成数值为NaN
==:比较值,通过隐式调用valueOf()转换成原始数值比较- 事件循环:先执行完同步的,再执行任务队列中的(事件循环,先微任务再宏任务),请求、定时器、事件...会进入事件循环
- 注意⚠️:!!
Promise本身是同步代码!!,then和catch才是异步 - 在ES6前,JS中除了函数,没有块级作用域!!什么
if、for里的变量都不是块级作用域;但是,对于没有使用var、let、const的变量,即(window.)X,算是全局变量,不受上述制约!!(此外,不要忘记var有变量提升) - 同名优先级:声明变量>普通函数声明(函数表达式不算)>参数>变量提升