存放于栈内存中。
具有占据空间小,内存固定的特点
基本数据类型的值是不可修改的,只会被替换
引用类型存储在堆内存中.
具有占据空间大、内存不固定的特点。 (如果存储在栈中,将会影响程序运行的性能)
引用类型在栈中只保存了指针,而实体保存在堆里。
接收一个全数字字符串,转为数值。
只要传的字符串中有一个不是数字的字符,或者没传字符串,就会返回 NaN
接收一个数字开头的字符串,转化为取整/带小数 的数值类型。
只要传的字符串不是数字开头,或者没传字符串,就会返回 NaN
所有运算符:+-*/ == === > < !=
都会隐式转为数值类型
+(加号有特殊情况) ,它既是连接符,也是运算符。
1.只要 + 两边出现字符串,就会变成字符串拼接。
2.当只有 + 后面有值,例如:+"123"等同于Number("123"),会将字符串转换为数字123
除undefined、null之外,所有类型数据的原型里自带的方法。
对不同类型数据有不同的转化方法,但转出来的数据始终是字符串。
对数字可以转化成制定进制的数字字符串
对字符串转出来效果不变
对布尔值转化成字符串布尔值
对数组会转成扁平化并用逗号隔开的字符串
对对象可以判断对象的类型
跟toString效果几乎一样
不同点就是通过传入参数去使用,而不是原型方法的调用
undefined、null也能转
通过 + "" 可转化为字符串,原理是加号两边只要出现字符串就会变成字符串拼接
除了 0 ""(空字符串) null undefined NaN 会转换成 false 其它都会转换成 true
!可以转为布尔值并取反
!!可以转为正确的布尔值
效果等同于!!
语法: typeof 数据
语法:数据 instanceof 引用具体类型
语法: 数据.constructor
也是通用的方法,基本和引用全都可以判断,不太常用的一种方法
1var arr = []
2Object.prototype.toString.call(arr) == "[object Array]" //true
3
4var func = function() {}
5Object.prototype.toString.call(func) == "[object Function]" //true