亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript聲明變量的這四兄弟(var、let、function、const)

 更新時(shí)間:2023年02月12日 21:45:25   作者:Cyan_Con  
這篇文章主要介紹了JavaScript聲明變量的這四兄弟,主要就是介紹var、let、function、const區(qū)別,需要的朋友可以參考下

四兄弟的背景

在一個(gè)名為編程語(yǔ)言的村莊里,有不同姓氏的村民。例如Java、Python、Golang、JavaScript等姓氏,而接下來要介紹的就是JavaScript這個(gè)姓氏的一些故事。

我們先介紹這個(gè)姓氏里的四個(gè)兄弟: var兄function兄、 let兄、 const兄。這四個(gè)兄弟能做的事情居然都有點(diǎn)相似,不知是否是村長(zhǎng)的蓄意安排。不過讓人欣慰的是,村長(zhǎng)安排的時(shí)候考慮的還是很周到的,他們又有各自的特(脾)長(zhǎng)(氣)。都挺能裝的!各自擁有一個(gè)帶密碼鎖的背包,可以幫忙擔(dān)點(diǎn)東西,總體來說都挺能干的,畢竟剛剛說了,挺能裝~

四兄弟的特點(diǎn)

我們通過一個(gè)表格來看下他們各自的特點(diǎn):

特征字符英文名中文名特點(diǎn)
varVar Javascript雞娃好顯擺,裝東西之后,某種情況下還要把密碼告訴房東: window,而且上鎖之后可以打開更改里面的內(nèi)容,也不知道這個(gè)鎖到底能起到什么作用
functionFunction Javascript雞法裝的東西很不一般,一對(duì)()一對(duì){},而且只能裝這種。這東西就跟魔法一樣,可以做好些事情。爆個(gè)小料:只要雞娃在雞法的領(lǐng)域內(nèi)顯擺,都能安排的明明白白,專治雞娃的顯擺
letLet Javascript雞欄雞欄比起前面兩位,年齡偏小。他不喜歡顯擺。而且裝了東西就好像一個(gè)圍欄,只在圍欄內(nèi)生效,好多JavaScript程序猿很喜歡他
constConst Javascript雞坑和雞欄都出生于2015年,也有圍欄的效果,這貨裝東西,就像往坑里扔石頭,扔完就沒法再扔其他東西了,再扔就發(fā)脾氣

四兄弟故事

window.writeWhen  -> undefined
window.writeWho   -> undefined
window.writeWhere -> undefined
window.writeHow -> undefined
window說 '你在我這找啥?我這沒有你要的這些,滾一邊去'
var writeWhen = '2022-03-20 22:50:30';  -> '2022-03-20 22:50:30'
//【畫外音】 雞娃裝了個(gè)標(biāo)識(shí)為writeWhen的內(nèi)容,結(jié)果他顯擺的毛病又犯了,讓房東知道了

function writeHow() {
  // 發(fā)揮魔法的地方
}
//【畫外音】 雞法的背包裝了個(gè)魔法

let writeWhen = '2022-03-20' -> SyntaxError: writeWhen has been declared
雞欄說:'what? 誰(shuí)已經(jīng)裝過這個(gè)writeWhen了?看來我得換一個(gè)了'

const writeHow = 'function' -> SyntaxError: writeHow has been declared
雞坑說:'哎喲!這都有人裝過了?欄哥,咱們可別再裝其他兄弟或者咱們已經(jīng)裝過的了'

雞欄說:'好嘞,雞娃、雞法,我和雞坑裝過的你們也不要裝了'

雞娃、雞法說: '了解,我們也不想看見SynctaxError,繼續(xù)工作'
//【畫外音】他們達(dá)成了一致,只要被雞欄和雞坑裝過的,兄弟四個(gè)都無法再次裝入(declare),且過程不可逆

let writeWho = '簡(jiǎn)言之' -> '簡(jiǎn)言之'
//【畫外音】 雞欄這個(gè)圍欄已經(jīng)造好了

const writeWhere = 'juejin' -> 'juejin'
//【畫外音】 雞娃裝了個(gè)標(biāo)識(shí)為writeWhen的內(nèi)容,結(jié)果他顯擺的毛病又犯了,讓房東知道了

window.writeWhen -> '2022-03-20 22:50:30'
window.writeWho   -> undefined
window.writeWhere -> undefined
window.writeHow -> undefined
window說 '嘿嘿,雞娃愛顯擺,他那的情況我知道,其他三兄弟的我就無能為力咯'

