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);

最新文章

  1. C语言基础(11)-随机数发生器
  2. POJ2288 Islands and Bridges(TSP:状压DP)
  3. csipsimple 下载地址
  4. WindowsForm 记事本 对话框
  5. idea中使用scala运行spark出现Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
  6. Redis util
  7. Nio学习4——EchoServer在IO,NIO,NIO.2中的实现
  8. Dylans loves numbers
  9. nodejs学习随笔
  10. Android Studio常用快捷键使用
  11. jQuery动画使用总结
  12. .NET Framework简介
  13. mysql 开发进阶篇系列 1 SQL优化(show status命令)
  14. 算法笔记 3.2 codeup1934 找X
  15. 最大值最小值(max,max_element)
  16. JavaScript中变量的相互引用
  17. UVa 1374 快速幂计算(dfs+IDA*)
  18. PHP语言基础之MySql 05 By ACReaper
  19. InputStream TO byte
  20. 计算机专业C语言编程学习重点:指针化难为易

热门文章

  1. 木卯先生的笔记---Date类、DateFormat类和Calendar类
  2. oracle-PL/SQL1
  3. Codefroces 213E. Two Permutations
  4. POJ2182Lost Cows
  5. Laravel 5.2 使用 JWT 完成多用户认证 | Laravel China 社区 - 高品质的 Laravel 开发者社区 - Powered by PHPHub
  6. leetcode 60-80 easy
  7. Python使用Pandas高效处理测试数据
  8. 总体&lt;导学&gt;
  9. HTTP之request请求(注册)
  10. MaxCompute 助力衣二三构建智能化运营工具