1和Number(1)有什么不同? - 一个前端开发工程师的回答

7 min read

在JavaScript中,1是一个字面值,表示数字1,而Number(1)是一个构造函数,可以将参数转换为数字类型。如果将一个非数字类型的值传递给Number()构造函数,它将尝试将该值强制转换为数字类型。例如:

1 + 1 // 2
"1" + "1" // "11"

typeof 1 // "number"
typeof Number("1") // "number"

typeof "1" // "string"
typeof Number("hello") // "number"

在第二个例子中,字符串“1”连接在一起,形成另一个字符串“11”。在第三个例子中,尽管传递给Number()构造函数的是一个非数字字符串,但它将尝试将其转换为数字类型,因此结果是数字类型,打印typeof运算符的结果也是“number”。