笔记摘自:《你不知道的JavaScript(上)》第3章 函数作用域和块作用域

let

1.let 关键字可以将变量绑定到所在的任意作用域中

2.let 为其声明的变量隐式地劫持了所在的块作用域

3. 通常来讲,显示的代码优于隐式或一些精巧但不清晰的代码。

4.只要声明是有效的,在声明中的任意位置都可以使用{..}括号来为let创建一个用于绑定的块。

5.使用let进行的声明不会在块作用域中进行提升。声明的代码被运行之前,声明并不存在。

例如:

{
console.log(bar); // Reference Error!(引用错误)
let bar = 2;
}

6.let for循环

先看下var for循环的结果

for (var i = 0; i < 10; i++) {
console.log(i); // 0,1,2,3,4,5,6,7,8,9
}
console.log(i); //

再看下使用let for循环的结果

for (let i = 0; i < 10; i++) {
console.log(i); // 0,1,2,3,4,5,6,7,8,9
}
console.log(i); // ReferenceError

for循环头部的let不仅将i绑定到了循环的每个迭代中,确保使用上一个循环的每一个迭代中,确保使用上一个循环迭代结束时的值重新进行赋值。

const

1.const 和let一样可以用来创建块作用域变量,但其值是固定的(常量),之后任何试图修改值的操作都会引起错误。

var foo = true;
if (foo) {
var a = 2;
const b = 3; //包含在if中的块作用域常量 a = 3; // 正常
b = 4; // 错误!
}
console.log(a); //
console.log(b); // ReferenceError

《你不知道的JavaScript(上)》笔记——let和const的更多相关文章

  1. 你不知道的JavaScript上卷笔记

    你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章   初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目 ...

  2. 读书笔记-你不知道的JavaScript(上)

    本文首发在我的个人博客:http://muyunyun.cn/ <你不知道的JavaScript>系列丛书给出了很多颠覆以往对JavaScript认知的点, 读完上卷,受益匪浅,于是对其精 ...

  3. 你不知道的javascript读书笔记3

    概述 这是我看<你不知道的JavaScript(中卷)>中关于类型检查的笔记,供以后开发时参考,相信对其他人也有用. typeof 我们知道js中有七种内置类型:undefined, nu ...

  4. 【你不知道的javaScript 上卷 笔记3】javaScript中的声明提升表现

    console.log( a ); var a = 2; 执行输出undefined a = 2; var a; console.log( a ); 执行输出2 说明:javaScript 运行时在编 ...

  5. 《你不知道的JavaScript》笔记(一)

    用了一个星期把<你不知道的JavaScript>看完了,但是留下了很多疑惑,于是又带着这些疑惑回头看JavaScript的内容,略有所获. 第二遍阅读这本书,希望自己能够有更为深刻的理解. ...

  6. 《你不知道的javascript(上)》笔记

    作用域是什么 编译原理 分词/词法分析 这个过程会将由字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代码块被称为词法单元 解析/语法分析 词法单元流(数组)转换成一个由元素逐级嵌套所组成 ...

  7. <你不知道的JavaScript>读书笔记

    近几天看了一本不错的 JavaScript 的书,是 Kyle Simpson 写的 <You Don't know JS>.这本书是 Kyle Simpson 在 Github 上的开源 ...

  8. 【你不知道的javaScript 上卷 笔记7】javaScript中对象的[[Prototype]]机制

    [[Prototype]]机制 [[Prototype]]是对象内部的隐试属性,指向一个内部的链接,这个链接的作用是:如果在对象上没有找到需要的属性或者方法引用,引擎就 会继续在 [[Prototyp ...

  9. 【你不知道的javaScript 上卷 笔记6】javaScript中的对象相关内容

    一.创建一个对象的语法 var myObj = { key: value // ... };//字面量 var myObj = new Object(); //new myObj.key = valu ...

  10. 【你不知道的javaScript 上卷 笔记5】javaScript中的this词法

    function foo() { console.log( a ); } function bar() { var a = 3; foo(); } var a = 2; bar(); 上面这段代码为什 ...

随机推荐

  1. Unix/Linux环境C编程新手教程(37) shell经常使用命令演练

     cat命令 cat命令能够用来查看文件内容. cat [參数] 文件名称. grep-指定文件里搜索指定字符内容. Linux的文件夹或文件. -path '字串' 查找路径名匹配所给字串的全部 ...

  2. HDOJ 5419 Victor and Toys 树状数组

    分母是一定的C(m,3) 树状数组求每一个数能够在那些段中出现,若x出如今了s段中,分子加上w[x]*C(s,3) Victor and Toys Time Limit: 2000/1000 MS ( ...

  3. 61.node.js开发错误——Error: Connection strategy not found

    转自:https://blog.csdn.net/fd214333890/article/details/53457145

  4. 37.cgi网页交互

    1.Apache的安装 地址:链接:https://pan.baidu.com/s/1kWdSWwZ 密码:nuqo 2.在相应路径下写html如图所示 new.html代码: <html> ...

  5. diff---比较文件不同

    diff命令在最简单的情况下,比较给定的两个文件的不同.如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入.diff命令是以逐行的方式,比较文本文件的异同处.如果该命令指定进行目录的比较,则 ...

  6. centos6.5下 python3.6安装、python3.6虚拟环境

    https://www.cnblogs.com/paladinzxl/p/6919049.html # python3.6的安装 wget https://www.python.org/ftp/pyt ...

  7. 004 python 流程控制语句

    流程控制语句 1.if判断 语法 a = 10,b = 20# 1if a == 10:  print('a等于10')# 2if a > b:  print('a大于b')else:  pri ...

  8. android-pulltorefresh 下拉载入中使用gif动图

    效果预览: xml布局 <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:android="http:// ...

  9. nyist oj 1058 部分和问题 (DFS搜索)

    部分和问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 给定整数a1.a2........an.推断能否够从中选出若干数,使它们的和恰好为K. 输入 首先,n和k ...

  10. Leetcode:signal_number_ii

    一.     题目 给一个数组,当中仅仅有一个数出现一次.其它的数都出现3次,请找出这个数.要求时间复杂度是O(n).空间复杂度O(1). 二.     分析 第一次遇见这种题,真心没思路-.前面的s ...