国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

js變量聲明var使用與不使用的區(qū)別詳解

2019-11-19 12:14:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、區(qū)分顯示的聲明與隱式聲明(var)

JS中變量聲明分顯式聲明和隱式聲明。

var name = 'muzidigbig';//顯示聲明 name = 'muzidigbig';//隱式聲明(為全局變量的一個(gè)屬性)

在函數(shù)中使用var關(guān)鍵字進(jìn)行顯式聲明的變量是做為局部變量,在全局范圍內(nèi)聲明的變量為全局變量;而沒(méi)有用var關(guān)鍵字,使用直接賦值方式聲明的是全局變量(全局對(duì)象屬性)。

// name = 'muzidigbig';//隱式聲明(為全局變量的一個(gè)屬性)  console.log(name);  function person(){    name = '木子大大';    console.log(name);  }  person();

當(dāng)我們使用訪問(wèn)一個(gè)沒(méi)有聲明的變量時(shí),JS會(huì)報(bào)錯(cuò);而當(dāng)我們給一個(gè)沒(méi)有聲明的變量賦值時(shí),JS不會(huì)報(bào)錯(cuò),相反它會(huì)認(rèn)為我們是要隱式聲明一個(gè)全局變量,這一點(diǎn)一定要注意。

name = 'muzidigbig';//隱式聲明(為全局變量的一個(gè)屬性)console.log(name);function person(){  name = '木子大大';  console.log(name);//木子大大}person();

在當(dāng)前域中聲明變量. 如果在方法中聲明,則為局部變量(local variable);如果是在全局域中聲明,則為全局變量。

而事實(shí)上是對(duì)屬性賦值操作。首先,它會(huì)嘗試在當(dāng)前作用域鏈(如在方法中聲明,則當(dāng)前作用域鏈代表全局作用域和方法局部作用域)中解析 name; 如果在任何當(dāng)前作用域鏈中找到name,則會(huì)執(zhí)行對(duì)name屬性賦值; 如果沒(méi)有找到name,它才會(huì)在全局對(duì)象(即當(dāng)前作用域鏈的最頂層對(duì)象,如window對(duì)象)中創(chuàng)造name屬性并賦值。

注意!它并不是聲明了一個(gè)全局變量,而是創(chuàng)建了一個(gè)全局對(duì)象的屬性。

即便如此,可能你還是很難明白“變量聲明”跟“創(chuàng)建對(duì)象屬性”在這里的區(qū)別。事實(shí)上,Javascript的變量聲明、創(chuàng)建屬性以及每個(gè)Javascript中的每個(gè)屬性都有一定的標(biāo)志說(shuō)明它們的屬性----如只讀(ReadOnly)不可枚舉(DontEnum)不可刪除(DontDelete)等等。

由于變量聲明自帶不可刪除屬性,比較var name = 'muzidigbig' 跟 name = 'muzidigbig',前者是變量聲明,帶不可刪除屬性,因此無(wú)法被刪除;后者為全局變量的一個(gè)屬性,因此可以從全局變量中刪除。

若有不足請(qǐng)多多指教!希望給您帶來(lái)幫助!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)武林網(wǎng)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 秭归县| 阳原县| 营山县| 瑞丽市| 酉阳| 岳西县| 南和县| 汝城县| 天峻县| 兰州市| 南阳市| 宜阳县| 隆昌县| 吉隆县| 绍兴市| 凌源市| 台湾省| 雷波县| 眉山市| 土默特右旗| 肃南| 罗定市| 旌德县| 那曲县| 禹州市| 通道| 勃利县| 盐池县| 介休市| 屯昌县| 五大连池市| 东台市| 安庆市| 略阳县| 安福县| 瑞昌市| 庆阳市| 蒲江县| 泰顺县| 凤庆县| 闽侯县|