1. 程式人生 > >立即表示式的多種寫法與注意點以及in操作符的作用

立即表示式的多種寫法與注意點以及in操作符的作用

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

1、 通過小括號把函式宣告變成表示式, 然後再外面加個小括號 就可以達到立即呼叫的效果

1         (function(){
2             console.log( 'ghostwu' );
3         })();

2、!號 把函式宣告轉化成表示式,再呼叫

1         !function(){
2             console.log( 'ghostwu' );
3 }();

3、+號 把函式宣告轉化成表示式,再呼叫

1         +function(){
2             console.log( 'ghostwu' );
3         }();

4、-號 把函式宣告轉化成表示式,再呼叫

1         -function(){
2             console.log( 'ghostwu' );
3         }();

5、波浪符 把函式宣告轉表示式,再呼叫

1         ~function(){
2             console.log( 'ghostwu' );
3 }();

6、把呼叫寫在表示式裡面

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') })()

小結:當使用正則表示式, 應該在他的前面加上分號, 在程式碼壓縮的時候就不會出錯

in操作符: 判斷屬性是否在一個物件或者他的原型上
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

相關推薦

no