欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript變量提升和嚴(yán)格模式實例分析

 更新時間:2019年01月27日 10:41:15   作者:Cairo960918  
這篇文章主要介紹了JavaScript變量提升和嚴(yán)格模式,結(jié)合實例形式分析了javascript變量提升和嚴(yán)格模式的原理及相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了JavaScript變量提升和嚴(yán)格模式。分享給大家供大家參考,具體如下:

1.什么是變量提升

所謂的變量提升指的是:函數(shù)聲明和變量聲明總是會被解釋器悄悄地被"提升"到方法體(作用域)的最頂部。

下面我們通過一個例子來詳細(xì)說明一下。

//變量聲明在使用之前
var x;
console.log(x);//undefined
//變量聲明在使用之后
console.log(y);//undefined
var y;
//上面的式子可以寫成下面的樣子
/*
變量提升:把x,y提升到頂部
var x;
var y;
console.log(x);
console.log(y);
*/

從上面這個例子我們可以看到:

①變量的使用有兩種形式,先聲明再使用或者先使用后聲明;

②無論是哪一種形式都不影響變量的使用,這是因為有變量提升的存在,每一個你定義的變量都會被提升到頂部,也就是函數(shù)最開始的部分,這就變成了你在使用變量時其實都已經(jīng)聲明變量了。

下面我舉一個經(jīng)典的例子來更好地理解一下。

//經(jīng)典案例:window表示全局,判斷條件(變量a是否有在全局下)是在變量a聲明之前
if(a in window){
  var a;
  console.log('a in window');
}else{console.log('a not in window');}
//a in window
//相當(dāng)于:
/*
var a; //a被提升到頂部
if(a in window){
  console.log('a in window');
}else{console.log('a not in window');}
*/

這是變量提升的一個很好的例子,可以看到打印出來的結(jié)果表明,在我們使用a之前,聲明變量a就被提升到頂部。

但是,要注意的是JavaScript 只有聲明的變量會提升,初始化的不會。

console.log(c);//undefined
var c = 1; //初始化
/*
var c;
console.log(c);
c = 1;
*/
var d;//聲明d
d = 1;//初始化
console.log(d);//1

上面的c打印結(jié)果為undefined,這是因為提升的只有聲明變量var c,而初始化的c=1沒有提升而在使用之后。

為了避免上面出現(xiàn)的變量提升的問題,通常我們在每個作用域開始前聲明我們要使用的變量。

2.嚴(yán)格模式

嚴(yán)格模式的寫法就是在代碼編寫之前加上"use strict",嚴(yán)格模式要求你不能使用未聲明的變量,否則會報錯。

例如:

"use strict"; //嚴(yán)格模式
m =1;
console.log(m);//m is not defined
//在嚴(yán)格模式下,因為m未被聲明就被使用或者初始化則會報錯
var n = 1;
console.log(n);//1

但是在沒有使用嚴(yán)格模式的時候:

m =1;
console.log(m);//1
//在非嚴(yán)格模式下,同樣這樣寫就不會報錯

雖然還是沒有聲明變量m但還是可以使用的。

所以,還是建議大家盡可能得使用嚴(yán)格模式來編寫javascript代碼,以消除Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處,讓自己成為一個更優(yōu)秀的程序員。

感興趣的朋友還可以使用本站在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行結(jié)果。

更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • js實現(xiàn)圖片淡入淡出效果

    js實現(xiàn)圖片淡入淡出效果

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)圖片淡入淡出效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 在element-ui的select下拉框加上滾動加載

    在element-ui的select下拉框加上滾動加載

    這篇文章主要介紹了在element-ui的select下拉框加上滾動加載,本文以以element-ui中的select為例,給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-04-04
  • Javascript表格翻頁效果實現(xiàn)思路及代碼

    Javascript表格翻頁效果實現(xiàn)思路及代碼

    表格翻頁的實現(xiàn)方式有很多,下面以js為例為大家詳細(xì)介紹下表格翻頁效果的具體實現(xiàn),感興趣的朋友可以參考下
    2013-08-08
  • 為原生js Array增加each方法

    為原生js Array增加each方法

    為原生js Array增加each方法,通過prototype來增加功能,進(jìn)行擴(kuò)展
    2012-04-04
  • js點擊事件鏈接的問題解決

    js點擊事件鏈接的問題解決

    這篇文章主要介紹了js點擊事件鏈接的問題解決方法,需要的朋友可以參考下
    2014-04-04
  • JavaScript+HTML5實現(xiàn)的日期比較功能示例

    JavaScript+HTML5實現(xiàn)的日期比較功能示例

    這篇文章主要介紹了JavaScript+HTML5實現(xiàn)的日期比較功能,涉及javascript結(jié)合HTML5針對日期的轉(zhuǎn)換與運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • JavaScript計時器用法分析【setTimeout和clearTimeout】

    JavaScript計時器用法分析【setTimeout和clearTimeout】

    這篇文章主要介紹了JavaScript計時器用法,結(jié)合實例形式分析了setTimeout和clearTimeout函數(shù)的具體使用技巧,需要的朋友可以參考下
    2017-01-01
  • 微信小程序授權(quán)登錄及解密unionId出錯的方法

    微信小程序授權(quán)登錄及解密unionId出錯的方法

    這篇文章主要介紹了微信小程序授權(quán)登錄及解密unionId出錯的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • highlight.js 代碼高亮插件的使用詳解

    highlight.js 代碼高亮插件的使用詳解

    在網(wǎng)頁使用過程中,經(jīng)常會用到代碼的展示。代碼高亮可以直觀的了解代碼,本文主要介紹了highlight.js 代碼高亮插件的使用詳解,具有一定的參考價值,感興趣的可以了解一下
    2022-01-01
  • JavaScript實現(xiàn)一個空中避難的小游戲

    JavaScript實現(xiàn)一個空中避難的小游戲

    最近利用Javascript實現(xiàn)了一個小游戲,覺著還不錯,所以分享給大家,下面這篇文章主要給大家介紹了利用JavaScript實現(xiàn)一個空中避難的小游戲的相關(guān)資料,文中給出了完整的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-06-06

最新評論