es6 語法的

  es5 中提供了 兩個聲明變量的方式es6

  var  function瀏覽器

  es6 中提供了 四種聲明變量的方式異步

  let  const  class  import函數

  如今,定義變量的關鍵字有 6 個了es5

  備註:不能忽略函數的形參函數的私有變量;對象

  var 定義變量blog

  var 的功能: 變量提高,可是未定義,給 window 添加一個定義的屬性事件

  function 定義變量內存

  function 的功能:既能夠變量提高,同時還進行了定義作用域

  let 定義變量

  是 es6 提供的一種聲明變量的方式

  1. 沒有變量提高的功能,在聲明以前不能使用;

  2. 不能重複聲明

  3. 不會給 window 添加屬性

  var 的做用域:

    var 聲明變量,做用域分兩種

    一種是全局做用域

      在 window 下聲明變量或在函數外聲明變量

    一種是局部做用域

      在函數內聲明的變量

  瞭解瀏覽器執行機制;

    瀏覽器執行的時候,首先會開闢一個大空間,叫 window ,window 下面分兩個模塊,一個叫棧,一個叫堆,棧存放的變量的內存地址,堆主要存放代碼塊,而後瀏覽器從上到下執行代碼

    如圖

    

  function 申請變量

    function 聲明的變量 也會給 window 添加一個屬性,屬性值是方法

  函數的歸屬

    函數歸誰,跟他在哪調用無關,跟他在哪定義有關

  任何一個函數,執行後,都有一個返回值,若是沒了 return 是什麼就獲得什麼,若是沒有 return 就是 undefined 

  函數在 if 中的特殊狀況

    var function  都有變量提高,window 下 全部的 var function 

    可是在 if 語句裏面的定義函數,只會提早聲明,不定義,當條件成立的時候,if 模塊中無論函數在哪聲明的,函數都會第一步對這個函數先定義,在去執行 if 裏面的代碼

 

  let 聲明的變量,塊級做用域

  帶 {} 都是塊級做用域;

  在塊級做用域,代碼的執行的順序,從上到下依次執行,哪怕塊級做用域裏面套塊級做用域  而 局部做用域 則是,跟函數在哪調用有關

  if(){}  for(){}  對象{}

  注意:var function 沒有塊級做用域這個概念,let 和 const 有塊級做用域這個概念;

  1. 在塊級做用域下 var 和 function 跟在 window 下同樣,可是 function 在塊級做用域前面,只會聲明,不會提早定義;

  2. 在塊級做用域下 let 和 const 聲明的變量都是私有的,外面訪問不到;

  3. for 循環下,let 聲明的變量不會泄露

  事件是異步的,for 循環結束後,i 是 3 而且 全局,點擊了 li ,最後 alert 出 i , i 此時是3 ,因此會彈 3

  let 循環的好處不少; 塊級做用域不會有全局一說,可讓咱們更好的處理 for循環的事件

  

  塊級做用域和對象的區分;

    {} 若是想表示對象,那就不能放在行首,就是大括號前面不能沒東西,若是 {} 前面什麼都沒有,表明塊級做用域

    eval('({name;"zhang",age:20})')  要這種寫法才能夠;

    eval 就是要幹掉字符串,幹掉字符串沒法解析 {} ,因此須要在 ({}) 才能夠  {} 表明塊級做用域

  暫時性死區

    若是塊級做用域內,使用 let 和 const 命令,聲明變量,這個區域就會被這個變量強制綁定,凡是在聲明以前,這些變量都是不可用的,使用會報錯,這就是暫時性死區

  暫時性死區的場景

    使用變量 b ,在定義變量 b 以前了,出現暫時性死區

  函數參數默認值

    1. 寫法,有默認寫後面,沒默認寫前面;

    2. 若是傳對應的參數,就不須要默認值了,不是先賦默認值,而後用實參覆蓋

  var a=a  不報錯,由於 var 能夠變量提高,在 = 賦值 從右往左,使用變量 a ,是undefined,賦值時,就是把 undefined 賦值給 a ,因此 a 仍是 undefined;

  let a=a  報錯,賦值運算從右往左,右邊使用變量 a 結果發現 a 沒有聲明,而 let 語法規定,不能在沒定義前使用變量,因此報錯

   

  const 講解

  1.  定義變量,但值是常量的,一旦賦值不能在改變

  2. 不能重複定義變量,沒有變量提高

  3. 不能給 window 添加屬性

相關文章
相關標籤/搜索