基本值(Primitive Values)
基本值有: booleans,numbers,strings,null and defined
其他所有值都是:objects
基本值特征
- 基于值进行比较
3 === 3 // true
'abc' === "abc" // true
- 始终不可变的 (
Always immutable
)
> var str = 'abc';
> str.length = 1; // try to change property `length`
> str.length // ⇒ no effect
3
> str.foo = 3; // try to create property `foo`
> str.foo // ⇒ no effect, unknown property
undefined
对象
所有非基本值的都是对象,常见的对象有
- 普通对象:
{ firstName: 'Jane', lastName: 'Doe' }
- 数组:
[ 'apple', 'banana', 'cherry' ]
- 正则表达式:
/^a+b+$/
对象的特征
- 基于引用进行比较
> ({} === {}) // two different empty objects
false
> var obj1 = {};
> var obj2 = obj1;
> obj1 === obj2
true
- 默认情况下是可变的
> var obj = {};
> obj.foo = 123; // add property `foo`
> obj.foo
123
undefined
- 未初始化的变量是
undefined
> var foo;
> foo
undefined
- 缺少参数是
undefined
> function f(x) { return x }
> f()
undefined
- 读取一个不存在的属性,返回
undefined
> var obj = {}; // empty object
> obj.foo
undefined
null
null表示空对象。
undefined
和null
均没有属性
undefined and null have no properties, not even standard methods such as toString().
Booleans
布尔值有两个true、false
。下面的操作符可以生成布尔值
- 逻辑运算符
&& , ||
- 前缀运算符
!
- 比较运算符
- 等号操作符
===, !==, ==, !=
- 排序操作符(针对字符和数字类型):
>, >=, <, <=
- 等号操作符
下面几种值,表示false值
undefined,null
false
- 0, NaN
- 空串''
空数组
网友评论