成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

es6學(xué)習(xí)之let和const命令

DrizzleX / 2129人閱讀

摘要:和命令命令是在它所在的代碼塊有效,它屬于塊級(jí)作用域,新增。只有全局作用域和函數(shù)作用域。

let和const命令

let命令是在它所在的代碼塊有效,它屬于塊級(jí)作用域,es6新增。es5只有全局作用域和函數(shù)作用域。let命令存在暫時(shí)性死區(qū)(TDZ),即在申明前使用就會(huì)報(bào)錯(cuò),不存在變量提升

console.log(a); // 報(bào)錯(cuò)
let a = 111;

==let不允許在相同作用域中,重復(fù)申明同一變量==

塊級(jí)作用域和函數(shù)聲明

es6中明確規(guī)定在塊級(jí)作用域中可以聲明函數(shù),在塊級(jí)作用域中,函數(shù)聲明語(yǔ)句的行為類似于let,在塊級(jí)作用域外不可引用。以下是es6中對(duì)函數(shù)聲明做的規(guī)定

允許在塊級(jí)作用域內(nèi)聲明函數(shù)。

函數(shù)聲明類似于var,即會(huì)提升到全局作用域或函數(shù)作用域的頭部。

同時(shí),函數(shù)聲明還會(huì)提升到所在的塊級(jí)作用域的頭部。

看下面一段代碼

// ES6 環(huán)境
function f() { console.log("I am outside!"); }
(function () {
  if (false) {
    function f() { console.log("I am inside!"); }
  }

  f();
}());

// Uncaught TypeError: f is not a function

會(huì)報(bào)錯(cuò),應(yīng)該塊級(jí)作用域中的函數(shù)聲明類似于var,會(huì)被提升到塊級(jí)作用域頭部,下面是實(shí)際運(yùn)行代碼

//ES6 環(huán)境
function f() { console.log("I am outside!"); }
(function () {
    var f = undefined;
  if (false) {
    function f() { console.log("I am inside!"); }
  }

  f();
}());
// Uncaught TypeError: f is not a function

所以要避免在塊級(jí)作用域中聲明函數(shù),如果必須的話使用函數(shù)表達(dá)式

const命令

const 聲明一個(gè)只讀的常量,聲明后不可改變,需要注意的是const只是保證聲明的變量指向的那塊內(nèi)存空間保存的數(shù)據(jù)不能改動(dòng),對(duì)于復(fù)合型數(shù)據(jù)(對(duì)象和數(shù)組),變量指向的內(nèi)存地址,保存的是一個(gè)指向?qū)嶋H數(shù)據(jù)的指針,const 只能保證這個(gè)指針是固定的,指針指向的數(shù)據(jù)結(jié)構(gòu)是可以變的,因此對(duì)象可以添加屬性,數(shù)組可以添加數(shù)據(jù),但是他們不能賦給另一個(gè)變量

const foo = {};

// 為 foo 添加一個(gè)屬性,可以成功
foo.prop = 123;
foo.prop // 123

// 將 foo 指向另一個(gè)對(duì)象,就會(huì)報(bào)錯(cuò)
foo = {}; // TypeError: "foo" is read-only

es6中有六中聲明變量的方法:var 命令和function 命令,letconst ,還有import 命令和class命令

es5中頂層對(duì)象和全局變量是掛鉤的,全局聲明的變量是頂層對(duì)象的屬性,es6中l(wèi)et,const,class命令聲明的全局變量不在是全局變量的屬性

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/103359.html

相關(guān)文章

  • ES6學(xué)習(xí)之 -- letconst命令

    摘要:命令用來(lái)聲明變量,它的用法類似,但是命令聲明的變量只在所在的代碼塊中有效。不允許重復(fù)聲明不允許在同一作用域聲明兩個(gè)相同的變量。對(duì)于內(nèi)部的數(shù)據(jù)結(jié)構(gòu)的變化是無(wú)法控制的。 let命令 用來(lái)聲明變量,它的用法類似var,但是let命令聲明的變量只在所在的代碼塊中有效。 { var a = 1; let b = 2; } console.log(a); // 1 con...

    marser 評(píng)論0 收藏0
  • ES6學(xué)習(xí)之 -- Set數(shù)據(jù)結(jié)構(gòu)

    摘要:類似于數(shù)組,但是中不存在重復(fù)元素??梢越邮芤粋€(gè)數(shù)組或者其他具有接口的數(shù)據(jù)結(jié)構(gòu)作為參數(shù)從上面的代碼可以看出有去重的功能。去重還有另一個(gè)方法將數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換成數(shù)組。清除實(shí)例的指定成員。返回一個(gè)布爾值,表示某個(gè)值是否在實(shí)例之中。 Set Set類似于數(shù)組,但是Set中不存在重復(fù)元素。Set可以接受一個(gè)數(shù)組(或者其他具有itarable接口的數(shù)據(jù)結(jié)構(gòu))作為參數(shù) const set = ne...

    wawor4827 評(píng)論0 收藏0
  • ES6學(xué)習(xí)之 -- 解構(gòu)(使數(shù)據(jù)訪問(wèn)更便捷)

    摘要:數(shù)組的解構(gòu)賦值規(guī)定允許按照一定模式,從數(shù)組和對(duì)象中提取值對(duì)變量進(jìn)行賦值,我們稱之為解構(gòu)。的規(guī)則是,只要有可能導(dǎo)致解構(gòu)的歧義,就不得使用圓括號(hào)。 數(shù)組的解構(gòu)賦值 ES6規(guī)定:允許按照一定模式,從數(shù)組和對(duì)象中提取值對(duì)變量進(jìn)行賦值,我們稱之為解構(gòu)。以前賦值只能直接指定值 let a = 1; let b = 2; let c = 3; ES6允許以下這種做法 let [a, b, c] = ...

    mrcode 評(píng)論0 收藏0
  • NodeAPI學(xué)習(xí)之Buffer

    摘要:與字符編碼通過(guò)指定的編碼進(jìn)制,可以在與普通的字符串之間轉(zhuǎn)換。中文中文通常用于實(shí)例數(shù)組的排序。有點(diǎn)像方法合并截?cái)酁榈拈L(zhǎng)度,缺少的部分會(huì)用補(bǔ)充,是一個(gè)返回,是一個(gè)支持的字符編碼返回,創(chuàng)建并返回一個(gè)形式的迭代器,如果與具有完全相同的字節(jié)就返回 Buffer 可以在TCP流或者文件系統(tǒng)操作等場(chǎng)景中處理二進(jìn)制數(shù)據(jù)流。 Buffer實(shí)例類似于整數(shù)數(shù)組,但是Buffer大小固定、且在V8堆外分配物理...

    Integ 評(píng)論0 收藏0
  • node 核心模塊學(xué)習(xí)之 Buffer

    摘要:核心模塊學(xué)習(xí)之何為在引入之前,沒(méi)有能讀取和操作二進(jìn)制數(shù)據(jù)流的機(jī)制,作為引入,以便能和網(wǎng)絡(luò)流文件流等進(jìn)行交互。返回值寫入的實(shí)際大小,沒(méi)有足夠的空間保存,只會(huì)寫入一部分。返回值實(shí)際存入的字節(jié)數(shù)。參考文章一進(jìn)階核心模塊常用使用總結(jié) node 核心模塊學(xué)習(xí)之Buffer 何為 Buffer 在ES6引入 TypeArray 之前,JS沒(méi)有能讀取和操作二進(jìn)制數(shù)據(jù)流的機(jī)制,Buffer 作為 No...

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

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

0條評(píng)論

閱讀需要支付1元查看
<