日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数①函数声明与表达式

發布時間:2024/9/5 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数①函数声明与表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

函數是JavaScript中的一等對象,這意味著可以把函數像其它值一樣傳遞。 一個常見的用法是把匿名函數作為回調函數傳遞到異步函數中。

函數聲明

function foo() {}

上面的方法會在執行前被?解析(hoisted),因此它存在于當前上下文的任意一個地方, 即使在函數定義體的上面被調用也是對的。

foo(); // 正常運行,因為foo在代碼運行前已經被創建 function foo() {}

函數賦值表達式

var foo = function() {};

這個例子把一個匿名的函數賦值給變量?foo。

foo; // 'undefined' foo(); // 出錯:TypeError var foo = function() {};

由于?var?定義了一個聲明語句,對變量?foo?的解析是在代碼運行之前,因此foo?變量在代碼運行時已經被定義過了。

但是由于賦值語句只在運行時執行,因此在相應代碼執行之前,?foo?的值缺省為?undefined。

命名函數的賦值表達式

另外一個特殊的情況是將命名函數賦值給一個變量。

var foo = function bar() {bar(); // 正常運行 } bar(); // 出錯:ReferenceError

bar?函數聲明外是不可見的,這是因為我們已經把函數賦值給了?foo; 然而在?bar?內部依然可見。這是由于 JavaScript 的?命名處理?所致, 函數名在函數內總是可見的。

注意:在IE8及IE8以下版本瀏覽器bar在外部也是可見的,是因為瀏覽器對命名函數賦值表達式進行了錯誤的解析, 解析成兩個函數?foo?和?bar

轉載于:https://www.cnblogs.com/luckyxb/p/6398464.html

總結

以上是生活随笔為你收集整理的函数①函数声明与表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。