1、let

它的作用类似于var,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效。

if(true){

    var a = ;

    let b = ;

}

document.write(a);

document.write(b);  // 报错:ReferenceError: b is not defined

体会下let和var的作用域范围:

function f1() {

  var a = ;

  let n = ;

  if (true) {

      let n = ;

      var a = 

  }

  document.write(n); //

  document.write(a); //

}

f1();

2、let的应用

for循环的计数器,就很合适使用let命令。

var a = [];

for (let i = ; i < ; i++) {

  a[i] = function () {

    document.write(i);

  };

}

document.write(a[]()); //

如果把let换成var ,将输出10。这是由于let的块级作用域。

3、const

a、const 声明的是常量,一旦声明,值将是不可变的。

const PI = 3.1415;

PI // 3.1415 

PI = ;

PI // 3.1415 

const PI = 3.1;

PI // 3.1415

b、const 也具有块级作用域

if (true) {

  const max = ;

}

document.write(max);  // ReferenceError 常量MAX在此处不可得

c、const 不能变量提升(必须先声明后使用)

if (true) {

  document.write(MAX); // ReferenceError

  const MAX = ;

}

d、const 不可重复声明

var message = "Hello!";

let age = ;

// 以下两行都会报错

const message = "Goodbye!";

const age = ;

const 指令指向变量所在的地址,所以对该变量进行属性设置是可行的(未改变变量地址),如果想完全不可变化(包括属性),那么可以使用冻结。

const C1 = {};

C1.a = ;

document.write(C1.a); //

C1 = {};  // 报错  重新赋值,地址改变 

//冻结对象,此时前面用不用const都是一个效果

const C2 = Object.freeze({}); 

C2.a = ; //Error,对象不可扩展

document.write(C2.a);

es6 中let与const的简析的更多相关文章

  1. Mysql中FIND_IN_SET()和IN区别简析

    来源:http://www.jb51.net/article/125744.htm 测试SQL: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_inc ...

  2. Unity5中新的Shader体系简析

    一.Unity5中新的Shader体系简析 Unity5和之前的书写模式有了一定的改变.Unity5时代的Shader Reference官方文档也进一步地变得丰满. 主要需要了解到的是,在原来的Un ...

  3. es6 中的let,const

    在es6中,let的作用和var差不多,都是用来声明变量的,但是他们之间的区别在于作用域不同,大家都知道在js中没有块级作用域,例如: for(var i=0;i<10;i++){ consol ...

  4. ES6 中 let 和 const 总结

    目录 let const 1. let要好好用 1. 基本用法 2. let声明的变量不存在变量提升 3. TDZ(temporal dead zone)暂时性死区 4. 不允许重复声明 2. 块级作 ...

  5. ES6中var/let/const的区别

    let的含义及let与var的区别: let 声明的变量只在它所在的代码块有效: 如下: for (let i = 0; i < 10; i++) { console.log(i); } con ...

  6. ES6 中 let and const

    let 和 const 命令 let 命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; v ...

  7. ES6中let与const命令详解

    阮一峰ES6入门 let 作用域 let命令用来声明变量,但声明的变量只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: ...

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

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

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

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

随机推荐

  1. AntColony 磁力搜索引擎的核心

    介绍 AntColony(Github)是findit磁力搜索引擎的核心.用来在DHT网络中,收集活跃资源的infohash,下载并解析资源的种子文件,存入数据库等.AntColony是若干功能的合集 ...

  2. 通信网络 ccf

    试题编号: 201709-4 试题名称: 通信网络 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只 ...

  3. 采坑“微信小程序”

    1.微信小程序变量定义时中间不能使用 “-”. 2.padding值不能为负.

  4. Hibernate4的注解 (持续更新范例中)

    作用:使得Hibernate程序的开发大大的简化.利用注解后,可不用定义持久化类对应的*.hbm.xml,而直接以注解方式写入持久化类的实现中. 注解配置持久化类常用注解. 注解 含义和作用 @Ent ...

  5. Java基础-注解

    什么是注解? Jdk1.5新增新技术,注解.很多框架为了简化代码,都会提供有些注解.可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件. 注解不会也不能影响代码的实 ...

  6. 提升mysql服务器性能(HA MMM MHA MaxScale)

    原文:提升mysql服务器性能(HA MMM MHA MaxScale) 版权声明:皆为本人原创,复制必究 https://blog.csdn.net/m493096871/article/detai ...

  7. java数字金额转中文大写

    package com.example.convert; import java.text.DecimalFormat; import java.util.Scanner; /** * 金额转换 * ...

  8. Codefroces 213E. Two Permutations

    E. Two Permutations time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  9. Leetcode686.Repeated String Match重复叠加字符串匹配

    给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd",B = " ...

  10. arcgis显示经纬度

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...