js中l(wèi)et和var定義變量的區(qū)別
javascript 嚴(yán)格模式
第一次接觸let關(guān)鍵字,有一個(gè)要非常非常要注意的概念就是”javascript 嚴(yán)格模式”,比如下述的代碼運(yùn)行就會(huì)報(bào)錯(cuò):
let hello = 'hello world.'; console.log(hello);
錯(cuò)誤信息如下:
let hello = 'hello world.'; ^^^ SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode ...
解決方法就是,在文件頭添加”javascript 嚴(yán)格模式”聲明:
'use strict'; let hello = 'hello world.'; console.log(hello);
let和var關(guān)鍵字的異同
聲明后未賦值,表現(xiàn)相同
'use strict'; (function() { var varTest; let letTest; console.log(varTest); //輸出undefined console.log(letTest); //輸出undefined }());
使用未聲明的變量,表現(xiàn)不同:
(function() { console.log(varTest); //輸出undefined(注意要注釋掉下面一行才能運(yùn)行) console.log(letTest); //直接報(bào)錯(cuò):ReferenceError: letTest is not defined var varTest = 'test var OK.'; let letTest = 'test let OK.'; }());
重復(fù)聲明同一個(gè)變量時(shí),表現(xiàn)不同:
'use strict'; (function() { var varTest = 'test var OK.'; let letTest = 'test let OK.'; var varTest = 'varTest changed.'; let letTest = 'letTest changed.'; //直接報(bào)錯(cuò):SyntaxError: Identifier 'letTest' has already been declared console.log(varTest); //輸出varTest changed.(注意要注釋掉上面letTest變量的重復(fù)聲明才能運(yùn)行) console.log(letTest); }());
變量作用范圍,表現(xiàn)不同
'use strict'; (function() { var varTest = 'test var OK.'; let letTest = 'test let OK.'; { var varTest = 'varTest changed.'; let letTest = 'letTest changed.'; } console.log(varTest); //輸出"varTest changed.",內(nèi)部"{}"中聲明的varTest變量覆蓋外部的letTest聲明 console.log(letTest); //輸出"test let OK.",內(nèi)部"{}"中聲明的letTest和外部的letTest不是同一個(gè)變量 }());
總結(jié)
以上所述是小編給大家介紹的js中l(wèi)et和var定義變量的區(qū)別,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
javascript設(shè)計(jì)模式 – 命令模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 命令模式,結(jié)合實(shí)例形式分析了javascript命令模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能示例
這篇文章主要介紹了js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能,可實(shí)現(xiàn)關(guān)鍵詞描紅的功能,涉及JS重復(fù)匹配的相關(guān)操作技巧,需要的朋友可以參考下2016-12-12詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù)
這篇文章主要介紹了詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù),需要的朋友可以參考下2017-12-12JS無(wú)限極樹(shù)形菜單,json格式、數(shù)組格式通用示例
本文為大家介紹下JS無(wú)級(jí)樹(shù)形菜單的實(shí)現(xiàn),修改了一下數(shù)據(jù)格式,是json和數(shù)組或者混合型的數(shù)據(jù)都通用,不用特定key等,想學(xué)習(xí)的朋友可以參考下2013-07-07JS實(shí)現(xiàn)移動(dòng)端按首字母檢索城市列表附源碼下載
我們常見(jiàn)的手機(jī)通訊錄或微信通訊錄,聯(lián)系人信息是按字母順序排列的列表,通過(guò)點(diǎn)擊右側(cè)的字母,會(huì)迅速定位檢索到首字母對(duì)應(yīng)的聯(lián)系人。下面通過(guò)本文給大家分享JS實(shí)現(xiàn)移動(dòng)端按首字母檢索城市列表功能,需要的的朋友參考下吧2017-07-07微信小程序之高德地圖多點(diǎn)路線(xiàn)規(guī)劃過(guò)程示例詳解
這篇文章主要介紹了微信小程序之高德地圖多點(diǎn)路線(xiàn)規(guī)劃過(guò)程示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01layui監(jiān)聽(tīng)下拉選框選中值變化的方法(包含監(jiān)聽(tīng)普通下拉選框)
今天小編大家分享一篇layui監(jiān)聽(tīng)下拉選框選中值變化的方法(包含監(jiān)聽(tīng)普通下拉選框),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09