构造器和表达式

通过构造器创建的变量和表达式创建的变量,虽然值相同,但是构造器创建的变量类型是对象而表达式不是

1
2
3
4
5
var _bool = new Boolean(false); //_bool is Object
var _bool2 = false; //_bool is boolean
_bool == _bool2; //true
_bool === _bool2; //false
_bool.valueOf() === _bool2; //true

通过上述例子,我们看出new Boolean(false)创建的变量类型为object,原始值为false,原始值的类型是boolean,通过var _bool2 = false表达式赋值得到的变量类型是boolean。

相同的,通过new String()创建的变量也是object类型,表达式赋值的变量也是string类型

1
2
var _string = new String("this is string"); //_string is Object
var _string2 = "this is string"; //_string2 is string