本篇文章給大家帶來的內容是關於JavaScript函數前面加!、+、-、~, ;符號的意義介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
! 對返回值的真假取反
console.log(!function() {
return;
}()); // true undefined屬於false,
console.log(!function() {
return "a";
}()); // false 字符串a屬於真
+、- 是對返回值進行數學運算
console.log(+function() {
return 5.1;
}()); // 5.1
console.log(-function() {
return 5.1;
}()); // -5.1
~ 對返回值進行按位取反
(所有正整數的按位取反是其本身+1的負數,所有負整數的按位取反是其本身+1的絕對值,零的按位取反是 -1)
console.log(~function() {
return 5;
}()); // -6
console.log(~function() {
return -5;
}()); // 4
console.log(~function() {
return 0;
}()); // -1
console.log(~function() {
return "5";
}()); // -6 按位取反也會對返回值進行強制轉換,將字符串5轉化為數字5,然后再按位取反
; 是為了防止代碼壓縮時,前面代碼沒寫 ; 造成報錯。
這里還有人可能會問,為什么在自執行函數中,前面也有加一個符號如~
~function(){
console.log('111')
}()
//"111"
這里函數被認為運算符,會自行調用。
一般用於沒有return的函數中。
如果有return並希望正常返回值,建議還是按照正常自執行函數來進行編寫。
(function(){
return '111'
})()
//"111"