成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Carl / 1313人閱讀

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

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

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

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

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

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

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

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

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

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

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

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

;(function(){})() 函數(shù)表達式,分號反正前面沒加分號,解析錯誤

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

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

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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    wuaiqiu 評論0 收藏0

發(fā)表評論

0條評論

Carl

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<