国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript函數(shù)聲明與函數(shù)表達(dá)式

Carl / 1277人閱讀

JavaScript函數(shù)聲明與函數(shù)表達(dá)式 如何定義一個(gè)函數(shù)

????????在JavaScript里有兩種定義函數(shù)的方法

函數(shù)聲明
????????function 函數(shù)名稱 (參數(shù):可選){ 函數(shù)體 }

函數(shù)表達(dá)式
????????function 函數(shù)名稱(可選)(參數(shù):可選){ 函數(shù)體 }

常見的函數(shù)定義以及所屬的定義方法

function foo(){} 函數(shù)聲明

var bar = function foo(){}; 函數(shù)表達(dá)式

new function bar(){}; 函數(shù)表達(dá)式

function foo(){ function bar(){} 函數(shù)聲明}

(function(){})() 函數(shù)表達(dá)式

+function(){}() 函數(shù)表達(dá)式

!function(){}() 函數(shù)表達(dá)式

;(function(){})() 函數(shù)表達(dá)式,分號(hào)反正前面沒加分號(hào),解析錯(cuò)誤

函數(shù)聲明與函數(shù)表達(dá)式的一些細(xì)微的不同

在JavaScript里函數(shù)聲明會(huì)有一個(gè)hoist的過(guò)程,也就是說(shuō)在函數(shù)執(zhí)行的之前,函數(shù)體就已經(jīng)被解析了。一個(gè)典型的例子

if (true) {
  function foo() {
    return "first";
  }
}
else {
  function foo() {
    return "second";
  }
}
foo();

正常情況下,得到的結(jié)果是 second

var foo;
if (true) {
  foo = function() {
    return "first";
  };
}
else {
  foo = function() {
    return "second";
  };
}
foo();

我們能得到想要的結(jié)果

http://www.nowamagic.net/librarys/veda/detail/1630

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/85970.html

相關(guān)文章

  • 進(jìn)擊JavaScript之(一)變量聲明提升

    摘要:如下代碼輸出的結(jié)果是代碼執(zhí)行分為兩個(gè)大步預(yù)解析的過(guò)程代碼的執(zhí)行過(guò)程預(yù)解析與變量聲明提升程序在執(zhí)行過(guò)程中,會(huì)先將代碼讀取到內(nèi)存中檢查,會(huì)將所有的聲明在此進(jìn)行標(biāo)記,所謂的標(biāo)記就是讓解析器知道有這個(gè)名字,后面在使用名字的時(shí)候不會(huì)出現(xiàn)未定義的錯(cuò)誤。 showImg(https://segmentfault.com/img/remote/1460000012922850); 如下代碼輸出的結(jié)果是...

    LeexMuller 評(píng)論0 收藏0
  • 先有蛋還是先有雞?JavaScript 作用域閉包探析

    摘要:而閉包的神奇之處正是可以阻止事情的發(fā)生。拜所聲明的位置所賜,它擁有涵蓋內(nèi)部作用域的閉包,使得該作用域能夠一直存活,以供在之后任何時(shí)間進(jìn)行引用。依然持有對(duì)該作用域的引用,而這個(gè)引用就叫閉包。 引子 先看一個(gè)問題,下面兩個(gè)代碼片段會(huì)輸出什么? // Snippet 1 a = 2; var a; console.log(a); // Snippet 2 console.log(a); v...

    elisa.yang 評(píng)論0 收藏0
  • 進(jìn)擊的 JavaScript(五) 之 立即執(zhí)行函數(shù)閉包

    摘要:匿名函數(shù)是不能單獨(dú)寫的,所以就提不上立即執(zhí)行了。六立即執(zhí)行函數(shù)在閉包中的應(yīng)用立即執(zhí)行函數(shù)能配合閉包保存狀態(tài)。來(lái)看下上節(jié)內(nèi)容中閉包的例子現(xiàn)在,我們來(lái)利用立即執(zhí)行函數(shù)來(lái)簡(jiǎn)化它第一個(gè)匿名函數(shù)執(zhí)行完畢后,返回了第二個(gè)匿名函數(shù)。 前面的閉包中,提到與閉包相似的立即執(zhí)行函數(shù),感覺兩者還是比較容易弄混吧,嚴(yán)格來(lái)說(shuō)(因?yàn)橄透叱虒?duì)閉包的定義不同),立即執(zhí)行函數(shù)并不屬于閉包,它不滿足閉包的三個(gè)條件。...

    vincent_xyb 評(píng)論0 收藏0
  • ES6 變量作用域提升:變量的生命周期詳解

    摘要:不同的是函數(shù)體并不會(huì)再被提升至函數(shù)作用域頭部,而僅會(huì)被提升到塊級(jí)作用域頭部避免全局變量在計(jì)算機(jī)編程中,全局變量指的是在所有作用域中都能訪問的變量。 ES6 變量作用域與提升:變量的生命周期詳解從屬于筆者的現(xiàn)代 JavaScript 開發(fā):語(yǔ)法基礎(chǔ)與實(shí)踐技巧系列文章。本文詳細(xì)討論了 JavaScript 中作用域、執(zhí)行上下文、不同作用域下變量提升與函數(shù)提升的表現(xiàn)、頂層對(duì)象以及如何避免創(chuàng)建...

    lmxdawn 評(píng)論0 收藏0
  • 譯: 函數(shù)提升提升面試的相關(guān)問題

    摘要:函數(shù)提升在里有兩種方式創(chuàng)建函數(shù),通過(guò)函數(shù)聲明和函數(shù)表達(dá)式。函數(shù)聲明用指定的參數(shù)來(lái)定義函數(shù)。提示不要在中進(jìn)行函數(shù)聲明。問題輸出兩個(gè)都是用函數(shù)聲明的函數(shù),將被提升到的局部作用域頂端。函數(shù)本身將作為函數(shù)聲明在全局范圍內(nèi)提升。 作者關(guān)于提升的話題,總共有兩篇。(后來(lái)又有一個(gè)討論篇),再次搬過(guò)來(lái)。水平有限,如果翻譯的不準(zhǔn)確請(qǐng)包涵,并去看原文。下面開始: 這是我之前的關(guān)于提升的文章,標(biāo)題為《用le...

    wuaiqiu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Carl

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<