亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸

在線(xiàn)客服與您一對一交流

!function foo()、(function(){}())與(function(){})()

1. (function(){}())與(function(){})()

這兩種寫(xiě)法,都是一種 立即執行函數 的寫(xiě)法,即IIFE (Immediately Invoked Function Expression)。這種函數在函數定義的地方就直接執行了。

通常的函數聲明和調用分開(kāi)的寫(xiě)法如下:

function foo() {/*...*/}     // 這是定義,Declaration;定義只是讓解釋器知道其存在,但是不會(huì )運行。

foo();                   // 這是語(yǔ)句,Statement;解釋器遇到語(yǔ)句是會(huì )運行它的。

普通的函數聲明function foo(){}是不會(huì )執行的。這里如果直接這樣寫(xiě)function foo(){}()解釋器會(huì )報錯的,因為是錯誤的語(yǔ)法。

IIFE函數的調用方式通常是將函數表達式、它的調用操作符、分組操作符放到一個(gè)括號內,來(lái)告訴解釋器這里有一個(gè)需要立即執行的函數。否則通常情況下,解析器遇到一個(gè)function關(guān)鍵字,都會(huì )把它當做是一個(gè)函數聲明,而不是函數表達式。

如下幾種寫(xiě)法都是可以的:

(function foo(){/*...*/}());

(function foo(){/*...*/})();

!function foo() {/*...*/}();

+function foo() {/*...*/}();

-function foo() {/*...*/}();

~function foo() {/*...*/}();

在需要表達式的場(chǎng)景下,就不需要用括號括起來(lái)了:

void function(){/*...*/}();

var foo = function(){/*...*/}(); 

true && function () { /*...*/ }();

0, function () { /*...*/ }();

void聲明了不需要返回值,第二個(gè)則將IIFE函數的返回值賦給了foo。第三、第四個(gè)都是明確需要表達式的場(chǎng)景,所以解析器會(huì )認識這種寫(xiě)法。

 

對于IIFE函數,也可以給它們傳入參數,例如:

(function foo(arg1,arg2,...){...}(param1,param2,...));

對于常見(jiàn)的

(function( $ ){...})(jQuery);

即是將實(shí)參jQuery傳入函數function( $ ){},通過(guò)形參 $ 接收。

上述函數中,最開(kāi)始的那個(gè)括號,可能會(huì )由于js中自動(dòng)分號插入機制而引發(fā)問(wèn)題。例如:

a  =  b  +  c 

;(function  () { 

  // code 

})();

如果沒(méi)有第二行的分號,那么該處有可能被解析為c()而開(kāi)始執行。所以有的時(shí)候,可能會(huì )看到這樣的寫(xiě)法:;(function foo(){/…/}()),前邊的分號可以認為是防御型分號。

 

2. 第二類(lèi)是$(function(){});

(function()/.../);是(function()/.../);是(document).ready(function(){/…/})的簡(jiǎn)寫(xiě)形式,是在DOM加載完成后執行的回調函數,并且只會(huì )執行一次。

$( document ).ready(function() {

   console.log( "ready!" );

});   

$(function() {

   console.log( "ready!" );

});

起到的效果完全一樣。

在一個(gè)頁(yè)面中不同的js中寫(xiě)的$(function(){/…/});函數,會(huì )根據js的排列順序依次執行。

相關(guān)文章:

  • 帝國CMS是什么程序 帝國CMS是一套開(kāi)源的靜態(tài)頁(yè)面程序,憑借超高的擴展性,很多知名的新聞?wù)军c(diǎn)、行業(yè)站點(diǎn)都是應用的帝國CMS后端。因為帝國CMS和dedecms一樣都是生成靜態(tài)頁(yè)面的,所以非常利于...

  • 域名解析DNS分為顯性URL和隱形URL,顯性URL和隱形URL有什么區別?隱形URL和顯性URL哪個(gè)更有利于SEO?顯性URL相當于域名了302重定向,隱形URL使用iframe框架技術(shù)隱藏真實(shí)目標地址,顯性URL更有利于...

  • 在常見(jiàn)的CMS系統中,我對dedecms算是比較熟悉的,自己網(wǎng)站用的也是這個(gè)系統。系統功能強大使用靈活,相信這也是它受到大多數中小站長(cháng)青睞的原因。 再好的系統也有照顧不周的地方,很多站...

  • 這篇文章主要為大家詳細介紹了dedecms后臺增加php導出excel功能實(shí)現辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。 不少朋友希望織夢(mèng)的后臺...

  • 第一次使用的插件是 pdfobject.js 百度網(wǎng)盤(pán)下載地址:http://pan.baidu.com/s/1kUPhYdT 加載 script src=/style/js/pdfobject.js /script script type=text/javascript window.onload = function (){ var success = new PDFObject({ url: pdf文件地...

  • 網(wǎng)上有一種方法是copy+unlink來(lái)移動(dòng)文件,但是遇到大文件時(shí)會(huì )消耗大量時(shí)間,對性能不怎么友好,可以使用rename()來(lái)移動(dòng)文件,速度非???關(guān)于rename()函數 bool rename ( string $oldname , string $newname...

  • 基于我們公司可選的幾種推廣方式: 一、關(guān)鍵詞優(yōu)化排名推廣(推薦) 指定關(guān)鍵詞推廣,按天付費,推廣我們業(yè)務(wù)中最重要的一些關(guān)鍵詞,達到百度首頁(yè)才收費,大概一個(gè)關(guān)鍵詞10元/天左右。...

  • 插件介紹 wordpress程序網(wǎng)站在發(fā)布文章時(shí)可以給每一片文章添加與之相關(guān)的TAG標簽,對于TAG標簽可以生成很多頁(yè)面,增加搜索引擎對內容的抓取量。 WP Auto Keywords插件就是一款能自動(dòng)給文章添加...

  • 5.7 生成列表頁(yè) 改動(dòng) include/arc.listview.class.php 1.先設置 關(guān)閉副欄目(在系統----系統基本參數性能選項里) 2.一般網(wǎng)站不需要 欄目交叉 交叉 所以 找到94行注釋掉: //獲得交叉欄目ID /*if($this-Type...

  • 使用preg_replace將刪除所有空白(包括制表符等) $string = user na me $string = preg_replace(/\s+/, , $string); echo $string; // username preg_replace(/\s/u, ,$string) u (PCRE8) 此修正符打開(kāi)一個(gè)與perl不兼容的附加功能. 模式...

  • 公司:西安蟠龍網(wǎng)絡(luò )科技有限公司
  • 聯(lián)系人:張經(jīng)理
  • 手機/微信:
  • Q Q: 點(diǎn)擊這里給我發(fā)消息
  • 地址:西安市雁塔區唐延南路11號逸翠園i都會(huì )
亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