块级作用域

作者: 奔跑的Pi | 来源:发表于2015-11-23 15:25 被阅读125次

前端7班_leec


block scope

ES6之前Javascript没有块级作用域。在{}中定义的变量,它的作用域范围是包含它的函数或者脚本。也就是说,没有块级作用域。


let语句定义了块级作用域。let使得能够在块级作用域内声明变量,只能在定义它的作用域范围内使用。 let(ES6)

var声明的变量具有函数作用域。

var和let

let重定义变量将报错:


Redeclaration

在ES6中,let定义的变量也会提升,然而,如果在定义变量之前引用了变量,将得到ReferenceError.

function do_something() { console.log(foo); let foo = 2; } do_something(); /* Exception: ReferenceError: can't access lexical declaration 'foo' before initialization do_something@Scratchpad/1:12:3 @Scratchpad/1:16:1 */

在switch语句中,let定义也不能重名:

switch (x) { case 0: let foo; break; case 1: let foo; // TypeError for redeclaration. break; } /* Exception: TypeError: redeclaration of let foo @Scratchpad/1:16 */

let vs var##

var a = 5; var b = 10; if (a === 5) { let a = 4; var b = 1; console.log(a); // 4 console.log(b); // 1 } console.log(a); // 5 console.log(b); // 1

let绑定变量在局部作用域中

for (let i = 0; i < 10; i++) { console.log(i); } console.log(i); /* Exception: ReferenceError: i is not defined @Scratchpad/1:13:1 */

控制语句##

如果你需要赋值表达式作为条件表达式可以写成下面这种形式(加括号):

if ((x = y)) { /* statements here */ }

falsy值###

false、undefined、null、0、NaN、""在布尔运算中为false
本文整理自:
MDN

相关文章

  • js 作用域

    js 作用域主要有:全局作用域和局部作用域,es5之前没有块级作用域,es6有了块级作用域 何为块级作用域,块级作...

  • let、const和var的区别(个人笔记)

    1. 区别 (1)块级作用域块作用域由{ }包括,let和const具有块级作用域,var不存在块级作用域。块级作...

  • let,var和const

    var没有块级作用域,只有方法作用域常见的块级作用域,if(){}。for(){}。

  • 第七章 块级作用域、私有变量

    模仿块级作用域 私有变量  js没有块级作用域,只有全局作用域和局部作用域(函数作用域),块级作用域是指某一部分代...

  • 你真的懂let和const吗?

    块级作用域 在ES6之前我们脑海里应该只存在全局作用域和函数级作用域,没有块级作用域。那么为什么要引入块级作用域呢...

  • js高级知识点(第五天)

    所用域 什么是作用域 变量起作用的范围 什么是块级作用域,使用代码块限定的作用域是块级作用域(let声明的变量是块...

  • ES6->块级作用域

    块级作用域 为什么需要块级作用域? ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。第...

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • vue.js let与for的用法

    (一)块级作用域1.let声明的变量拥有块级作用域,块级作用域是一对大括号2.块级作用域可以直接写一对大括号,以后...

  • js声明提升

    块级作用域块级作用域是指花括号内的每一段代码都具有各自的作用域,而javascript没有块级作用域。javasc...

网友评论

    本文标题:块级作用域

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