数据类型
基本类型 & 复杂类型
基本类型 存储在 栈内存
复杂类型 存储在 堆内存,堆内存地址 存储在 栈内存
null & undefined
let a
let b = null
未赋值的变量的值是 undefined
null是空值
判断数据类型
判断null Object.is()
其他基本类型 typeof()
判断数组 Array.isArray()
复杂类型 instanceof
=== & ==
=== 是相等判断
== 如果类型不同会先转换类型 再做相等判断
this
判断this
new调用的函数中this 指向新建对象
call,apply调用的函数中this 指向对应对象
上下文调用的函数中this 指向上下文对象
默认指向 undefined(严格模式)或 全局对象
箭头函数中this 使用上一层代码的this规则
SCOPE/执行上下文/作用域
作用域是执行JS代码的环境的抽象概念。js代码分层形成作用域链,子作用域可以访问父作用域。
三种作用域 全局作用域、函数执行上下文、eval执行上下文