Typeof 的作用: 返回数据的类型
基本数据类型 (Number String Boolean null undefined es6 种新增的一个基本数据 symbol)
- Let num = 22
- Typeof num //Number
会返回对应的类型
但是有一个例外: null
- Let num2 = null
- Typeof num2 // Object
对于判断复杂数据类型 (函数, 对象, 数组), 都会返回 Object
- Let arr = [1,2,3]
- Typeof arr //object
但是也有一个例外: 函数
- Let fn = function() {
- }
- Typeof fn // function
逻辑中断 (逻辑短路)
&& 找假值, 找到返回假值, 后面不执行, 没有找到, 返回最后一个真值
|| 找真值, 找到返回真值, 后面不执行, 没有找到返回最后一个假值
|| 经常会被用于 1. 设置默认值 let width = width || 20
2. 兼容问题处理
Windows.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
比较运算符 (=== ==)
1.=== 比较类型也比较值, 比较严格
2.== 比较值
规则: 1. 先看有没有 NaN, 因为它不等于任何值, 包括自己, 有返回 false
2. 再看 null 和 undefined, 他们也不等于任何值, 除了 null 和 undefined
3. 如果有数字和布尔, 转化为数字比较
几个特殊的转布尔值: []:0 {}:NaN false:0 true: 1 '':0
4. 再看有没有字符串和复杂数据类型, 有转换字符串进行比较
5. 如果都是复杂数据, 比较地址
JS 中的值类型和引用类型的理解
值类型: 在变量中存储的是值本身
引用类型: 在变量中存储的是内存地址
注意: JS 里面没有特别明确的堆和栈的概念, 而且 JS 的实现, 也不需要堆和栈的概念
来源: http://www.bubuko.com/infodetail-3114034.html