[js高手之路]立即運算式的多種寫法與注意點以及in操作符的作用

來源:互聯網
上載者:User

標籤:立即運算式   in   

立即運算式,在javascript中非常常見, 採用立即運算式可以形成一個局部範圍, 常配合閉包實現模組化編程等其他用途,接下來我們看看,在大多數的架構中,立即運算式都有哪些寫法,以及需要注意的點,另外再介紹下in操作符的用法

一、通過小括弧把函式宣告變成運算式, 然後再外面加個小括弧 就可以達到立即調用的效果

1         (function(){

2             console.log( ‘ghostwu‘ );

3         })();


二、!號 把函式宣告轉化成運算式,再調用


1         !function(){

2             console.log( ‘ghostwu‘ );

3         }();


三、+號 把函式宣告轉化成運算式,再調用


1         +function(){

2             console.log( ‘ghostwu‘ );

3         }();


四、-號 把函式宣告轉化成運算式,再調用


1         -function(){

2             console.log( ‘ghostwu‘ );

3         }();


五、波浪符 把函式宣告轉運算式,再調用


1         ~function(){

2             console.log( ‘ghostwu‘ );

3         }();


六、把調用寫在運算式裡面


1         (function(){

2             console.log( ‘ghostwu‘ );

3         }());


使用立即運算式,需要注意的地方:

一、1被當做函數調用, 原因在與 沒有用分號 把語句隔斷,產生歧義

1         //報錯, 1被當做函數 1()

2        var n = 1

3         (function(){ console.log( ‘ghostwu‘ ) })()


1         var n = 1;

2         // (function(){ console.log( ‘ghostwu‘ ) })()

3         ;(function(){ console.log( ‘ghostwu‘ ) })()

上例為正確的做法

二、下面這種寫法,兩個立即運算式, 沒有用分號隔開,同樣產生歧義,報錯

1          (function(){ console.log(‘ghostwu1‘) })()

2         (function(){ console.log(‘ghostwu2‘) })()

正確的寫法:

1         ;(function(){ console.log(‘ghostwu1‘) })()

2         ;(function(){ console.log(‘ghostwu2‘) })()


小結:當使用Regex, 應該在他的前面加上分號, 在代碼壓縮的時候就不會出錯

in操作符: 判斷屬性是否在一個對象或者他的原型上

function CreateObj(){            // this.name = ‘ghostwu‘; //true        }        CreateObj.prototype.name = ‘ghostwu‘; //true        var obj = new CreateObj();        console.log( ‘name‘ in obj );
1         var myObj = {2             age : 223         };4         console.log( ‘age‘ in myObj ); //true5         console.log( ‘sex‘ in myObj ); //false

本文出自 “ghostwu” 部落格,請務必保留此出處http://ghostwu.blog.51cto.com/11192807/1959334

[js高手之路]立即運算式的多種寫法與注意點以及in操作符的作用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.