es6新语法

定义

2015年发布的, javascript的第六个版本 以及后续版本就是统称为ES6;

Symbol

1.定义变量

es5
  • 关键字:var

  • 特点(两个):

    • [1]有变量提升:将所有定义的变量提升到当前作用域最顶端

      • 举例说明:

         console.log(a) //undefined
         var a = 100
         console.log(a) //100
         var a = 200
         console.log(a) //200
         
         // 相当于
         var a;
         console.log(a) //undefined
         a=100;
         console.log(a) //100
         a=200;
         console.log(a) //200
        
      • 因此[1]:可以在同一作用域多次定义相同的变量–都提升到当前作用域的最前面,被覆盖;

      • 因此[2]:变量可以在声明之前访问(值为undefined)

    • [2]没有块级作用域:分支和循环大括号里面声明的变量是全局的;

      • 举例说明

          if(true){
                 
              var b=10;
          }
          console.log(b); //10
           // 若是具有块级作用域:块级作用域内部可以访问全局变量,但是全局作用域中不能访问局部变量(局部作用域、块级作用域中定义的变量)
        
es6
  • 关键字

    • 关键字1:let
    • 关键字2:const
  • let 和const共同点

    • 没有变量提升:

      • 因此[1]变量必须先声明后访问

      • 因此[2]同一变量在同一作用域不能重复定义

      • 举例说明

         console.log(n1);//报错n1 is not defined
         let n1 = 10;
         console.log(n1);//10
        
          let a=10
          let a=20
          console.log(a) // Identifier 'a' has already been declared
        
    • 有块级作用域

      • 分支和循环大括号里面声明的变量是 ‘局部’ 的,外面不能调用

      • 举例说明

         if (true) {
                 
             let n2 = 10;
         }
         console.log(n2);//n2 is not defined
        
  • let与const的区别

    • let --变量–可以重新赋值;

       let a=20;
       console.log(a);//20
       a=10;
       console.log(a);//10
      
    • const-常量–不可以重新赋值(只能在定义的同时赋值一次)

       const a = 10;
       console.log(a);
       a = 20;
       console.log(a);//Assignment to constant variable.
      
       const a;
       a = 20;
       console.log(a);//Assignment to constant variable.
       //原因是在定义的时候自动赋值为undefined
      
    • 注意:const说常量是作为变量来说的,

      • 其实const是不能够修改栈中的数据,若是使用const定义一个引用类型的数据(数组,对象,函数),当我们修改堆中数据时,不会产生错误

      • 举例说明

         <script>
              const person = {
                 
                name: 'chaochao',
                area: 'china'
              }
              person.name = 'niuniu'
              console.log(person) //{name:'niuniu',area:'china'}
            </script>
        
      • 总结:使用const定义的值若是简单数据类型,不能够直接修改,若是复杂数据类型,只要不修改其引用,就可以随便修改;

示例
示例1
var a = [];
for (var i = 0; i < 10; i++) {
   
  a[i] = function () {
   
    console.log(i);
  };
}
a[6](); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值