本篇文章给大家带来的内容是关于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"
—— Here are lovecode3000 ~