各位听众,大家好。今天我们将深入探讨JavaScript中一个看似简单却充满陷阱的话题:字符串。具体来说,是 new String(‘a’) 与 ‘a’ 之间行为的差异。这不仅仅是一个语法上的小区别,它触及了JavaScript类型系统的核心,揭示了原始值与对象之间的转换边界,以及引擎在幕后进行的复杂操作。理解这一点,对于编写健壮、可预测且高效的JavaScript代码至关重要。 一、 原始字符串:JavaScript的日常主力 在JavaScript中,字符串是最常用的数据类型之一。我们几乎每天都在使用它们,通常以字符串字面量(String Literal)的形式出现。 const name = ‘Alice’; const greeting = “Hello, world!”; const message = `You are ${name}.`; // 模板字面量 这些,都是原始字符串(String Primitive)。 1.1 什么是原始值? 原始值,也称为基本类型值,是JavaScript中最简单的数据单元。它们包括: string (字符串) number (数字) bo …