通常,JavaScript 字符串是原始值,通过字面方式创建:
var firstName = "Bill"
但是字符串也可通过关键词 new
定义为对象:
var firstName = new String("Bill")
实例
var x = "Bill"; var y = new String("Bill"); // typeof x 将返回 string // typeof y 将返回 object
但一般不建议这样做,不要把字符串创建为对象,因为它会拖慢执行速度。
new
关键字使代码复杂化。也可能产生一些意想不到的结果:
当使用 ==
相等运算符时,相等字符串是相等的:
实例
var x = "Bill"; var y = new String("Bill"); // (x == y) 为 true,因为 x 和 y 的值相等
当使用 ===
运算符时,相等字符串是不相等的,因为 ===
运算符需要类型和值同时相等。
实例
var x = "Bill"; var y = new String("Bill"); // (x === y) 为 false,因为 x 和 y 的类型不同(字符串与对象)
甚至还有更糟的情况也会出现,对象无法比较:
实例
var x = new String("Bill"); var y = new String("Bill"); // (x == y) 为 false,因为 x 和 y 是不同的对象
请注意 (x==y) 与 (x===y) 的区别。
JavaScript 对象无法进行对比,比较两个 JavaScript 将始终返回 false
。
热门文章
-
js typeof判断对象类型
2023-10-10 14:33
-
js对象属性的访问(如何访问js对象的属性)
2023-10-08 08:28
-
js对象的定义(如何定义js对象)
2023-10-08 08:25
-
js面向对象编程之js对象方法
2023-10-08 08:18
-
js面向对象编程之对象属性
2023-10-08 08:15
-
js中的对象(js也能面向对象的编程)
2023-10-08 08:13