最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令

 更新時間:2017年02月19日 15:44:18   作者:jian_xi  
這篇文章主要介紹了JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令,需要的朋友可以參考下

 之前我們在寫js代碼的時候都知道可以用var定義全局變量和局部變量,也可以省略var,而且在非嚴(yán)格模式下不會報錯,但是并不知道兩者的區(qū)別...

var x = 1;
y = 4;
console.log(x);//1
console.log(y);//4
console.log(window.x);//1
console.log(window.y);//4

簡單測試下可以知道定義的x和y都被掛載在window對象上,變?yōu)閣indow下的屬性,這并不能說明什么...

delete x;
delete y;
console.log(window.x);//1
console.log(window.y);//undefined

再看看執(zhí)行上面代碼之后x屬性沒有被刪除,y被刪除了,這是區(qū)別就來了

在通過var進(jìn)行定義后的變量不能被delete刪除,這是什么原因?ECMAScript 5標(biāo)準(zhǔn)中,可以通過Object.getOwnPropertyDescriptor()來獲取對象自身某個property的屬性信息:

console.log(Object.getOwnPropertyDescriptor(window,"x"));
console.log(Object.getOwnPropertyDescriptor(window,"y"));

得到如下信息:

當(dāng)不使用var進(jìn)行定義是,變量默認(rèn)的configurable為true,可以進(jìn)行delete等命令進(jìn)行操作,而當(dāng)var在定義一個全局變量的時候configurable 變?yōu)榱薴alse,即不會被delete刪除.

此外,簡單說一下關(guān)于變量提升問題

alert(a);//Uncaught ReferenceError: a is not defined
a = 100;alert(b);//undefined

var b = 200;先說第二段代碼,var聲明的全局變量b在js中會進(jìn)行代碼提升,也就是說var b = 200;會被分解為var b;b=200;代碼解析的第時候會將var b;提升到最前面,并且在內(nèi)存中開辟一個空間,由于b沒有被賦值,默認(rèn)為undefined.第一段代碼中當(dāng)js執(zhí)行alert()函數(shù)時候由于沒有進(jìn)行var聲明,變量沒有被提升,不存在內(nèi)存開辟,所以在alert時候直接報錯!

在ECMAScript6標(biāo)準(zhǔn)中,一個重要的概念就是"JavaScript嚴(yán)格模式",需要在最前面加上"use strict";

let注意點:

1.let擁有塊級作用域,一個{}就是一個作用域

2.let在其作用域下面不存在變量提升

3.let在其作用域中不能被重復(fù)聲明(函數(shù)作用域和塊級作用域)

第一點:let的塊級作用域

注意:以下代碼都在嚴(yán)格模式下執(zhí)行的

let n = 10;
if(true){
 let n = 50;
}
console.log(n);//10表示外層代碼塊不受內(nèi)層代碼塊的影響,如果是用var定義的變量n,那么輸出的就是修改后的50.

第二點:變量提升問題

alert(a);//Uncaught ReferenceError: a is not defined
let a = 100;

不同var,let不存在變量提升,以上寫法會直接報錯.

第三點:重復(fù)聲明問題

(function(){
 let lTest = "let";
 var vTest = "var"
 let lTest = "let changed";//Uncaught SyntaxError: Identifier 'lTest' has already been declared
 var vTest = "var changed";
 console.log(lTest);
 console.log(vTest);
})();

let在同一個作用域下不允許進(jìn)行重復(fù)變量聲明.否則也是直接報錯!!!

const命令

const用來聲明常量,一旦聲明,其值就不可以更改,如果你非得修改變量的值,js不會報錯,只是默默表示失敗(不起作用)

const的作用域與let相同,只在聲明所在的塊級作用域內(nèi)有效,并且也是和let一樣不可以重復(fù)進(jìn)行聲明.

相關(guān)文章

  • JavaScript創(chuàng)建對象的幾種方式及關(guān)于this指向問題

    JavaScript創(chuàng)建對象的幾種方式及關(guān)于this指向問題

    這篇文章主要介紹了JavaScript創(chuàng)建對象的幾種方式及關(guān)于this指向問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值。需要的小伙伴可以參考一下
    2022-07-07
  • js canvas實現(xiàn)俄羅斯方塊

    js canvas實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了js canvas實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 在JavaScript中對HTML進(jìn)行反轉(zhuǎn)義詳解

    在JavaScript中對HTML進(jìn)行反轉(zhuǎn)義詳解

    下面小編就為大家?guī)硪黄贘avaScript中對HTML進(jìn)行反轉(zhuǎn)義詳解。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JS重載實現(xiàn)方法分析

    JS重載實現(xiàn)方法分析

    這篇文章主要介紹了JS重載實現(xiàn)方法,結(jié)合實例形式分析了javascript重載的實現(xiàn)與使用方法,需要的朋友可以參考下
    2016-12-12
  • JavaScript?深拷貝的循環(huán)引用問題詳解

    JavaScript?深拷貝的循環(huán)引用問題詳解

    如果說道實現(xiàn)深拷貝最簡單的方法,我們第一個想到的就是?JSON.stringify()?方法,因為JSON.stringify()后返回的是字符串,所以我們會再使用JSON.parse()轉(zhuǎn)換為對象,這篇文章主要介紹了JavaScript?深拷貝的循環(huán)引用問題,需要的朋友可以參考下
    2022-12-12
  • JavaScript操作XML文件之XML讀取方法

    JavaScript操作XML文件之XML讀取方法

    這篇文章主要介紹了JavaScript操作XML文件之XML讀取方法,涉及javascript操作XML文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 學(xué)習(xí)JavaScript設(shè)計模式之狀態(tài)模式

    學(xué)習(xí)JavaScript設(shè)計模式之狀態(tài)模式

    這篇文章主要為大家介紹了JavaScript設(shè)計模式中的狀態(tài)模式,對JavaScript設(shè)計模式感興趣的小伙伴們可以參考一下
    2016-01-01
  • JS無限級導(dǎo)航菜單實現(xiàn)方法

    JS無限級導(dǎo)航菜單實現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于JS無限級導(dǎo)航菜單實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • web-view實現(xiàn)app應(yīng)用與網(wǎng)頁的數(shù)據(jù)交互方式

    web-view實現(xiàn)app應(yīng)用與網(wǎng)頁的數(shù)據(jù)交互方式

    這篇文章主要介紹了web-view實現(xiàn)app應(yīng)用與網(wǎng)頁的數(shù)據(jù)交互方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • js跨域訪問示例(客戶端/服務(wù)端)

    js跨域訪問示例(客戶端/服務(wù)端)

    有關(guān)跨域訪問的的文章,可以搜到很多,基本上大同小異,下面有個不錯的訪問示例,大家可以參考下
    2014-05-05

最新評論

香河县| 孝昌县| 包头市| 沭阳县| 鄂温| 阿合奇县| 茶陵县| 武陟县| 张掖市| 象州县| 贡山| 恩施市| 长武县| 神农架林区| 古田县| 高尔夫| 双江| 疏勒县| 阿鲁科尔沁旗| 常宁市| 奉贤区| 沅陵县| 梅州市| 宜都市| 许昌市| 尤溪县| 泗洪县| 湟源县| 陕西省| 镇平县| 丰台区| 双流县| 晋江市| 鲜城| 苍南县| 南昌市| 奉节县| 黎川县| 泊头市| 邛崃市| 钟山县|