js基本語法——運算符
關係運算符
- == 等於
- > 大於
- < 小於
- >= 大於等於
- <= 小於等於
- != 不等於
var a=90;
var b=90;
if(a==b){
alert("ok1");
}
b--;
if(a>b){
alert("ok2");
}
if(a>=b){
alert("ok3");
}
特別說明:
例如:
var a=9;
var b=‘9’;
if(a==b){
}else{
window.alert('no');
}
<html>
<head>
<script language="javascript">
var a=9;
var b=9;
if(a==b){
window.alert('ok'); //ok
}
var a=9;
var b='9';
if(a==b){
window.alert('ok');
}else{
window.alert('no');
}
var a=9;
var b="abc";
if(a==b){
window.alert('ok');
}else{
window.alert('no');
}
var a=97;
var b="a";
if(a==b){
window.alert('ok');
}else{
window.alert('no');
}
</script>
</head>
<body></body>
</html>
介紹兩個函數:window.prompt() 和 document.writeln()
prompt() 方法用於顯示可提示用戶進行輸入的對話框。
語法
prompt(text,defaultText)參數 text 可選。表示要在對話框中顯示的純文本(而不是 HTML 格式的文本)。
參數defaultText 可選。表示默認的輸入文本。
write() 方法可向文檔寫入 HTML 表達式或 JavaScript 代碼。
可列出多個參數(exp1,exp2,exp3,...) ,它們將按順序被追加到文檔中。
writeln() 方法與 write() 方法作用相同,外加可在每個表達式後寫一個換行符。
<html>
<head>
<script language="javascript">
var val1=window.prompt("請輸入值","65");
var val2=window.prompt("請再輸入值");
document.writeln("你的輸入是"+(parseFloat (val1)+parseFloat (val2)));
</script>
</head>
<body></body>
</html>
<html>
<head>
<script language="javascript">
/*請編寫一個程序,該程序可以接收兩個數(可以是整數,也可是小數),並判讀兩個數是大於?小於?還是等於?*/
var num1=window.prompt("請輸入第一個數");
var num2=window.prompt("請輸入第二個數");
num1=parseFloat(num1);
num2=parseFloat(num2);
if(num1>num2){
window.alert("num1>num2");
}else if(num1<num2){
window.alert("num1<num2");
}else{
window.alert("num1=num2");
}
</script>
</head>
<body></body>
</html>
邏輯運算符
用於判斷邏輯關係的運算符- && 與
- || 或
- ! 非
var a=90;
var b=90;
if(a==b||a>8){
window.alert("ok1");
}
b--;
if(a>b && a>45){
window.alert("ok2");
}
if(!(a<=b)){
window.alert("ok3");
}
在邏輯運算中,0、" "、false、null、undefined、NaN 均表示 false
下面的代碼好好看看
<html>
<head>
<script language="javascript">
var a=90;
var b=9;
if(a>b && a>345){
window.alert('ok');
}else{
window.alert('no');
}
//如果是下面的情況,最後a爲91
if(a>b && ++a>345){
window.alert('ok');
}else{
window.alert('no');
}
window.alert("a="+a);
//如果是下面的情況,最後a爲90
var a=90;
var b=9;
// a<b不成立,因爲是&&,直接就短路了,不再執行&&後面的語句了,
//直接就window.alert("no"); 上面的在a>b成立的情況下,纔去執行&&後面的語句。
if(a<b && ++a>345){
window.alert('ok');
}else{
window.alert('no');
}
window.alert("a="+a);
//另外的情況
var a=90;
var b=9;
//在 && 左半部分爲真的情況下,然後a先 a>90,然後在a++,即是先判斷,再加加
if(a>b && a++>90){
window.alert('ok90');
}else{
window.alert('no90');
}
window.alert("a="+a);
</script>
</head>
<body></body>
</html>
下面具體說一下上述代碼中所說的短路,其實和其他語言(C,C++等)裏的都一樣
- 邏輯與&&
- 邏輯或||
結論: || 將返回第一個不爲false那個值(對象亦可),或者是返回最後一個值(如果全部都是false的話)
<html>
<head>
<script language="javascript">
var a=true;
var b=false;
window.alert(a||b);
//究竟返回什麼
// || 將返回第一個不爲false那個值(對象亦可),或者是返回最後一個值(如果全部都是false的話)
var a=4;
var b=9;
window.alert(a||b); //返回4
//**********
var a=0;
var b=9;
window.alert(a||b); //返回9
//**********
var a=0;
var b="";
var d=false;
window.alert(a||b||d); //返回false
//**********
//返回對象
var a=0;
var b="";
var obj=new Object();
var apple= a||b||obj;
window.alert(typeof apple);
</script>
</head>
<body></body>
</html>
二進制——原碼、反碼、補碼
基本概念:網上對原碼、反碼、補碼的解釋過於複雜,這裏精簡幾句話。
對於有符號的而言:
- 二進制的最高位是符號位:0表示正數,1表示負數
- 正數的原碼、反碼、補碼都一樣
- 負數的反碼=它的原碼符號位不變,其它位取反(0->1,1->0)
- 負數的補碼=它的反碼+1
- 0的反碼,補碼都是0
- javascript沒有無符號數,換言之,javascript中的數都是有符號的
- 在計算機運算的時候,都是以補碼的方式來運算的
反碼 11111111 11111011
補碼 11111111 11111100
-4>>2 把最後的兩個0移走,然後面前用11補上
即是 11111111 11111111
轉成 反碼 11111111 11111110 //減一
原碼 10000000 00000001 //符號位不變,全部取反
既是 -1
var a=4>>2; 結果是1
var b=-4>>2; 結果是-1
<html>
<head>
<script language="javascript">
var a=4>>2;
window.alert(a); //顯示1
var a=-4>>2;
window.alert(a); //顯示-1
</script>
</head>
<body></body>
</html>