数据类型
基本数据类型(值类型):Number、String、Boolean、Undefined、Null、Symbol(es6新增独一无二的值)
引用数据类型: Object。包含Object、Array、function、Date、RegExp
栈堆存储
栈存储
基本数据类型主要存储再栈内存中,分别为 Boolean、Number、String、Undefined、Null、Symbol、
堆存储
引用数据类型主要存储再堆内存中,分别为Object、Array、function、Date、RegExp、
备注:
引用类型存储把值存储在堆内存中,堆内存是从下往上存储。生成唯一内存地址。然后在栈内存中把地址赋值给变量。栈内存是从上往下存储的。之所以如此划分内存主要考虑到特别大的对象进行值传递时的效率问题。
常见的基本数据类型
常见的引用类型
说明:因typeof 检测null返回object,故有些地方也成null为特殊引用类型。但我们最好还是归为基本类型。
typeof运算符检测
基本类型(值类型):
引用类型:
typeof function(){} //'function'
typeof null // 'object'
typeof {} // 'object'
typeof [1,2] // 'object'
.....
总结:
typeof 能有效检测基本类型,检测引用类型都返回object,其中null属于特殊的引用类型返回object,function属于特殊引用类型类型不用于存储数据,typeof检测返回function.
变量计算-类型转换
1. 字符串拼接
const a=100+200; // 200
const b=100+'200' // '100200'
const c='true'+'100' // 'true100'
结论:+运算中有字符串,结果就是字符串拼接。
2、逻辑判断
总结:
逻辑与(&&)运算规则: 左侧为truly返回右侧,左侧为fasely返回左侧。
逻辑或( | | )运算规则: 左侧为truley返回左侧,左侧为fasely返回右侧。