第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

函數(shù)表達(dá)式與JavaScript中的聲明有什么區(qū)別?

函數(shù)表達(dá)式與JavaScript中的聲明有什么區(qū)別?

繁星coding 2019-05-30 17:21:12
函數(shù)表達(dá)式與JavaScript中的聲明有什么區(qū)別?以下代碼行之間有什么區(qū)別?//Function declarationfunction foo() { return 5; }//Anonymous function expressionvar foo = function()  { return 5; }//Named function expressionvar foo = function foo() { return 5; }什么是命名/匿名函數(shù)表達(dá)式?什么是聲明的函數(shù)?瀏覽器如何以不同的方式處理這些構(gòu)造?對類似問題的回答是什么(VARFunctionName=function(){}vs函數(shù)名(){}不完全正確嗎?
查看完整描述

4 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗 獲得超4個贊

功能聲明

function foo() { ... }

因為功能提升,以這種方式聲明的函數(shù)可以在定義之后和之前調(diào)用。

函數(shù)表達(dá)式

  1. 命名函數(shù)表達(dá)式

    var foo = function bar() { ... }
  2. 匿名函數(shù)表達(dá)式

    var foo = function() { ... }

foo()只有在創(chuàng)造之后才能被調(diào)用。

立即調(diào)用函數(shù)表達(dá)式

(function() { ... }());

結(jié)語

Crocford建議使用函數(shù)表達(dá)式,因為它清楚地表明foo包含函數(shù)值的變量。嗯,就我個人而言,我更喜歡使用宣言,除非有表達(dá)的理由。


查看完整回答
反對 回復(fù) 2019-05-30
?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊

關(guān)于第三項定義:


var foo = function foo() { return 5; }

下面是一個示例,說明如何使用遞歸調(diào)用的可能性:


a = function b(i) { 

  if (i>10) {

    return i;

  }

  else {

    return b(++i);

  }

}


console.log(a(5));  // outputs 11

console.log(a(10)); // outputs 11

console.log(a(11)); // outputs 11

console.log(a(15)); // outputs 15

編輯:更有趣的閉包示例:


a = function(c) {

 return function b(i){

  if (i>c) {

   return i;

  }

  return b(++i);

 }

}

d = a(5);

console.log(d(3)); // outputs 6

console.log(d(8)); // outputs 8


查看完整回答
反對 回復(fù) 2019-05-30
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊

第一個語句取決于聲明的上下文。

如果它是在全局上下文中聲明的,它將創(chuàng)建一個名為“foo”的隱含全局變量,它將是指向該函數(shù)的變量。因此,函數(shù)調(diào)用“foo()”可以在您的javascript程序中的任何地方進(jìn)行。

如果函數(shù)是在閉包中創(chuàng)建的,它將創(chuàng)建一個名為“foo”的隱含局部變量,然后可以用“foo()”調(diào)用閉包內(nèi)的函數(shù)。

編輯:

我還應(yīng)該說,函數(shù)語句(第一個)是在函數(shù)表達(dá)式(另兩個)之前解析的。這意味著,如果在腳本底部聲明函數(shù),則仍然可以在頂部使用它。函數(shù)表達(dá)式只有在被執(zhí)行的代碼擊中時才會得到計算。

結(jié)束編輯

語句2和3幾乎是等價的。同樣,如果在全局上下文中使用,它們將創(chuàng)建全局變量,如果在閉包中使用將創(chuàng)建局部變量。但是,值得注意的是,語句3將忽略函數(shù)名,因此您可以任意調(diào)用該函數(shù)。因此

var foo = function foo() { return 5; }

是相同的

var foo = function fooYou() { return 5; }


查看完整回答
反對 回復(fù) 2019-05-30
  • 4 回答
  • 0 關(guān)注
  • 559 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號