在javascript中,字符串是由一组由引号包围的一连串字符。
这里引号有:单引号,双引号和反引号。
let province = "河北省"
let city = '石家庄市'
单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号。
<a href="javascript:alert('hello world')">click me</a>
如果要在单引号字符串的内部,使用单引号,就必须在内部的单引号前面加上反斜杠,用来转义。双引号字符串内部使用双引号,也是如此。
//单引号中嵌套单引号
let desc1 = 'Did she say \'Hello\'?'
//或者,双引号中嵌套双引号
let desc2 = "Did she say \"Hello\"?"
在html区域中不能使用javascript的反引号。
<!-- 错误的写法 -->
<a href="javascript:alert(\"hello world\")">click me</a>
<!-- 正确的写法 -->
<a href="javascript:alert("hello world(")">click me</a>
模板字符串
模板字符串(Template String)是增强版的字符串,ES6引入的语法,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
$('#list').html(`
<ul>
<li>first</li>
<li>second</li>
</ul>
`.trim());
上面代码表示往id=list的元素中写入新的后代元素。
模板字符串中的空格和换行都是被保留的,比如
<ul>
标签前面会有一个换行。如果想把行首和行尾的换行、空格等去掉,则使用trim方法即可。
模板字符串中嵌入变量,要将变量名写在${}
之中。大括号内可以放入任意的JavaScript表达式,可以进行运算,以及引入对象属性。
var str = "world"
var msg = `Hello, ${str}`;
在微信小程序中,如果改变数组中某个元素的属性,可以使用反引号,见下面代码。
this.setData({
[`arr[${index}].age`]: 20
})