Js的運(yùn)算符
- JavaScript 算術(shù)運(yùn)算符(+ 紧唱,-评甜, *直撤, /, %蜕着, ++谋竖, --)
1.取模運(yùn)算的結(jié)果符號(hào)只與左邊值的符號(hào)有關(guān)
var x = 7 % 3; // 結(jié)果為 1
var y = 7 % (-3); // 結(jié)果為 1
var z = (-7) % 3; // 結(jié)果為 -1
如果 % 左邊的操作數(shù)是正數(shù),則模除的結(jié)果為正數(shù)或零承匣;
如果 % 左邊的操作數(shù)是負(fù)數(shù)蓖乘,則模除的結(jié)果為負(fù)數(shù)或零。
- JavaScript 賦值運(yùn)算符 (= 韧骗,+= 嘉抒,-=伯诬,*=杠人,/=,%=)
- JavaScript 比較運(yùn)算符 (== 龙屉,===政模,!= 岗宣,!==,> 淋样,< 耗式,<= ,>= )
- 用于字符串的 + 運(yùn)算符
<script>
function myFunction()
{
txt1="What a very ";
txt2="nice day";
txt3=txt1+txt2;
document.getElementById("demo").innerHTML=txt3;
}
</script>
//結(jié)果為What a very nice day 注意very后面是有空格的
1.對(duì)字符串和數(shù)字進(jìn)行加法運(yùn)算
<script>
function myFunction()
{
var x=5+5;
var y="5"+5;
var z="Hello"+5;
var demoP=document.getElementById("demo");
demoP.innerHTML=x + "<br>" + y + "<br>" + z;
}
</script>
//結(jié)果為10 55 Hello5
2.數(shù)字和布爾值相加趁猴,布爾值 false 轉(zhuǎn)成 0刊咳,true 轉(zhuǎn)成 1
var one=13;
var two=true;
var three=one+two;
// 結(jié)果 three:14
3.字符串與布爾值相加,布爾值轉(zhuǎn)化成字符串儡司。
4.字符串與 null(空值) 相加娱挨,null 轉(zhuǎn)化為字符串:
var car=null+"a"; // 結(jié)果為 nulla
5.數(shù)字與 null(空值) 相加,null 轉(zhuǎn)化為數(shù)字 0:
var car=null+3+4; // 結(jié)果為7
- 邏輯運(yùn)算符(&& 捕犬,|| 跷坝,!)
首先說(shuō)明或听,其他數(shù)據(jù)類型轉(zhuǎn)換為布爾類型的規(guī)則: null探孝、undefined、0誉裆、NaN顿颅、空字符串轉(zhuǎn)換為false,其他轉(zhuǎn)化為 true足丢。
1.取反
<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;
console.log(!""); //true
console.log(!d); //true
console.log(!a); //false
console.log(!b); //false
console.log(!obj); //false
</script>
2.邏輯與
JavaScript 中邏輯與和其他語(yǔ)言不太一樣粱腻,如果第一個(gè)操作數(shù)是 true(或者能夠轉(zhuǎn)為 true)庇配,計(jì)算結(jié)果就是第二個(gè)操作數(shù),如果第一個(gè)操作數(shù)是 false绍些,結(jié)果就是 false(短路計(jì)算)捞慌,對(duì)于一些特殊數(shù)值不遵循以上規(guī)則。(個(gè)人理解為:如果運(yùn)算的第一個(gè)操作數(shù)為true,則返回第二個(gè)操作數(shù),反之則返回第一個(gè)操作數(shù))
<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;
console.log(true && 10); //第一個(gè)操作數(shù)是true柬批,結(jié)果是第二個(gè)操作啸澡,也就是10
console.log(false && b); //第一個(gè)操作數(shù)是false,結(jié)果flase
console.log(100 && false); //第一個(gè)操作數(shù)是100氮帐,結(jié)果flase
console.log(undefined && false); //第一個(gè)操作數(shù)是undefined嗅虏,結(jié)果undefined
console.log(NaN && false); //第一個(gè)操作數(shù)是NaN,結(jié)果NaN
console.log(null && false); //第一個(gè)操作數(shù)是null上沐,結(jié)果null
console.log('' && false); //第一個(gè)操作數(shù)是空串皮服,結(jié)果空串
console.log(0 && 100); //結(jié)果是0
console.log(5 && 100); //100
console.log(a && b); //hello
console.log(obj && 200); //200
</script>
1.邏輯或
如果第一個(gè)操作數(shù)不是 false,結(jié)果就是第一個(gè)操作數(shù)参咙,否則結(jié)果是第二個(gè)操作數(shù)龄广。如果第一個(gè)操作數(shù)能夠轉(zhuǎn)為 true,結(jié)果就是第一個(gè)操作數(shù)(個(gè)人理解為:如果運(yùn)算的第一個(gè)操作數(shù)為 true,則返回第一個(gè)操作數(shù),反之則返回第二個(gè)操作數(shù))
<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;
console.log(true || 10); //第一個(gè)操作數(shù)是true蕴侧,結(jié)果是第一個(gè)操作择同,也就是true
console.log(false || b); //第一個(gè)操作數(shù)是false,結(jié)果是第二個(gè)操作數(shù)b
console.log(100 || false); //第一個(gè)操作數(shù)是100戈盈,結(jié)果100
console.log(undefined || 9); //第一個(gè)操作數(shù)是undefined轉(zhuǎn)false奠衔,結(jié)果9
console.log(NaN || false); //第一個(gè)操作數(shù)是NaN轉(zhuǎn)false,結(jié)果第二個(gè)操作數(shù)
console.log(null || a); //第一個(gè)操作數(shù)是null轉(zhuǎn)false塘娶,結(jié)果a
console.log('' || false); //第一個(gè)操作數(shù)是空串轉(zhuǎn)false,結(jié)果第二操作數(shù)
console.log(0 || 100); //結(jié)果是100
console.log(5 || 100); //5
console.log(a || b); //a
console.log(obj || 200); //obj
</script>