1. let的作用域在代码块中仅限在当前的作用于中

 {
var str1 = 12;
console.log(str1); //
let str2 = 20;
console.log(str2); //20    
}
console.log(str1); //12
console.log(str2); //报错

2. let的变量不会被提升

 {
console.log(str1); //undedfined
var str1 = 12;
//等同于
var str;
console.log(str1);
str1 = 12; console.log(str2); //报错 未定义
let str2 = 20;
//等同于
console.log(str2);
let str2;
str2 = 20;
}

3. let 不能重复声明

 {
var str1 = 12;
var str1 = 15;
console.log(str1); // let str2 = 20;
let str2 = 25;
console.log(str2); //报错 不能声明两个相同的变量 //整个内容一起运行的时候上边的代码不会执行结果,因为实在解析str2的时候出错的
}

4. let的父子作用域

//  假设有5个按钮
var btns = document.getElementsByTagName("button"); for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function (){
console.log(i); //始终为5
}
}
// 如果要想实现显示点击的第几个要用到闭包
for (var i = 0; i < btns.length; i++) {
(function(i){
btns[i].onclick = function (){
console.log(i); //从0开始点击那个显示第几个
}
})(i)
} // 用let
let btns = document.getElementsByTagName("button");
for (let i = 0; i < btns.length; i++){
btns[i].onclick = function (){
console.log(i); //从0开始点击那个显示第几个
}
} // 再看一个例子
for(let i = 0; i < 5; i++){
let i = 20;
console.log(i); //20 输出5次 (如果改为var 只会输出一次20)
}

5. const(一般声明常量)

const 与let 类似,有几个相同点,就不在粘贴代码了

1)  只在当前代码块作用域中有效

2)  不会被提升

3)  不能重复声明

不同之处

1)声明的时候必须赋值如下

const name = "张三";
console.log(name);
// 下面这样会报错
const name;
name = "张三";
console.log(name); // 报错

2)声明的值不能修改(对象除外)

const name;
name = "张三";
console.log(name); // 报错 // 如果是对象的话可以修改,因为对象是存放的时堆内存
const obj = {
name: "张三"
}
console.log(obj.name); // 张三
obj.name = "李四";
console.log(name); //李四

PS:我是一个新手,写这个除了分享外,也算是自己做的一个笔记,欢迎各位的大神指点,内容浅显,不喜勿喷,如果有错误,请指点

let 和const与var的不同的更多相关文章

  1. JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...

  2. JS中const、var 和let的区别

    今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...

  3. js中三种定义变量 const, var, let 的区别

    js中三种定义变量的方式const, var, let的区别 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 ...

  4. 关于ES6的let,const与var之间的三生三世

    首先需要明确的是let.const.var都是用来定义变量的 在ES6之前,我们一般都用var来定义变量,例如 : function test(){ var i=1; console.log(i); ...

  5. delphi中move函数的正确理解(const和var一样,都是传地址,所以Move是传地址,而恰恰不是传值)太精彩了 good

    我们能看到以下代码var pSource,pDest:PChar;     len: integer;.......................//一些代码Move(pSource,pDest,l ...

  6. ES6中let、const和var的区别

    一.let 1.基本用法 ES6 新增了let命令,用来声明变量. let 的用法类似于 var,但所声明的变量只在 let 命令所在的代码块内有效(一个“{}”相当于一个代码块) { let a = ...

  7. 浅谈ES6——ES6中let、const、var三者的区别

    在了解let.const.var的区别之前,先了解一些什么是es6 Es6 全称ECMAscript 是JavaScript语言的一个标准,其实Es6本质就是JavaScript的一个版本,为什么叫E ...

  8. let、const、var区别?

    let.const.var区别? let和const不存在变量提升(没有预解析,var有预解析). let和const在同一作用域范围内不能重复定义变量.(var可以). let和const有严格的作 ...

  9. js中三种定义变量的方式const, var, let的区别。

    const   var  let区别 1.const 定义的变量不可以修改,而且必须初始化 const a = 3;正确 const a;错误,必须初始化 console.log("函数外c ...

随机推荐

  1. PowerBI开发 第七篇:数据集和数据刷新

    PowerBI报表是基于数据分析的引擎,数据真正的来源(Data Source)是数据库,文件等数据存储媒介,PowerBI支持的数据源类型多种多样.PowerBI Service(云端)有时不直接访 ...

  2. 理解js中的运算符优先级

    前言 我是有过这样的经历,获取年月日时写出这样的代码: new Date().getFullYear() 此时的我是心虚的,因为我不知道是先执行.运算还是new运算,于是赶紧贴到控制台里,哎呦

  3. struts2-学习笔记(三)

    Struts2 学习笔记(三) 1.ognl概述: OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用O ...

  4. easyUI tree点击文字展开节点

    easyUI默认展开树的时候,点击节点前边的黑色小三角 ,这样操作存在不人性化的地方,在实际使用中由于老旧电脑的存在和大龄使用者的眼花经常点不准:因此要实现点击节点名称展开的方式,其实就是在展开事件上 ...

  5. The Twelve-Factor App 实践

    The Twelve-Factor App <The Twelve-Factor App>定义了一个优雅的互联网应用在设计过程中,尤其是在设计SAAS服务时,需要遵循的一些基本原则.本文为 ...

  6. Installation of the JDK-9 on ubuntu(linux上安装jdk-9)

    Description:Java SE 9 is the latest update to the Java Platform(General Availability on 21 September ...

  7. git的使用(入门篇)

    1.Git 的安装 Window 下的安装 从 http://git-scm.com/download 上下载window版的客户端,然后一直下一步下一步安装git即可,请注意,如果你不熟悉每个选项的 ...

  8. 【Windows 10 应用开发】使用x:Bind标记动态获得计算结果

    UWP 在传统(WPF)的Binding标记上引入了 Bind 标记,Bind 基于编译阶段生成,因而具有较高的性能.但是,你得注意,这个性能上的优化是免去了运行阶段动态绑定的开销,这是不包括数据源的 ...

  9. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  10. Python练习----购物车

    要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...