JavaScript 模板字符串与 es6 中 let 的用法
模板字符串
前言:模板字面量 是允许嵌入表达式的字符串字面量。你可以使用多行字符串和字符串插值功能。它们在 ES2015 规范的先前版本中被称为“模板字符串”。
一、语法
二、描述
模板字符串使用反引号 (``) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。
三、多行字符串
在新行中插入的任何字符都是模板字符串中的一部分,使用普通字符串,你可以通过以下的方式获得多行字符串:
要获得同样效果的多行字符串,只需使用如下代码:
四、插入表达式
现在通过模板字符串,我们可以使用一种更优雅的方式来表示:
es6 中 let 的用法
1、let 的引入
ES6 新增了let
命令,用来声明变量。它的用法类似于var
,但是所声明的变量,只在let
命令所在的代码块内有效。
2、基本用法
上面代码在代码块之中,分别用let
和var
声明了两个变量。然后在代码块之外调用这两个变量,结果let
声明的变量报错,var
声明的变量返回了正确的值。这表明,let
声明的变量只在它所在的代码块有效。
我们在使用for
循环的计数器时,就很适合使用let
命令,如下:
上面代码中,计数器 i 只在 for
循环体内有效,在循环体外引用就会报错。如果使用 var
,最后输出的是 10。
3、不存在变量提升
var
命令会存在“变量提升”现象,即变量可以在声明之前使用,值为undefined
。这种现象会让人觉得很奇怪,按照一般的逻辑,变量应该在声明语句之后才可以使用。
那么为了纠正(避免)这种现象,let
命令改变了语法行为,它所声明的变量一定要在声明后使用,否则会报错。
版权声明: 本文为 InfoQ 作者【何极光】的原创文章。
原文链接:【http://xie.infoq.cn/article/2b7c370175fafa91c4194ea51】。文章转载请联系作者。
评论