js函數(shù)定義 調(diào)用 預解析

兩種方式

函數(shù)聲明

function 函數(shù)名 () {} //分裝函數(shù) 無結(jié)果 可以不寫;

函數(shù)表達式(內(nèi)部為匿名函數(shù))

var 變量名 = function(){};
函數(shù)表達式中,創(chuàng)建的函數(shù)叫做匿名函數(shù),因為function關(guān)鍵字后面沒有標識符。

匿名函數(shù)調(diào)用

下面兩個等價

   var aa = function(x){
        alert(x);
    }(5);//5

(function(x){alert(x);})(5);//5

自執(zhí)行函數(shù)

三種寫法特點:
①結(jié)構(gòu)清晰,開頭加!,結(jié)尾加()。不容易亂,推薦使用;
②可以表明匿名函數(shù)與之后的()為一個整體,推薦使用;
③無法表明函數(shù)與之后()為一個整體,不推薦使用:
創(chuàng)建了一個匿名的函數(shù),并立即執(zhí)行它,由于外部無法引用它內(nèi)部的變量,因此在執(zhí)行完后很快就會被釋放,關(guān)鍵是這種機制不會污染全局對象。
前面的()、+、-、!等告訴解析器這是個表達式,后面的()是讓函數(shù)執(zhí)行(表達式才能執(zhí)行)

(function () { /* code */ } ()); // 推薦使用這個
(function () { /* code */ })(); // 但是這個也是可以用的

// 如果你不在意返回值,或者不怕難以閱讀
// 你甚至可以在function前面加一元操作符號

!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();

以上 源 :https://www.cnblogs.com/jessiespur/p/9283101.html
中有詳細介紹

其他相關(guān)鏈接
https://www.cnblogs.com/ayning/p/4113314.html
https://www.cnblogs.com/timl525/p/5092132.html
http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html

關(guān)于調(diào)用

有return時 return 返回到函數(shù)的頂部
function()返回return值 否則我return 默認返回undefined
document.write(function());

無return
調(diào)用
function();//函數(shù)內(nèi)部需要有輸出語句

多個函數(shù)共同實現(xiàn)一個效果 嵌套與否都可
框架 函數(shù)調(diào)用函數(shù)(自身或者別的)

預解析

js編譯

語法分析

查找基本語法有沒有錯誤

預解析

執(zhí)行之前進行預解析
var、function關(guān)鍵字提前到“當前”作用域的頂部,變量默認值為undefined
關(guān)于變量沖突:
函數(shù)覆蓋變量名稱 函數(shù)后面覆蓋前面

代碼順序執(zhí)行

給提升到頂部的變量賦值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,140評論 2 17
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,259評論 0 38
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,858評論 1 45
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,877評論 0 3
  • 函數(shù)只定義一次,但可能被執(zhí)行或調(diào)用任意次。JS函數(shù)是參數(shù)化的,函數(shù)的定義會包括一個稱為形參的標識符列表,這些參數(shù)在...
    PySong閱讀 679評論 0 0

友情鏈接更多精彩內(nèi)容