类型
静态类型跟动态类型
js属于动态类型
typescript java属于静态类型
原始类型
- undefined
- null
- number
- string
- symbol
其余属于object,包含function,array
令人混淆的类型
- null
typeof null // WTF "object"!!
一个通俗的解释
if (isUndefined) {
return "undefined";
} else if (isObject) {
if (isFunction) {
return "function";
} else {
return "object";
}
}
- NAN
typeof NAN //"number"
NAN是被定义为数字但是不是真实的数字
- 原始类型隐式转换
let str = new String("123");
typeof str; //'object'
str = str +'1';
typeof str //'string'
原始类型不是object没有方法,那么为什么可以调用方法呢?
实际原始类型都有对应的Object类型,js引擎隐式转换成对应的object对象来实现。