摘要:立即表達(dá)式,在中非常常見,采用立即表達(dá)式可以形成一個(gè)局部作用域,常配合閉包實(shí)現(xiàn)模塊化編程等其他用途,接下來我們看看,在大多數(shù)的框架中,立即表達(dá)式都有哪些寫法,以及需要注意的點(diǎn),另外再介紹下操作符的用法通過小括號(hào)把函數(shù)聲明變成表達(dá)式,然后再外
立即表達(dá)式,在javascript中非常常見, 采用立即表達(dá)式可以形成一個(gè)局部作用域, 常配合閉包實(shí)現(xiàn)模塊化編程等其他用途,接下來我們看看,在大多數(shù)的框架中,立即表達(dá)式都有哪些寫法,以及需要注意的點(diǎn),另外再介紹下in操作符的用法
1、 通過小括號(hào)把函數(shù)聲明變成表達(dá)式, 然后再外面加個(gè)小括號(hào) 就可以達(dá)到立即調(diào)用的效果
1 (function(){ 2 console.log( "ghostwu" ); 3 })();
2、!號(hào) 把函數(shù)聲明轉(zhuǎn)化成表達(dá)式,再調(diào)用
1 !function(){ 2 console.log( "ghostwu" ); 3 }();
3、+號(hào) 把函數(shù)聲明轉(zhuǎn)化成表達(dá)式,再調(diào)用
1 +function(){ 2 console.log( "ghostwu" ); 3 }();
4、-號(hào) 把函數(shù)聲明轉(zhuǎn)化成表達(dá)式,再調(diào)用
1 -function(){ 2 console.log( "ghostwu" ); 3 }();
5、波浪符 把函數(shù)聲明轉(zhuǎn)表達(dá)式,再調(diào)用
1 ~function(){ 2 console.log( "ghostwu" ); 3 }();
6、把調(diào)用寫在表達(dá)式里面
1 (function(){ 2 console.log( "ghostwu" ); 3 }());
使用立即表達(dá)式,需要注意的地方:
一、1被當(dāng)做函數(shù)調(diào)用, 原因在與 沒有用分號(hào) 把語句隔斷,產(chǎn)生歧義
1 //報(bào)錯(cuò), 1被當(dāng)做函數(shù) 1() 2 var n = 1 3 (function(){ console.log( "ghostwu" ) })() 1 var n = 1; 2 // (function(){ console.log( "ghostwu" ) })() 3 ;(function(){ console.log( "ghostwu" ) })()
上例為正確的做法
二、下面這種寫法,兩個(gè)立即表達(dá)式, 沒有用分號(hào)隔開,同樣產(chǎn)生歧義,報(bào)錯(cuò)
1 (function(){ console.log("ghostwu1") })() 2 (function(){ console.log("ghostwu2") })()
正確的寫法:
1 ;(function(){ console.log("ghostwu1") })() 2 ;(function(){ console.log("ghostwu2") })()
小結(jié):當(dāng)使用立即表達(dá)式, 應(yīng)該在他的前面加上分號(hào), 在代碼壓縮的時(shí)候就不會(huì)出錯(cuò)
in操作符: 判斷屬性是否在一個(gè)對(duì)象或者他的原型上
1 function CreateObj(){ 2 // this.name = "ghostwu"; //true 3 } 4 CreateObj.prototype.name = "ghostwu"; //true 5 var obj = new CreateObj(); 6 console.log( "name" in obj );
1 var myObj = { 2 age : 22 3 }; 4 console.log( "age" in myObj ); //true 5 console.log( "sex" in myObj ); //false
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84799.html
摘要:如果沒有學(xué)習(xí)過計(jì)算機(jī)科學(xué)的程序員,當(dāng)我們?cè)谔幚硪恍﹩栴}時(shí),比較熟悉的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組無疑是一個(gè)很好的選擇。 幾種 JavaScript 動(dòng)畫庫推薦 JavaScript 庫對(duì)設(shè)計(jì)師和開發(fā)人員來說,都是非常有用的工具。它們可以為你的網(wǎng)站添加一些超級(jí)強(qiáng)大的功能,給用戶帶來更好的體驗(yàn)。 2017年8月前端開發(fā)者超實(shí)用干貨大合集 在過去的幾年當(dāng)中,網(wǎng)絡(luò)上所流傳的各種設(shè)計(jì)和開發(fā)資源,在素質(zhì)...
摘要:如果沒有學(xué)習(xí)過計(jì)算機(jī)科學(xué)的程序員,當(dāng)我們?cè)谔幚硪恍﹩栴}時(shí),比較熟悉的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組無疑是一個(gè)很好的選擇。 幾種 JavaScript 動(dòng)畫庫推薦 JavaScript 庫對(duì)設(shè)計(jì)師和開發(fā)人員來說,都是非常有用的工具。它們可以為你的網(wǎng)站添加一些超級(jí)強(qiáng)大的功能,給用戶帶來更好的體驗(yàn)。 2017年8月前端開發(fā)者超實(shí)用干貨大合集 在過去的幾年當(dāng)中,網(wǎng)絡(luò)上所流傳的各種設(shè)計(jì)和開發(fā)資源,在素質(zhì)...
摘要:我們通過表單驗(yàn)證的功能,來逐步演進(jìn)面向?qū)ο蟮姆绞綄?duì)于剛剛接觸的朋友來說,如果要寫一個(gè)驗(yàn)證用戶名,密碼,郵箱的功能,一般可能會(huì)這么寫表單驗(yàn)證全局全局全局這種寫法,從功能上來說沒有什么問題,但是在團(tuán)隊(duì)協(xié)作的時(shí)候,會(huì)造成覆蓋全局變量的問題,那要大 我們通過表單驗(yàn)證的功能,來逐步演進(jìn)面向?qū)ο蟮姆绞? 對(duì)于剛剛接觸javascript的朋友來說,如果要寫一個(gè)驗(yàn)證用戶名,密碼,郵箱的功能, 一...
摘要:命名函數(shù)的賦值表達(dá)式另外一個(gè)特殊的情況是將命名函數(shù)賦值給一個(gè)變量。這是由于的命名處理所致,函數(shù)名在函數(shù)內(nèi)總是可見的。當(dāng)需要向回調(diào)函數(shù)傳遞參數(shù)時(shí),可以創(chuàng)建一個(gè)匿名函數(shù),在函數(shù)內(nèi)執(zhí)行真實(shí)的回調(diào)函數(shù)。 1.hasOwnProperty相關(guān) 為了判斷一個(gè)對(duì)象是否包含自定義屬性而不是原型鏈上的屬性,我們需要使用繼承自 Object.prototype 的 hasOwnProperty方法。has...
摘要:官方也宣布在停止對(duì)的維護(hù)。并且在很多面試過程中,面試官都會(huì)問與的區(qū)別。的版本,常被稱為,或簡(jiǎn)稱。與部分地支持這種形式的語法。捕獲異常的語法由改為。在中,表示八進(jìn)制字面量的方式只有一種,就是。已經(jīng)支援新的模組。 前言 如果你是剛接觸 Python 的初學(xué)者,那你可能是直接學(xué)習(xí) Python 3.x 版本。對(duì)于 Python 2.x 的版本是不會(huì)有所接觸。官方也宣布在 2020 停止對(duì) P...
閱讀 1681·2021-11-12 10:35
閱讀 1624·2021-08-03 14:02
閱讀 2693·2019-08-30 15:55
閱讀 2036·2019-08-30 15:54
閱讀 774·2019-08-30 14:01
閱讀 2436·2019-08-29 17:07
閱讀 2262·2019-08-26 18:37
閱讀 3040·2019-08-26 16:51