📌  相关文章
📜  js 字符串与数字差异 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:23.381000             🧑  作者: Mango

JS字符串与数字差异

在JavaScript中,字符串(String)和数字(Number)是两种最基本的数据类型,但它们有一些明显的差异。

字符串和数字的区别
1. 定义

字符串是由一系列字符组成的,用单引号('')或双引号("")括起来的对象。例如:

var str = "Hello World";
var str2 = 'Hello World';

数字是数值类型的数据,用数码表示。例如:

var num = 123;
var num2 = -456.78;
2. 运算符

在JavaScript中,字符串和数字之间运用的运算符是不同的。

数字运算符

数字可以使用加号(+)、减号(-)、乘号(*)、除号(/)和求模(%)等运算符进行运算。例如:

var result = 10 + 20; // 30
var result2 = 50 - 10; // 40
var result3 = 5 * 8; // 40
var result4 = 20 / 5; // 4
var result5 = 15 % 4; // 3

字符串运算符

字符串能够使用加号(+)运算符来进行拼接。

例如:

var strResult = "Hello" + " " + "World"; // "Hello World"

当数字和字符串混合使用时,加号(+)被认为是拼接运算符(Concatenation),而不是数字的加法运算。

例如:

var mixedResult = "Answer: " + 5 + 10; // "Answer: 510"

这里的结果是 "Answer: 510",而不是 "Answer: 15"。因为先将字符串 "Answer: " 和数字 5 拼接成字符串 "Answer: 5",然后将结果字符串和数字 10 继续拼接,得到最终结果 "Answer: 510"。

如果确保数字的加法运算优先于字符串的拼接运算,可以使用括号。

例如:

var mixedResult2 = "Answer: " + (5 + 10); // "Answer: 15"

这里的结果是 "Answer: 15",因为先计算括号里的数字加法运算,得到数字 15,然后将字符串 "Answer: " 和数字 15 拼接成字符串 "Answer: 15"。

3. 隐式类型转换

在JavaScript中,当数字与字符串混合使用时,会自动进行隐式类型转换。

数字自动转换为字符串

当数字与字符串相加时,数字会被自动转换为字符串。

例如:

var strNum = "Answer: " + 5; // "Answer: 5"

这里的结果是 "Answer: 5",因为数字 5 被自动转换成了字符串 "5",然后与字符串 "Answer: " 进行拼接。

字符串自动转换为数字

当字符串与数字相加时,字符串会被尝试转换为数字。如果字符串不能转换为数字,结果就会是 NaN("Not a Number")。

例如:

var numStr = 5 + "5"; // "55"

这里的结果是 "55",因为字符串 "5" 被自动转换为数字 5,然后与数字 5 进行加法运算。

例如:

var nanResult = 5 + "qwerty"; // NaN

这里的结果是 NaN,因为字符串 "qwerty" 无法转换为数字。虽然这里整个表达式结果为 NaN,但是不代表 "qwerty" 被转换成了 NaN。

结论

字符串和数字在JavaScript中分别有自己的特点和用途。需要注意它们之间的运算符和隐式类型转换。在实际开发中,要根据具体情况选择使用哪一种数据类型。