function writeHow () {
    console.log(curTime, writeWho);
    var curTime = '2022-03-22 23:10';
    const writeWho = 'name'; 
    console.log(writeWho);
    return 'write with story';
}
//【畫外音】 我們重新定義了writeHow,并定制了魔法

writeHow(); -> log[undefined, '簡(jiǎn)言之'] log('name') 'write with story'
//【畫外音】 雞法定義的這個(gè)writeHow施展了個(gè)魔法,就打印了2行結(jié)果并有了返回值,
// 這就是雞法的獨(dú)特之處
第一行: 打印curTime和writeWho,雞娃聲明的命名空間會(huì)在預(yù)檢階段有變量提升過程,
即使此時(shí)未賦值,也可以訪問到變量,并不會(huì)拋出異常。writeWho由于有作用域鏈的存在
在writeHow所在的區(qū)域內(nèi)找到了writeWho,返回了結(jié)果。所以打印了[undefined, '簡(jiǎn)言之']

第二三行:以不同的方式定義了curTime和writeWho變量并賦值

第四行:打印writeWho,第三行重新定義了writeWho,由于const有“圍欄”的特點(diǎn),所以此時(shí)的
writeWho成為了writeHow的私有變量,與外界同名變量再無關(guān)聯(lián)。所以打印了'name'

第五行: 函數(shù)返回值為'write with story'

結(jié)語(yǔ)

  • 都是定義變量的方式,function只能定義函數(shù),而letconstvar可以定義函數(shù)和普通變量
  • const定義過的變量無法再次直接賦值,const只用來定義常量,值不會(huì)發(fā)生變化的量
  • var在全局下定義的變量會(huì)映射到window
  • varfunction可以把已經(jīng)定義的同一變量反復(fù)定義賦值,但是只要被letconst聲明過,則無法再次定義

以上內(nèi)容均為非嚴(yán)格模式

到此這篇關(guān)于JavaScript聲明變量的這四兄弟(var、let、function、const)的文章就介紹到這了,更多相關(guān)JavaScript聲明變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js使用html2canvas實(shí)現(xiàn)屏幕截取的示例代碼

    js使用html2canvas實(shí)現(xiàn)屏幕截取的示例代碼

    這篇文章主要介紹了js使用html2canvas實(shí)現(xiàn)屏幕截取的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript實(shí)現(xiàn)橫版菜單欄

    JavaScript實(shí)現(xiàn)橫版菜單欄

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)橫版菜單欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 微信小程序?qū)崿F(xiàn)獲取用戶信息并存入數(shù)據(jù)庫(kù)操作示例

    微信小程序?qū)崿F(xiàn)獲取用戶信息并存入數(shù)據(jù)庫(kù)操作示例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)獲取用戶信息并存入數(shù)據(jù)庫(kù)操作,涉及微信小程序wx.request后臺(tái)數(shù)據(jù)交互及php數(shù)據(jù)存儲(chǔ)相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • JavaScript中的null和undefined用法解析

    JavaScript中的null和undefined用法解析

    這篇文章主要介紹了JavaScript中的null和undefined用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • js編寫三級(jí)聯(lián)動(dòng)簡(jiǎn)單案例

    js編寫三級(jí)聯(lián)動(dòng)簡(jiǎn)單案例

    這篇文章主要為大家分享了JavaScript編寫三級(jí)聯(lián)動(dòng)簡(jiǎn)單案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JS ES6異步解決方案

    JS ES6異步解決方案

    這篇文章主要介紹了JS ES6異步解決方案,對(duì)異步感興趣的同學(xué),可以參考下
    2021-04-04
  • 用js實(shí)現(xiàn)猜數(shù)字小游戲

    用js實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了用js實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 在webstorm中配置less的方法詳解

    在webstorm中配置less的方法詳解

    這篇文章主要介紹了在webstorm中配置less的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-09
  • js用閉包遍歷樹狀數(shù)組的方法

    js用閉包遍歷樹狀數(shù)組的方法

    這篇文章主要介紹了js中用閉包遍歷樹狀數(shù)組的方法,需要的朋友可以參考下
    2014-03-03
  • Javascript中window.name屬性詳解

    Javascript中window.name屬性詳解

    這篇文章主要介紹了Javascript中window.name屬性詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論