首页 编程 正文

js字符串也可以是对象,js字符串对象

2023-10-09 08:28 23
admin

通常,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