数据类型
- 数据类型
- 基础类型,
Undefined
/Null
/Number
/String
/Boolean
- 引用类型,
Object
引用类型
- 基础类型和引用类型的的区别
-
存储和使用方式
基础数据类型和引用类型的区别
- 数据类型转换
- 隐式类型转换,系统自动把数据转为其他类型
- 场景:数字运算符,“.”,if语句,==
-
隐式类型转换结果
- 显示类型转换,当隐式类型转换不符合预期时,需要人为进行类型转换
-
Number()
/String()
/Boolean()
/!
/!!
-
parseInt()
,解析一个字符串,并返回一个整数,只有字符串中的第一个数字会被返回 -
parseFloat()
,全局函数,不属于任何对象,解析一个字符串,并返回一个浮点数,如果第一个字符不能被解析成为数字,则返回NaN
。
-
- 类型识别
-
typeof
操作符- 可识别基础类型,
null
除外,返回字符串 - 引用类型识别为
object
,Function
除外,无法识别具体的引用类型
- 可识别基础类型,
-
instanceof
操作符- 可识别具体的引用类型,基础类型无法识别,返回true||false
-
Object.prototype.toString.call()
,???- 可识别基础类型和内置引用类型,无法识别自定义引用类型,返回字符串
-
constructor
,获取对象构造函数名称- 可识别基础类型(
Undefined
、Null
无构造函数,无法识别)、内置对象类型和自定义对象类型
- 可识别基础类型(
- 例子,获取引用类型构造函数名称识:
function getConstructorName(obj){
return (obj==undefined||obj==null)?obj:(obj.constructor&&obj.constructor.toString().match(/function\s([^(])/)[1]);
}
网友评论