你不知道的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'
类型functionobject的"子类型",事实上,函数就是一个可调用的对象。如:

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


Winer
458 声望202 粉丝

一入前端深似海