你不知道的JavaScript系列---第一章:类型
类型
一、JavaScript中的类型
JavaScript中的变量
是不存在类型
的,只有具体的值
才有类型
。
Js不像其他高级语言,如java等,声明了一个int类型的变量,就必须存放int类型的值,Js中的变量可以存放其允许的所有类型的值,如:
let a
a = 1
typeof a === 'number' // true
a = 'ss'
typeof a === 'string' // true
二、Js内置类型
null,undefined,object,string,number,bool,symbol(ES6 新增)
三、null
null
为一个"假值"(false-like
)
typeof null === 'object' // true
检测一个值是否为null
if(!null && typeof null === 'object'){}
四、function
typeof function a(b, c){} -> 'function'
类型function
是object
的"子类型
",事实上,函数就是一个可调用的对象
。如:
function a(b, c) {
/* ... */
}
a.length -> 2 // 函数参数个数
五、undefined 与 undeclared
在Js中,当变量未持有值的时候:
let a
typeof a -> 'undefined'
在大多数高级语言中,他们更倾向于undefined等同于undeclared(未声明),但在js中:
-
已在作用域声明
,但未赋值的变量:undefined -
未在作用域中声明
的变量:undeclared
实际运行结果:
let a
a // undefined
b // ReferenceError:b is not defined
typeof a // undefined
typeof b // undefined
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。