码迷,mamicode.com
首页 > 其他好文 > 详细

Es6常用语法

时间:2018-12-20 01:01:39      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:修改   bsp   doc   name   定义   描述   常量   length   点击   

1、let

var 定义的变量:只有全局作用域和函数作用域

let 定义的变量:有全局作用域和函数作用域,块级作用域

 

let作用域只限于当前代码

{
  let a =12;  
}
console.log(a);    #报错,a不存在

let声明的变量作用域不会被提升

    console.log(a);    #报错
    let = 12;      

在相同的作用域下不能声明相同的变量

{
   let a = 10;
   let a = 11;  //报错    
 }

 

for循环体现let的父子作用域

//使用var声明,需要用到“闭包”
    var btns = document.querySelectorAll("button");
      for(var i=0;i<btns.length;i++){
      (function(i){
           btns[i].onclick= function (){
            alert("点击了"+i+"个按钮")
          }
      })(i);
    }
    
    //let声明
     let btns = document.querySelectorAll("button");
      for(let i=0;i<btns.length;i++){
          btns[i].onclick= function (){
            alert("点击了"+i+"个按钮")
          }
      }

2、const

(1)、const作用域只限于当前代码块
(2)、const声明的变量作用域不会被提升
(3)、在相同的作用域下不能重复声明
(4)、声明的同时必须赋值,声明后值无法改变

{   
    const b; //报错
    
    const a = 123;
    a = 222; //报错
    
} 

针对对象就不一样了

{
    const obj = {
        name:"lisi"
     }
    console.log(obj.name); //lisi
    
    obj.name = "zhaoliu";
    console.log(obj.name);//zhaoliu
}
//在上面中定义的是一个常量对象,对象是储存在内存的“堆区”,通过一个地址描述出来,在“栈区”关联此地址。所以,obj存储的是地址,而不是值,是可以做修改的。

 

Es6常用语法

标签:修改   bsp   doc   name   定义   描述   常量   length   点击   

原文地址:https://www.cnblogs.com/pengsq/p/10147031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!