!function(){console.log(12);}() 立即執行 感嘆號
阿新 • • 發佈:2022-11-29
!function(){console.log(12);}() 執行
(!function(){console.log(12);}()) 執行
function(){console.log(12);}() 報錯
+function(){console.log(12);}() 執行
~function(){console.log(12);}() 執行
-function(){console.log(12);}() 執行
省下1個位元組
js 前加分號和感嘆號是什麼意思?_已解決_博問_部落格園 https://q.cnblogs.com/q/52920/
js檔案中函式前加分號和感嘆號是什麼意思? - 菜鳥江太公 - 部落格園 https://www.cnblogs.com/jiangtian/p/6194645.html
我們都知道,函式的宣告方式有這兩種
function fnA(){alert('msg');}//宣告式定義函式
var fnB = function(){alert('msg');}//函式賦值表示式定義函式
樓主問題中出現的兩個函式,都是匿名函式。通常,我們呼叫一個方法的方式就是 FunctionName()
但是,如果我們嘗試為一個“定義函式”末尾加上(),解析器是無法理解的。
function msg(){
alert('message');
}();//解析器是無法理解的
定義函式的呼叫方式應該是 msg() ; 那為什麼將函式體部分用()包裹起來就可以了呢?
原來,使用括號包裹定義函式體,解析器將會以函式表示式的方式去呼叫定義函式。也就是說,任何能將函式變成一個函式表示式的作法,都可以使解析器正確的呼叫定義函式。而 ! 就是其中一個,而 + - || 都有這樣的功能。
另外,用 ! 可能更多的是一個習慣問題,不同的運算子,效能是不同的。
Javascript的~(波浪號)用法_黑卡米的部落格-CSDN部落格_javascript 波浪號 https://blog.csdn.net/Aaren_Jiang/article/details/107303023 原理 js中在變數名前加"~" 是位運算NOT,按位取反.
var iNum1 = 25; //25 二進位制原碼等於 00000000000000000000000000011001
var iNum2 = ~iNum1; //轉換為 11111111111111111111111111100110
alert(iNum2);//輸出 "-26"
相當於是對數值求負後減1 ,25 -> -25 -> -26
indexOf用法
if (~this.cartIds.indexOf(item.id)) { //在if判斷裡,只要是非0都會進入 //當this.cartIds包含item.id時,返回的是0,然後~取反為-1 }
函式用法 在函式前加上波浪號,其作用是把函式宣告轉換為表示式,就可以直接將下面的程式碼放入某個函式裡執行。
function functionName() { //執行的程式碼 ~function sayHello(){ console.log('hello');}() } Javascript的~(波浪號)用法
Javascript的~(波浪號)用法_黑卡米的部落格-CSDN部落格_javascript 波浪號 https://blog.csdn.net/Aaren_Jiang/article/details/107303023 原理 js中在變數名前加"~" 是位運算NOT,按位取反.
var iNum1 = 25; //25 二進位制原碼等於 00000000000000000000000000011001
var iNum2 = ~iNum1; //轉換為 11111111111111111111111111100110
alert(iNum2);//輸出 "-26"
相當於是對數值求負後減1 ,25 -> -25 -> -26
indexOf用法
if (~this.cartIds.indexOf(item.id)) { //在if判斷裡,只要是非0都會進入 //當this.cartIds包含item.id時,返回的是0,然後~取反為-1 }
函式用法 在函式前加上波浪號,其作用是把函式宣告轉換為表示式,就可以直接將下面的程式碼放入某個函式裡執行。
function functionName() { //執行的程式碼 ~function sayHello(){ console.log('hello');}() }