HTML的內(nèi)容為了易讀碾盟,需要多行書寫,保留縮進和回車
但是在JS中這樣書寫是合法的颓鲜,錯誤提示Unterminated string literal
var htmlString = "
<html>
<head>
<meta charset='utf-8'></meta>
<meta name='viewport' content='width=device-width initial-scale=1'></meta>
<title>HTML</title>
</head>
<body>
</body>
</html>
"
ES6中的模版字符串
模板字符串(Template String)是增強版的字符串,用反引號(``)
標識相艇,可以定義多行字符串偶妖,所有的空格姜凄、縮進和換行都會被保留
var htmlString = `
<html>
<head>
<meta charset='utf-8'></meta>
<meta name='viewport' content='width=device-width initial-scale=1'></meta>
<title>HTML</title>
</head>
<body>
</body>
</html>
`
ES5的hack
在ES5中有三種合法的方式來寫這種多行字符串
轉(zhuǎn)義newline
var htmlString = " \
<html> \
<head> \
<meta charset='utf-8'></meta> \
<meta name='viewport' content='width=device-width initial-scale=1'></meta> \
<title>HTML</title> \
</head> \
<body> \
</body> \
</html> \
"
拼接字符串
var htmlString = " +
<html> +
<head> +
<meta charset='utf-8'></meta> +
<meta name='viewport' content='width=device-width initial-scale=1'></meta> +
<title>HTML</title> +
</head> +
<body> +
</body> +
</html> +
"
join
字符串數(shù)組
var htmlString = [
'<html>' ,
'<head>',
'<meta charset='utf-8'></meta>',
'<meta name='viewport' content='width=device-width initial-scale=1'></meta>',
'<title>HTML</title>',
'</head>',
'<body>',
' </body>',
'</html>'
].join('')
這樣對比一看,還是ES6語言的新特性方便很多