问题
经常会遇到诸如对象(object)、基本类型(primitive)和字面值(literal)这样的术语。这三者有何区别,又如何分辨
解决方案
字面值表示某种特定类型的一个值,例如,字符串(String)、浮点数(Number)或者布尔值(Boolean)
"this is a string"
1.345
true
基本类型是特定的数据类型的一个实例。有5种这样的类型:String、Number、Boolean、null和undefined。
在这些基本数据类型中,有3个有对应的构造方法对象:String、Number和Boolean,提供了对内建属性和方法的访问,允许做一些简单赋值和顺序访问之外的事情。
var str = "this is a string"
str.length
讨论
声明一个变量的时候,就想是在操作简单的字符串或者数字一样
如果不是依赖于JavaScript对象的话,可以给变量分配一个字符串、数字或者布尔值,随后访问。然而,如果要对变量做更多操作的话,则需要使用该数据类型所对应的JavaScript对象及属性。
var str = "this is a string";
str.length
当代码在一个字面量值上访问一个String对象的属性的时候,会创建一个新的String对象,并且其值设置为变量中所包含的字符串的值。访问并打印length属性,并且丢掉新创建的String对象
JavaScript中有5种基本数据类型:字符串、数值、布尔类型、null和undefined,只有字符串、数值和布尔类型有对应的构造方法对象。字符串、浮点数、证书和布尔值都是字面值
可以使用一个字面值表示或者使用该对象而不带new操作符,从而创建基本类型的布尔值、字符串和数值变量。
如果要实例化一个对象,则需要使用new操作符
当使用严格相等来比较一个对象示例和一个字面值得时候,可以快速区分出一个基本数据类型额一个对象实例。
基本类型变量严格等于字面值,而对象实例则不会。因为基本类型是根据值来进行比较的,而值是字面值