[关闭]
@FunC 2016-10-17T11:09:30.000000Z 字数 874 阅读 2089

《JavaScript 标准参考教程(alpha)》笔记

前端 学习笔记


第二章

数据类型

JavaScript数据类型共6+1种

  1. 数值:包括整数浮点数
  2. 字符串:
  3. 布尔值:
  4. underfined:“未定义”或不存在,即此处没有任何值
  5. null:表示空缺,即此处应该有值,但目前为空
  6. 对象(object):包括狭义的对象,数组和函数
  7. Symbol(ES6种加入)

JavaScript中所有的数据都可以视为广义的对象!


null和underfined

  1. typeof null;//“object”

*历史遗留问题,详情点这里

目前nullunderfined基本同义,null特殊在typeof返回的是object但并不是说null就是一个对象

null表示空值,即该处的值现在为空。比如,调用函数时,不需要传入某个参数,这时就可以传入null
underfined表示“未定义”。下面是返回underfined的经典场景

  1. // 变量声明了,但没有赋值
  2. var i;
  3. i // undefined
  4. // 调用函数时,应该提供的参数没有提供,该参数等于undefined
  5. function f(x) {
  6. return x;
  7. }
  8. f() // undefined
  9. // 对象没有赋值的属性
  10. var o = new Object();
  11. o.p // undefined
  12. // 函数没有返回值时,默认返回undefined
  13. function f() {}
  14. f() // undefined

布尔值

以下六个之会转为false,其余值都视为false

  • undefined
  • null
  • false
  • 0
  • NaN
  • ""或''(空字符串)

需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true


数据类型转换

强制转换-Number()

原始类型的值主要是字符串、布尔值、undefinednull,它们都能被Number转成数值NaN
Number函数比parseInt函数严格,前者只要有一个字符无法转成数值,整个字符串就转为NaN。而后者会逐个解析字符。
Number函数会自动过滤一个字符串前导和后缀的空格。
如:

  1. Number('\t\v\r12.34\n') // 12.34
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注