JavaScript 字符串
-
JavaScript字符串
JavaScript字符串用于存储和操作文本。JavaScript字符串是在引号内写入的零个或多个字符。
尝试一下var x = "John Doe";
您可以使用单引号或双引号:
尝试一下var carName1 = "Volvo XC60"; // 双引号 var carName2 = 'Volvo XC60'; // 单引号
您可以在字符串中使用引号,只要它们与字符串周围的引号不匹配:
尝试一下var answer1 = "It's alright"; var answer2 = "He is called 'Johnny'"; var answer3 = 'He is called "Johnny"';
-
-
特殊字符
因为字符串必须用引号写,所以JavaScript运行引擎会误解这个字符串中的引号引起语法错误:var x = "We are the so-called "Vikings" from the north.";
该字符串将被切割为“We are the so-called ”。避免此问题的解决方案是使用反斜杠转义字符。反斜杠(\)转义字符将特殊字符转换为字符串字符:代码 结果 描述 \' ' 单引号 \" " 双引号 \\ \ 反斜杠 在字符串中用转义插入单引号,双引号,反斜杠
尝试一下var x = "We are the so-called \"Vikings\" from the north."; var y = 'It\'s alright.'; var z = "The character \\ is called backslash.";
其他六个转义序列在JavaScript中有效:代码 描述 \b 退格 \f 换页 \n 新行 \r 回车 \t 水平制表 \v 垂直制表 上面的6个转义字符最初设计用于控制打字机,电传打字机和传真机。它们在HTML中没有任何意义。
-
截断长的代码行
为了最好的可读性,程序员经常喜欢避免长度超过80个字符的代码行。如果JavaScript语句不适合一行,那么截断它的最佳位置是在运算符之后:
尝试一下document.getElementById("demo").innerHTML = "Hello Dolly!";
您还可以使用单个反斜杠拆分文本字符串中的代码行:
尝试一下document.getElementById("demo").innerHTML = "Hello \ Dolly!";
这种方法不是优选的方法。它可能没有普遍的支持。有些浏览器不允许在\后面留出空格。
分解字符串的一种更安全的方法是使用字符串连接操作符“+”:
尝试一下document.getElementById("demo").innerHTML = "Hello " + "Dolly!";
-
字符串可以是对象
通常,JavaScript字符串是原始值,从文字创建:var firstName = "John";但是字符串也可以用关键字new定义为对象:var firstName = new String("John");
尝试一下var x = "John"; var y = new String("John"); // typeof x 返回 string // typeof y 返回 object
不要将字符串创建为对象。它会降低执行速度。new关键字使代码复杂化。这会产生一些意想不到的结果:
使用==运算符时,相等的字符串是相等的:
尝试一下var x = "John"; var y = new String("John"); // (x == y) 为true 因为他们有相同的值
使用===运算符时,相同的字符串不相等,因为===运算符期望类型和值都相等。
尝试一下var x = "John"; var y = new String("John"); // (x === y) 为false 因为他们的类型不同
甚至更糟。对象无法比较:
尝试一下var x = new String("John"); var y = new String("John"); // (x == y) 为 false 因为 x 和 y 为不同的对象
尝试一下var x = new String("John"); var y = new String("John"); // (x === y) 为 false 因为 x 和 y 为不同的对象
注意(x==y)和(x===y)之间的差异。比较两个JavaScript对象将始终返回false。