成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6學(xué)習(xí)筆記:let的使用

Lin_YT / 3315人閱讀

摘要:注意不再是安全的操作不允許重復(fù)聲明塊級(jí)作用域匿名函數(shù)寫法塊級(jí)作用域?qū)懛ǖ膰?yán)格模式規(guī)定,函數(shù)只能在頂層作用域和函數(shù)內(nèi)聲明,其他情況比如代碼塊循環(huán)代碼塊的聲明都會(huì)報(bào)錯(cuò)。

塊級(jí)作用域
for(var i = 0; i < 10; i++){}
console.log(i); //10

for(let j = 0; j < 10; j++){}
console.log(j); //"ReferenceError: j is not defined

疑問: https://segmentfault.com/q/1010000004643248

不存在變量提升
console.log(a); // 輸出undefined
console.log(b); // 報(bào)錯(cuò)ReferenceError
console.log(c); // 報(bào)錯(cuò)ReferenceError
var a = 2;
let b = 2;

注意區(qū)別undefinedReferenceError

暫時(shí)性死區(qū)(TDZ)

只要進(jìn)入當(dāng)前塊級(jí)作用域,所使用的變量已經(jīng)存在了,但在聲明之前都屬于死區(qū),不可進(jìn)行操作。

注意: typeof不再是100%安全的操作

typeof x; // ReferenceError
typeof y  // undefined
let x;
不允許重復(fù)聲明
let x = 1;
let x; // "SyntaxError: Identifier "x" has already been declared

var y = 2;
var y = 3; // y = 3
塊級(jí)作用域
// 匿名函數(shù)寫法
(function () {
  var tmp = ...;
  ...
}());

// 塊級(jí)作用域?qū)懛?{
  let tmp = ...;
  ...
}

ES5的嚴(yán)格模式規(guī)定,函數(shù)只能在頂層作用域和函數(shù)內(nèi)聲明,其他情況(比如if代碼塊、循環(huán)代碼塊)的聲明都會(huì)報(bào)錯(cuò)。

// ES5
"use strict";
if (true) {
  function f() {} // 報(bào)錯(cuò)
}

ES6由于引入了塊級(jí)作用域,這種情況可以理解成函數(shù)在塊級(jí)作用域內(nèi)聲明,因此不報(bào)錯(cuò),但是構(gòu)成區(qū)塊的大括號(hào)不能少

// 報(bào)錯(cuò)
"use strict";
if (true)
  function f() {}
聲明的全局變量不再是window的屬性
"use strict";
var a = 1;
console.log(window.a) // 1

let b = 1;
console.log(window.b) // undefined

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79008.html

相關(guān)文章

  • ES6學(xué)習(xí)筆記之模塊

    摘要:但是一直沒有在語言層面支持模塊,直到的出現(xiàn)。相信在不久的將來,的模塊一定會(huì)全面取代和。的模塊提供了個(gè)新的語法,分別是和。就是模塊用來對外暴露數(shù)據(jù)的接口,具體用法如下。 本文同步自我得博客:http://www.joeray61.com 簡介 在當(dāng)今的Javascript程序中,模塊的作用不言而喻,目前廣泛應(yīng)用的主要有AMD(瀏覽器端)和CommonJS(服務(wù)器端)。但是Javascri...

    Airmusic 評(píng)論0 收藏0
  • 珠峰培訓(xùn)ES6學(xué)習(xí)筆記1

    摘要:消除字符串頭部空格消除尾部空格從頭部補(bǔ)全字符串從尾部補(bǔ)全字符串 let和const var關(guān)鍵字定義變量的特點(diǎn): 可以重復(fù)定義 不能定義常量 不支持塊級(jí)作用域 let的特點(diǎn) 不可以重復(fù)定義 變量不能提升,在變量定義之前,不能使用 在大括號(hào)當(dāng)中定義的變量(塊級(jí)作用域中),在作用域外無法訪問 解決一些ES5當(dāng)中需要閉包實(shí)現(xiàn)的功能,比如:每隔1秒循環(huán)輸出一個(gè)當(dāng)前的值 const的特點(diǎn)...

    番茄西紅柿 評(píng)論0 收藏0
  • ES6學(xué)習(xí)筆記一:let、const、塊級(jí)作用域

    摘要:一新增了命令和一樣都是用來聲明標(biāo)量,但所聲明的變量只在聲明的代碼塊內(nèi)及聲明之后有效命令適合在循環(huán)中使用在循環(huán)內(nèi)有效在全局內(nèi)有效命令暫時(shí)性死區(qū)大括號(hào)中的使用了聲明,所以在大括號(hào)中暫時(shí)只能在聲明之后有效不允許在同一作用域內(nèi)重復(fù)聲明變量,因此不能 一、ES6新增了let命令 let 和 var 一樣都是用來聲明標(biāo)量,但let所聲明的變量只在【聲明的代碼塊內(nèi)】及【聲明之后】有效 { c...

    YuboonaZhang 評(píng)論0 收藏0
  • ES6 學(xué)習(xí)筆記(一)let,const和解構(gòu)賦值

    摘要:另外對于已經(jīng)聲明的變量進(jìn)行解構(gòu)賦值時(shí),要非常小心。因此在行首加,將其強(qiáng)制轉(zhuǎn)化為表達(dá)式執(zhí)行。由于和無法轉(zhuǎn)為對象,所以對它們進(jìn)行解構(gòu)賦值,都會(huì)報(bào)錯(cuò)。 let和const let和const是es6新增的兩個(gè)變量聲明關(guān)鍵字,與var的不同點(diǎn)在于: (1)let和const都是塊級(jí)作用域,在{}內(nèi)有效,這點(diǎn)在for循環(huán)中非常有用,只在循環(huán)體內(nèi)有效。var為函數(shù)作用域。 (2)使用let和con...

    iOS122 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Lin_YT

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<