1. 程式人生 > >Es6常用語法

Es6常用語法

selector all 閉包 let 作用 document 代碼塊 UNC for

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常用語法