美文网首页
let语法特性

let语法特性

作者: 卡卡卡卡颂 | 来源:发表于2017-04-04 00:56 被阅读0次
  • 形成块级作用域
for (let i=0;i<3;i++) {
  let i='abc';
console.log(i);
}
//abc
//abc
//abc

这里循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域。
输出3次abc,表明函数内部变量i和循环语句中的i是分离的。

  • 不存在变量提升
console.log(foo); //undefined
var foo=2;

//let 情况
console.log(bar); //ReferenceError
let bar=2;
  • 暂时性死区(temporal dead zone)
    如果区块中存在let和const命令,则这个区块不需等到代码执行到命令那一行就形成封闭作用域
var tmp=123;
if (true) {
  tmp='abc'; //ReferenceError
  let tmp;
}

在块内,使用let声明变量前,该变量都是不可用的。

function bar(x = y, y = 2) {
  return [x, y];
}

bar(); // 报错

参数x默认值等于另一个参数y,而此时y还没有声明,属于”死区“。

  • 不允许在相同作用域内重复声明同一个变量
// 报错
function () {
  let a = 10;
  var a = 1;
}

// 报错
function () {
  let a = 10;
  let a = 1;
}

//函数内部也不可以
function fn (arg) {
  let arg; //报错
}
function fn (arg) {
  {
    let arg; //不报错
  } 
}


相关文章

  • let语法特性

    形成块级作用域 这里循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域。输出3次abc,表明函数内部变量...

  • React全栈

    一、现代前端开发 1.1 ES6 —— 新一代的JavaScript标准 1.1.1 语法特性 const、let...

  • 面试

    ES6常用新特性和语法。 一、变量申明 ES6有var、function、let、const、import、cla...

  • Swift 基本语法01-Swift简介

    Swift 基本语法02-"let"和"var"Swift 基本语法03-"if let"和"guard let"...

  • ES6 实用新增特性总结

    以下内容是我在学习ES6的语法时整理的一些比较常用的新特性。 let和const let可以理解为var的替代版本...

  • Swift if let & guard let 语法糖

    if let 和 guard let 语法糖 总结:

  • let 特性

    说明:除了提供var的变量声明方法,还提供了将变量绑定到所有的任意作用域中(通常是{..}内部)换句话说:let,...

  • Swift 基本语法02-"let"和&qu

    Swift 基本语法01-Swift简介Swift 基本语法03-"if let"和"guard let"Swif...

  • ES6新特性

    ES6的新特性: 块级作用域(let, contst) 定义类的语法糖(class) 一种基本数据类型(Symbo...

  • Node.js 模块机制及模块化特点

    一. Node.js对es6语法支持特性 let const声明,箭头函数,模板字符串,类class 不支持es6...

网友评论

      本文标题:let语法特性

      本文链接:https://www.haomeiwen.com/subject/pqroottx.html