1、JavaScript 算术运算符:
y=5,下面的表格解释了这些算术运算符:
运算符 | 描述 | 例子 | x 运算结果 | y 运算结果 |
+ | 加法 | x=y+2 | 7 | 5 |
- | 减法 | x=y-2 | 3 | 5 |
* | 乘法 | x=y*2 | 10 | 5 |
/ | 除法 | x=y/2 | 2.5 | 5 |
% | 取模(余数) | x=y%2 | 1 | 5 |
++ | 自增 | x=++y | 6 | 6 |
x=y++ | 5 | 6 | ||
-- | 自减 | x=--y | 4 | 4 |
x=y-- | 5 | 4 |
2、JavaScript 赋值运算符
赋值运算符用于给 JavaScript 变量赋值。
给定 x=10 和 y=5,下面的表格解释了赋值运算符:
运算符 | 例子 | 等同于 | 运算结果 | |
= | x=y | x=5 | ||
+= | x+=y | x=x+y | x=15 | |
-= | x-=y | x=x-y | x=5 | |
*= | x*=y | x=x*y | x=50 | |
/= | x/=y | x=x/y | x=2 | |
%= | x%=y | x=x%y | x=0 |
|
运算符 = 用于给 JavaScript 变量赋值。
算术运算符 + 用于把值加起来。
用于字符串的 + 运算符
+ 运算符用于把文本值或字符串变量加起来(连接起来)。
如需把两个或多个字符串变量连接起来,请使用 + 运算符。
实例
如需把两个或多个字符串变量连接起来,请使用 + 运算符:
txt1="What avery";
txt2="niceday";
txt3=txt1+txt2;
txt3 运算结果如下:
What a verynice day
对字符串和数字进行加法运算
两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:
实例
x=5+5;
y="5"+5;
z="Hello"+5;
x,y, 和 z 输出结果为:
10
55
Hello5
规则:如果把数字与字符串相加,结果将成为字符串!
3、比较运算符
比较运算符在逻辑语句中使用,以测定变量或值是否相等。
给定x=5,下面的表格解释了比较运算符:
运算符 | 描述 | 比较 | 返回值 |
|
== | 等于 | x==8 | false | |
x==5 | true |
| ||
=== | 绝对等于(值和类型均相等) | x==="5" | false |
|
x===5 | true | |||
!= | 不等于 | x!=8 | true | |
!== | 绝对不等于(值或类型不相等) | x!=="5" | true |
|
x!==5 | false | |||
> | 大于 | x>8 | false |
|
< | 小于 | x<8 | true | |
>= | 大于或等于 | x>=8 | false |
|
<= | 小于或等于 | x<=8 | true |
4、Window prompt() 方法
prompt()方法用于显示可提示用户进行输入的对话框。
这个方法返回用户输入的字符串。
语法
prompt(msg,defaultText)
参数 | 描述 |
text | 可选。要在对话框中显示的纯文本(而不是 HTML 格式的文本)。 |
defaultText | 可选。默认的输入文本。 |
实例
实例
显示一个提示框,询问她/他的名字,然后编写一个页面的问候:
<html>
<head>
<script>
function disp_prompt()
{
var fname=prompt("Please enter your name:","Yourname")
document.getElementById("msg").innerHTML="Greetings" + fname
}
</script>
</head>
<body>
<input type="button" οnclick="disp_prompt()"value="Display a prompt box">
<br><br>
<div id="msg"></div>
</body>
</html>
5、逻辑运算符
逻辑运算符用于测定变量或值之间的逻辑。
给定 x=6 以及 y=3,下表解释了逻辑运算符:
运算符 | 描述 | 例子 |
&& | and | (x < 10 && y > 1) 为 true |
|| | or | (x==5 || y==5) 为 false |
! | not | !(x==y) 为 true |
注意: 在逻辑运算中,0、””、false、null、undefined、NaN 均表示false
逻辑与&&
注意:if(逻辑表达式1 && 逻辑表达式2){
}
如果 逻辑表达式1 为true 则js引擎会继续执行逻辑表达式2
如果 逻辑表达式1 为false 则不会执行逻辑表达式2
逻辑或||
if(逻辑表达式1||逻辑表达式2||……){
}
只要有一个逻辑表达式为true,整个就为true
如果逻辑表达式1为真,那么逻辑表达式2就不判断了(不再执行)
如果逻辑表达式1为假,则逻辑表达式2执行
<html>
<head>
<scriptlanguage="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>
特别强调:在js中,||究竟返回什么
★★★结论:|| 将返回第一个不为false那个值(对象亦可),或者是返回最后一个值(如果全部都是false的话)
不要把它理解为布尔值,甚至返回对象
返回的结果,不一定是布尔值
<html>
<head>
<scriptlanguage="javascript">
vara=true;
varb=false;
window.alert(a||b);
//究竟返回什么
//|| 将返回第一个不为false那个值(对象亦可),或者是返回最后一个值(如果全部都是false的话)
vara=4;
varb=9;
window.alert(a||b);//为什么返回4
//**********
vara=0;
varb=9;
window.alert(a||b);//返回9
//****
vara=0;
varb="";
vard=false;
window.alert(a||b||d);//返回false
//********
//返回对象
vara=0;
varb="";
varobj=new Object();
varapple=a||b||obj;
window.alert(typeofapple);
</script>
</head>
<body></body>
</html>
6、位预算和移位运算
这个相对比较麻烦,是面试中经常最经典的考题。
js也有位运算和移位运算,其规范和java一致。
二进制——原码、反码、补码
基本概念:
网上对原码、反码、补码的解释过于复杂,这里精简几句话。
对于有符号的而言:
(1)二进制的最高位是符号位:0表示正数,1表示负数
(2)正数的原码、反码、补码都一样
(3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
(4)负数的补码=它的反码+1
(5)0的反码,补码都是0
(6)javascript没有无符号数,换言之,javascript中的数都是有符号的
(7)在计算机运算的时候,都是以补码的方式来运算的
-4 的原码 10000000 00000100
反码 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>
<scriptlanguage="javascript">
vara=4>>2;
//4 二进制 00000100 ----> 00000001
window.alert(a); //显示1
vara=-4>>2;
window.alert(a); //显示-1
</script>
</head>
<body></body>
</html>