语法和数据类型 您所在的位置:网站首页 node和javascript的语法一样嘛 语法和数据类型

语法和数据类型

#语法和数据类型| 来源: 网络整理| 查看: 265

字符串字面量是由双引号(")对或单引号(')括起来的零个或多个字符。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。下面的例子都是字符串字面值:

js

'foo' "bar" '1234' 'one line \n another line' "Joyo's cat"

你可以在字符串字面值上使用字符串对象的所有方法——JavaScript 会自动将字符串字面值转换为一个临时字符串对象,调用该方法,然后废弃掉那个临时的字符串对象。你也能用对字符串字面值使用类似 String.length 的属性:

js

console.log("John's cat".length); // 将打印字符串中的字符个数(包括空格) // 结果为:10

在 ES2015 中,还提供了一种模板字面量,模板字符串提供了一些语法糖来帮你构造字符串。这与 Perl、Python 还有其他语言中的字符串插值的特性非常相似。除此之外,你可以在通过模板字符串前添加一个 tag 来自定义模板字符串的解析过程,这可以用来防止注入攻击,或者用来建立基于字符串的高级数据抽象。

js

// Basic literal string creation `In JavaScript '\n' is a line-feed.` // Multiline strings `In JavaScript this is not legal.`; // String interpolation var name = "Bob", time = "today"; `Hello ${name}, how are you ${time}?`; // Construct an HTTP request prefix is used to interpret the replacements and construction POST`http://foo.org/bar?a=${a}&b=${b} Content-Type: application/json X-Credentials: ${credentials} { "foo": ${foo}, "bar": ${bar}}`(myOnReadyStateChangeHandler);

除非有特别需要使用字符串对象,否则,你应当始终使用字符串字面值。要查看字符串对象的有关细节,请参见字符串对象。

在字符串中使用的特殊字符

作为一般字符的扩展,你可以在字符串中使用特殊字符,如下例所示。

js

"one line \n another line";

以下表格列举了你能在 JavaScript 的字符串中使用的特殊字符。

字符 意思 \0 Null 字节 \b 退格符 \f 换页符 \n 换行符 \r 回车符 \t Tab (制表符) \v 垂直制表符 \' 单引号 \" 双引号 \\ 反斜杠字符(\) \XXX 由从 0 到 377 最多三位八进制数XXX表示的 Latin-1 字符。例如,\251 是版权符号的八进制序列。 \xXX 由从 00 和 FF 的两位十六进制数字 XX 表示的 Latin-1 字符。例如,\ xA9 是版权符号的十六进制序列。 \uXXXX 由四位十六进制数字 XXXX 表示的 Unicode 字符。例如,\ u00A9 是版权符号的 Unicode 序列。见Unicode escape sequences (Unicode 转义字符). \u*{XXXXX}* Unicode 代码点 (code point) 转义字符。例如,\u{2F804} 相当于 Unicode 转义字符 \uD87E\uDC04 的简写。 转义字符

对于那些未出现在表 2.1 中的字符,其所带的前导反斜线 '\' 将被忽略。但是,这一用法已被废弃,应当避免使用。

通过在引号前加上反斜线 '\',可以在字符串中插入引号,这就是引号转义。例如:

js

var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service."; console.log(quote);

代码的运行结果为:

js

He read "The Cremation of Sam McGee" by R.W. Service.

要在字符串中插入'\'字面值,必须转义反斜线。例如,要把文件路径 c:\temp 赋值给一个字符串,可以采用如下方式:

js

var home = "c:\\temp";

也可以在换行之前加上反斜线以转义换行(译注:实际上就是一条语句拆成多行书写),这样反斜线和换行都不会出现在字符串的值中。

js

var str = "this string \ is broken \ across multiple\ lines."; console.log(str); // this string is broken across multiplelines.

Javascript 没有“heredoc”语法,但可以用行末的换行符转义和转义的换行来近似实现

js

var poem = "Roses are red,\n\ Violets are blue.\n\ Sugar is sweet,\n\ and so is foo.";

ECMAScript 2015 增加了一种新的字面量,叫做模板字面量。它包含一些新特征,包括了多行字符串!

js

var poem = `Roses are red, Violets are blue. Sugar is sweet, and so is foo.`;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有