JavaScript运算符

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值