JavaScript语法详解(五)____运算符

一.赋值运算符“=”

1)将一个常量赋给变量

2)将一个变量的值赋给另一个变量

3)支持连续赋值,通过使用多个赋值运算符,可以一次给多个变量赋值。

<script type="text/javascript">
    var str = 'javascript';
    var str2 = str;
    var a = b = c = d = 7;
    document.write(str+'<br>'+str2+'<br/>'+a+'<br/>'+b+'<br/>'+c+'<br/>'+d);
</script>

输出:

javascript
javascript
7
7
7
7

二.算术运算符

‘+’,’-‘,’*‘,’/','%','++,'--'(加减乘除、求余,自加,自减,如果要完成乘方、开方等运算可借助于Math类的方法完成复杂的数学运算)

’-‘除了可以作为减法运算符外,还可以作为求负运算符

’+‘除作为加法运算符外,还可以作为字符串的连接运算符

三.位运算符

&:按位与

|:按位或

~:按位非

^:按位异或

<<:左位移

>>:右位移

>>>:无符号右位移

<script type="text/javascript">
    document.write((5 & 9) + '<br/>' + (5 | 9) + '<br/>' + (5 >> 2 )+ '<br/>' + (5 << 2));
</script>
输出:

1          (5&9)

13        (5|9)

1         ( 5>>2)

20       ( 5<<2)

注意:无符号右移与右移相似,右移运算后左边以操作数二进制码的最高位补齐(参见补码),而无符号右移运算后左边以0补齐

四.加强的赋值运算符

+=  :x+=y 相当于x=x+y,下面类同

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

>>>=

五.比较运算符

>

>=

<

<=

!=     :不等于

==     :等于

!==    :严格不等于

===    :严格等于

严格等于和等于的区别:等于支持自动类型转换,严格等于不支持自动类型转换。(严格不等于和不等于的区别同上)

<script type="text/javascript">
    document.write((5=='5')+ '<br/>' + (5 ==='5'));
</script>
输出:

true

false

由于自动类型转5等于’5‘返回true,5严格等于’5‘返回false

注意:比较运算符不仅可以在数值之间进行比较,也可以在字符串之间进行比较。字符串的比较规则是按字母的Unicode值进行比较。

<script type="text/javascript">
    document.write(('z' > 'abc') + '<br/>');
    document.write(('abc' > 'XYZ') + '<br/>');
    document.write(('abc' > 'abb') + '<br/>');

</script>
输出:

true

true

true

六.逻辑运算符

&&

||

Javascript虽然没有提供&:不短路与,|:不短路或,^:异或等运算符,但实际上我们依然可以将它们当做逻辑运算符使用

不短路逻辑运算符与逻辑运算符的区别:

1)使用不短路逻辑或

<script type="text/javascript">
    var a = 5;
    var b = 10;
    if(a>4|b++>10)
        document.write(a + '<br/>' + b);
</script>
输出:

5

11

2)使用逻辑或

<script type="text/javascript">
    var a = 5;
    var b = 10;
    if(a>4||b++>10)
        document.write(a + '<br/>' + b);
</script>

输出;

5

10

将(|)改为(||)程序最后输出b的值不同,因为对于短路逻辑或(||)而言,如果第一个操作数为true,将不再对第二个操作数求职,直接返回true,不会计算b++>10这个逻辑表达式,因而没有执行b++的机会。而不短路逻辑或(|)总是执行前后两个操作数。

&与&&的区别:&总会计算前后两个操作数,&&先计算左边的操作数,如果为false,直接返回false不再计算右边的操作数。

七.三目运算符

(expression)?if-true-statement:if-false-satement;

<script type="text/javascript">
    (5>3)?document.write("5大于3"):document.write("5不大于3");
</script>
输出:

5大于3

三目运算符可以作为if else的精简写法,但是三目运算符不支持语句块,if-true-statement和if-false-satement都只能是单条语句。

八.逗号运算符

逗号运算符允许多个表达式排在一起,整个表达式返回最右边表达式的值。

<script type="text/javascript">
    var a, b, c, d;
    a = (b = 5, c = 7, d = 9);
    document.write('a=' + a + '<br/>');
    document.write('b=' + b + '<br/>');
    document.write('c=' + c + '<br/>');
    document.write('d=' + d + '<br/>');
</script>
输出:

a=9

b=5

c=7

d=9

九.void运算符

void运动算符用于强制指定表达式不会返回值

<script type="text/javascript">
    var a, b, c, d;
    a = void(b = 5, c = 7, d = 9);
    document.write('a=' + a + '<br/>');
    document.write('b=' + b + '<br/>');
    document.write('c=' + c + '<br/>');
    document.write('d=' + d + '<br/>');
</script>

输出:

a=undefined

b=5

c=7

d=9

十.typeof和instanceof运算符

typeof运算符用于判断某个变量的数据类型,它既可以作为函数使用,例如typeof(a)可以返回变量a的数据类型,也可以作为一个运算符来使用,

typeof a 也可以返回变量a的数据类型。

不同类型的变量,使用typeof返回值如下:

undefined值 :undefined

null:object

布尔型值:boolean

数字型值:number

字符串值:string

对象:object

函数:function

<script type="text/javascript">
    var a = 5;
    var b = true;
    var str = 'hello world';
    document.write('a ' + typeof a + '<br/>');
    document.write('b ' + typeof(b) + '<br/>');
    document.write('str ' + typeof str + '<br/>');
    document.write('d ' + typeof d + '<br/>');
</script>
输出:

a number
b boolean
str string
d undefined

instanceof用于判断某个变量是否为指定类的实例,如果是返回true,否则返回false

<script type="text/javascript">
    var a = [0, 1, 3];
    document.write((a instanceof Array)+'<br/>');
    document.write((a instanceof Object) + '<br/>');
    document.write((a instanceof Number) + '<br/>');
    document.write((a instanceof String) + '<br/>');
</script>
输出:

true

true

false

false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值