📅  最后修改于: 2023-12-03 15:02:23.381000             🧑  作者: Mango
在JavaScript中,字符串(String)和数字(Number)是两种最基本的数据类型,但它们有一些明显的差异。
字符串是由一系列字符组成的,用单引号('')或双引号("")括起来的对象。例如:
var str = "Hello World";
var str2 = 'Hello World';
数字是数值类型的数据,用数码表示。例如:
var num = 123;
var num2 = -456.78;
在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"。
在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中分别有自己的特点和用途。需要注意它们之间的运算符和隐式类型转换。在实际开发中,要根据具体情况选择使用哪一种数据类型。