JavaScript 小括號()分組運算子
小括號()可以作為分組運算子,以改變表示式的優先順序。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var a=(1+2)*4; console.log(a);
輸出值是12,分組運算子可以改變運算子的優先順序,否則的話輸出值是9。
擴充套件說明:
(1).很多教程說它是強制運算子,ECMAScript沒有強制運算子概念,它是分組運算子。
(2).這也是為什麼eval()函式將json格式字串轉換為物件需再巢狀一個小括號的原因,可以參閱使用eval()將json字串轉換為物件要多加一個小括號一章節。
小括號還有其他作用,下面分別做一下介紹:
(1).函式宣告和函式呼叫引數列表:
宣告函式或者呼叫函式的時候,如果有引數,那麼就將引數放在小括號之中。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function func(a,b){ //程式碼 } func(1,2);
(2).與特定關鍵字形成特定語句:
小括號可以與特定的關鍵詞形成特定的語句。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼if(a>1){ //程式碼 } while(i<len){ //程式碼 } for(var i=0;i<len;i++){ //程式碼 }
(3).表示式方式函式宣告和立即呼叫函式表示式:
建立一個函式除了函式宣告方式宣告之外,還可以使用表示式方式。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function func(){ //程式碼 } var func=function(){ //程式碼 }
第二種就是表示式方式宣告一個函式。下面介紹一下函式宣告和表示式方式的區別:
函式宣告必須帶有識別符號,也就是函式名,但是函式表示式方式,識別符號帶不帶都可以。
[JavaScript] 純文字檢視 複製程式碼function 函式名稱 (引數:可選){ 函式體 }//函式宣告方式 function 函式名稱(可選)(引數:可選){ 函式體 }//函式表示式方式
要區分一個程式碼是函式宣告還是函式表示式,那要看程式碼的應用上下文,例如:
[JavaScript] 純文字檢視 複製程式碼function func(){};//函式宣告方式 (function func(){})//函式表示式方式
出現在運算子相關上下文中,那麼它就是一個表示式,例如下面最常見的程式碼:
[JavaScript] 純文字檢視 複製程式碼var func=function(){}
上面介紹一下什麼是函式表示式,下面就看一下如何立即呼叫函式表示式:
[JavaScript] 純文字檢視 複製程式碼(function(){})(); (function(){}()); !function(){}();
三個語句都是在運算子相關上下文中,所以都是表示式,下面做一下分析:
(1).(function(){})():一個表示式,會強制其理解成函式直接量,也就是表示式方式建立函式,(function(){})它會返回函式物件的引用,最後使用小括號()呼叫此函式。
(2).(function(){}()):如果不在外面包裹的小括號,{}會被理解為複合語句,那麼function(){}就被理解為函式宣告,但是沒有識別符號,所以報錯,使用小括號以後,就會變成表示式,也會被理解為直接量方式。
(3).!function(){}():!也是一個運算子,所以在原理同上。
相關文章
- Linux Shell 雙括號運算子使用Linux
- JavaScript (+) 正號運算子JavaScript
- JavaScript + 正號運算子JavaScript
- JavaScript == 等號運算子JavaScript
- JavaScript - 負號運算子JavaScript
- JavaScript (<) 小於運算子JavaScript
- JavaScript >> 有符號右移運算子JavaScript符號
- JavaScript 等號 = 賦值運算子JavaScript賦值
- JavaScript 三個等號 === 全等運算子JavaScript
- javascript等號==運算子用法介紹JavaScript
- javascript運算子——條件、逗號、賦值、()和void運算子JavaScript賦值
- javascript運算子——邏輯運算子JavaScript
- JavaScript 解構賦值小括號的應用JavaScript賦值
- JavaScript函式多個小括號連續呼叫JavaScript函式
- JavaScript >>> 三個大於號無符號右移運算子JavaScript符號
- JavaScript /= 運算子JavaScript
- JavaScript += 運算子JavaScript
- JavaScript -= 運算子JavaScript
- JavaScript *= 運算子JavaScript
- JavaScript %= 運算子JavaScript
- JavaScript |= 運算子JavaScript
- JavaScript <<= 運算子JavaScript
- JavaScript >>>= 運算子JavaScript
- JavaScript >>= 運算子JavaScript
- JavaScript &= 運算子JavaScript
- JavaScript ^= 運算子JavaScript
- JavaScript in 運算子JavaScript
- JavaScript:運算子JavaScript
- JavaScript運算子JavaScript
- javascript賦值運算子等號=深入介紹JavaScript賦值
- JavaScript匿名函式要外面巢狀小括號原因JavaScript函式巢狀
- javascript中&&運算子和||運算子的使用JavaScript
- JavaScript << 左移運算子JavaScript
- JavaScript new 運算子JavaScript
- JavaScript typeof 運算子JavaScript
- JavaScript (+) 加法運算子JavaScript
- JavaScript + 加法運算子JavaScript
- JavaScript * 乘法運算子JavaScript