ES6学习笔记(一)

简介: 一、let 命令 1、let命令1.1基本用法1.1.1 let用于声明变量类似var,但是let声明的变量只在当前代码块内有效{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1let命令在for  循环的计数器中很实用。

一、let 命令


 

1、let命令


1.1基本用法

1.1.1 let用于声明变量

类似var,但是let声明的变量只在当前代码块内有效

{
  let a = 10;
  var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

let命令在for  循环的计数器中很实用。

1.1.2  let不存在变量提升

var命令会发送“变量提升”,即变量可以在声明之前使用,值为undefined 正常来说变量使用一定要在声明之后。

1.1.3 暂时性死区

只要块级作用域内存在let命令,它所生命的变量就绑定(binding)这个区域,不受外部影响。

ES6明确规定,在区块中存在letconst命令,这个区块对这些命令声明的变量都是 不能提前使用的,会报错。

总之在代码块之内,Let声明的变量不可提前使用。

1.1.4不允许重复声明

let不允许在相同作用域内重复声明同一个变量。所以不能在函数内部重新声明参数。

function func(arg) {
  let arg; // 报错
}

function func(arg) {
  {
    let arg; // 不报错
  }
}
1.1.5 ES6的块级作用域

letJavaScript新增了块级作用域,允许块级作用域的任意嵌套。

{{{{{let insane = 'Hello World'}}}}};

外层作用域无法读取内层作用域内的变量。

{{{{
  {let insane = 'Hello World'}
  console.log(insane); // 报错
}}}};

内层作用域可以定义外层作用域的同名变量。

{{{{
  let insane = 'Hello World';
  {let insane = 'Hello World'}
}}}};

 

1.1.6 允许块级作用域中声明函数
// 浏览器的 ES6 环境
function f() { console.log('I am outside!'); }

(function () {
  if (false) {
    // 重复声明一次函数f
    function f() { console.log('I am inside!'); }
  }

  f();
}());
// Uncaught TypeError: f is not a function

ES6的块级作用域允许声明函数的规则只在使用大括号的前提下成立,否则就会报错。

 1.1.7 do表达式

块级作用域是一个语句,将多个操作封装在一起,没有返回值。

使得块级作用域可以变为表达式,也就是说可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式。

 

let x = do {
  let t = f();
  t * t + 1;
};

上面代码中,变量x会得到整个块级作用域的返回值。

 

相关文章
|
8月前
|
Java
ES6 学习笔记一
ES6 学习笔记一
29 0
|
5月前
|
Java
es 学习笔记
es 学习笔记
20 1
|
8月前
|
JavaScript
ES6 学习笔记二
ES6 学习笔记二
21 0
|
11月前
|
机器学习/深度学习 边缘计算 运维
es学习笔记2-es组件
es学习笔记2-es组件
140 0
|
11月前
|
存储 JSON 安全
es学习笔记1-es概念
es学习笔记1-es概念
52 0
|
JavaScript 前端开发 编译器
ES6 从入门到精通 # 01:ES6 介绍
ES6 从入门到精通 # 01:ES6 介绍
88 0
ES6 从入门到精通 # 01:ES6 介绍
|
JSON 前端开发 JavaScript
常用ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性归纳
js ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性归纳
285 0
|
前端开发 索引
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(1)
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(1)
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(1)
|
JSON 前端开发 对象存储
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(2)
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(2)
ES6、ES7、ES8、ES9、ES10、ES11、ES12知识点总结(2)