JavaScript日记

有关JavaScript常用的知识点.

数据类型

  1. 数值(number)

  2. 字符串(string)

  3. 布尔值(boolean)

  4. undefined: 表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。

  5. null: 表示空值,即此处的值为空。

  6. 对象(object): 各种值组成的集合。

  7. Symbol: ES6新增,表示独一无二的值。

typeof运算符

typeof运算符可以返回一个值的数据类型。 其中空数组[]也返回object类型,这表示在JavaScript内部,数组本质上只是一种特殊的对象。 当然想要区分数组还是对象,可以使用instanceof运算符

null的数据类型也是object, 由于历史原因造成,为了兼容以前的代码

null,undefined和布尔值

nullundefined的区别:

+ `null`是表示一个空的对象,转为数值时为`0`
+ `undefined`是表示“此处无定义”的原始值,转为数值时为`NaN`

代码示例:

Number(undefined) // NaN
Number(null) // 0

if语句中,nullundefined都会被自动转为false,相等运行符==直接报告两者相等。

if (!undefined){
    console.log('undefined is false')
}
// result: undefined is false

if (!null){
    console.log('null is false')
}
// result: null is false

undefined == null
// result: true

布尔值 真:true 假:false

下列运算符会返回布尔值:

  • 前置逻辑运算符:!(Not)

  • 相等运行符:===, !==, ==, !=

  • 比较运算符:>, >=, <, <=

下面六个值被转为false,其它值都视为true:

  • undefiend

  • null

  • false

  • 0

  • NaN

  • ""''(空字符串)

空数组([])和空对象({})对应的布尔值,都是true

示例代码:

if (''){
    console.log("true")
}
// result:不会有输出

if ([]) {
  console.log('true');
}
//result: true