ES6之 let和const关键字(一)

  • let 命令

    • 作用

      • 用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效
    • 特点

      • 在块作用域内有效
      • 不能重复声明
      • 不会预处理, 不存在提升
    • 应用

      • 循环遍历加监听
      • 使用let取代var是趋势
    • 案例

          //案例1:不会预处理, 不存在提升
          console.log(age);// age is not defined
          let age = 12;
          
          //案例2:不能重复声明
          let age = 12;
          //let age = 13;不能重复声明
        
        	//案例3:块作用域内有效
        	{
        		let a = 10;
        		var b = 1;
        	}
      	console.log(a); //ReferenceError: a is not defined.
      	console.log(b); //1
      	
      	function fl(){
      		let n = 5;
      		if(true){
      			let n = 10;
      		}
      		console.log(n); // 5
      	}
      	//案例4:循环的计数器
      	//之前使用var 定义变量 i
      	var a = [];
      	for (var i = O; i < 10; i++) {
      		a[i] = function () {
      				console.log(i);
      			};
      	}
      	a[6](); //10
      	//使用let定义变量 i
      	var a = [];
      	for (let = O; i < 10; i++) {
      		a[i] = function () {
      				console.log(i);
      			};
      	}
      	a[6](); //6
      
      
  • const 命令

    • 作用

      • const 声明一个只读的常量。一旦声明,常量的值就不能改变
      • const 一旦声明常量,就必须立即初始化,不能留到以后赋值
    • 特点

      • 不能修改
      • 其它特点同let
    • 应用

      • 保存不用改变的数据
    • 案例

      //案例1:不能修改
      const PI = 3.1415;
      PI //3.1415
      PI = 3;//TypeError: Assignment to constant variable.
      
      //案例2: const 一旦声明常量,就必须立即初始化,不能留到以后赋值
      const foo;//II SyntaxError : Missing initializer in const declaration
      
      //案例3:const的作用域与let 命令相同:只在声明所在的块级作用域内有效
      if (true) {
      	const MAX = 5;
      }
      MAX  //Uncaught ReferenceError: MAX is not defined
      
      
    • 补充:const 实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动

      const foo = {};
      //为foo 添加一个属性,可以成功
      foe.prop = 123;
      f.prop //123
      //将foo 指向另一个对象,就会报错
      foo = {}; //TypeError:”foo” is read-only
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值