@FunC
2016-10-17T19:09:30.000000Z
字数 874
阅读 2256
前端
学习笔记
JavaScript数据类型共6+1种
- 数值:包括整数浮点数
- 字符串:
- 布尔值:
- underfined:“未定义”或不存在,即此处没有任何值
- null:表示空缺,即此处应该有值,但目前为空
- 对象(object):包括狭义的对象,数组和函数
- Symbol(ES6种加入)
JavaScript中所有的数据都可以视为广义的对象!
typeof null;//“object”
目前null
和underfined
基本同义,null
特殊在typeof
返回的是object
。但并不是说null就是一个对象
null
表示空值,即该处的值现在为空。比如,调用函数时,不需要传入某个参数,这时就可以传入null
。
underfined
表示“未定义”。下面是返回underfined
的经典场景
// 变量声明了,但没有赋值
var i;
i // undefined
// 调用函数时,应该提供的参数没有提供,该参数等于undefined
function f(x) {
return x;
}
f() // undefined
// 对象没有赋值的属性
var o = new Object();
o.p // undefined
// 函数没有返回值时,默认返回undefined
function f() {}
f() // undefined
以下六个之会转为false
,其余值都视为false
- undefined
- null
- false
- 0
- NaN
- ""或''(空字符串)
需要特别注意的是,空数组([]
)和空对象({}
)对应的布尔值,都是true
原始类型的值主要是字符串、布尔值、undefined
和null
,它们都能被Number
转成数值或NaN
。
Number
函数比parseInt
函数严格,前者只要有一个字符无法转成数值,整个字符串就转为NaN。而后者会逐个解析字符。
Number
函数会自动过滤一个字符串前导和后缀的空格。
如:
Number('\t\v\r12.34\n') // 12.34