JS--JavaScript表达式和运算符(结合性、优先级)详解

JavaScript表达式

表达式指可以运算,且必须返回一个值的式子。
表达式一般由值、变量、运算符、子表达式构成。

最简单的表达式可以是一个简单的值或变量:

1		//数字表达式
"a"	//字符常表达式
true	//布尔值表达式
a		//变量表达式

值表达式的返回值是它本身,变量表达式的返回值为变量存储或引用的值。
把这些简单的表达式合并为一个复杂的表达式,那么连接这些表达式的符号就是运算符。

JavaScript运算符

运算符就是根据特定算法定义的执行运算的命令。
示例:a,b,c为变量表达式,而1和2是指表达式。而“=”和“+”是连接这些简单表达式的运算符。

var a = 1, b = 2;
var c = a + b;

运算符一般使用符号来表示,如“+” “-” “/” “=” “|”等,也有些运算符使用关键字来表示,如delete、void等。

作用于运算符的子表达式被称为操作数。根据操作数的个数,JavaScript运算符可以分为如下3种类型:

  • 一元运算符:
    一个运算符能够结合一个操作数,把一个操作数运算后转换为另一个操作数。如“++”,“- -”等。
  • 二元运算符:
    一个运算符能够结合两个操作数,形成一个复杂的表达式。大部分运算符都属于二元运算符。
  • 三元运算符:
    一个运算符能够结合三个操作数,把三个操作数合并为一个表达式,最后返回一个值。JavaScript仅定义了一个三元运算符( ? :),它相当于条件语句。
JavaScript运算符表
分类运算符操作数类型运算顺序运算方向说明
算数运算符+数值12(加法)将两个数相加
++数值14(自增)将表示数值的变量加1(可以返回新值或旧值)
-数值12(减法)将两个数相减
- -数值14(自减)将表示数值的变量减1(可以返回新值或旧值)
-数字14一元求负运算
+数字14一元求正运算
*数值13(乘法)将两个数相乘
/数值13(除法)将两个数相除
%数值13(求余)求两个数相除的余数
字符串运算符+字符串12(字符串加法)连接两个字符串
+=字符串2连接两个字符串,并将结果赋给第一个字符串
逻辑运算符&&布尔值5(逻辑与)如果两个操作数都是真,则返回真,否则返回假
在这里插入图片描述布尔值4(逻辑或)如果两个操作数都是假,则返回假,否则返回真
布尔值14(逻辑非)如果其单一操作为真,则返回假,否则返回真
位运算符&整数8(按位与)如果两个操作数对应位只有一个1,则在该位返回1
^整数7(按位异或)如果两个操作数对应位只有一个1,则在该位返回1
在这里插入图片描述整数6(按位或)如果两个操作数对应位都是0,则在该位返回0
~整数14(求反)按位求反
<<整数11(左移)将第一操作数的二进制形式的每一位向左移位,所位移的数目由第二操作数指定。右面的空位补0
>>整数11(算数右移)将第一操作数的二进制形式的每一位向右位移,所位移的数目由第二操作数指定。忽略被移出的位
>>>整数11(逻辑右移)将第一操作数的二进制形式的每一位向右移位,所位移的数目由第二操作数指定。忽略被移出的位,左面的空位补0
赋值运算符=标识符,任意2将第二操作数的值赋给第一操作数
+=标识符,任意2将两个数相加,并将和赋给第一个数
-=标识符,任意2将两个数相减,并将差赋给第一个数
*=标识符,任意2将两个数相乘,并将积赋给第一个数
/=标识符,任意2将两个数相除,并将商赋给第一个数
%=标识符,任意2计算两个数相除的余数,并将余数赋给第一个数
&=标识符,任意2执行按位与,并将结果赋给第一个操作数
^=标识符,任意2执行按位异或,并将结果赋给第一个操作数
在这里插入图片描述标识符,任意2执行按位异或,并将结果赋给第一个操作数
赋值运算符<<=标识符,任意2执行左移,并将结果赋给第一个操作数
>>=标识符,任意2执行算术右移,并将结果赋给第一个操作数
>>>=标识符,任意2执行逻辑右移,并将结果赋给第一个操作数
比较运算符==任意9如果操作数相等,则返回真
===任意9如果操作数完全相同,则返回真
!=任意9如果操作数不相等,则返回真
!==任意9如果操作数不完全相同,则返回真
>数值或字符串10如果左操作数大于右操作数,则返回真
>=数值或字符串10如果左操作数大于等于右操作数,则返回真
<数值或字符串10如果左操作数小于右操作数,则返回真
<=数值或字符串10如果左操作数小于等于右操作数,则返回真
特殊运算符?:布尔值,任意3执行一个简单的"if…else"语句
,(逗号)任意1计算两个表达式,返回第二个表达式的值
delete属性标识14允许删除一个对象的属性或数组中指定的元素
new类型,参数15允许创建一个用户自定义对象类型或内建对象类型的实例
特殊运算符typeof任意14返回一个字符串,表明未计算的操作数的数据类型
instanceof对象,类型10检查对象的类型
in字符串,对象10检查一个属性是否存在
特殊运算符void任意14该运算符指定了要计算一个表达式但不返回值
. (点)对象,标识符15属性存取
[]数组,整数15数组下标
()函数,参数15函数调用
条件运算符

语法格式:

condition ? expr1 : expr2

condition是一个逻辑表达式,当其为true时,则执行expr1表达式,否则执行expr2表达式。
条件运算符可以拆分为条件结构:

if(condition)
	expr1;
else
	expr2;

示例:借助三元运算符初始化变量为"no value",而不是默认的undefined.

name = name ? name : "no value";
alert(name);
逗号运算符

逗号运算符(,)能够依次计算两个操作数并返回第2个操作数的值。

示例:先定义一个数组a[],然后再一个for循环内利用逗号运算符同时计算两个变量值的变化。这时可以看到输出的数组都是位于二维数组的对角线上。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			var a = [];
			for(var i = 0, j = 10; i < 10; i++, j--){
				a[i,j] = i + j;
				document.write(" a[" + i + "," + "]= " + a[i,j]);
			}
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

void运算符

void运算符指定要计算一个表达式,但是不返回值。语法如下:

javascript:void (expression)
javascript:void expression

expression时一个要计算的JavaScript标准的表达式。表达式外侧的圆括号是可选的。例如:

<a href="javascript:void(document.forms[0].submit())">提交表单</a>

上面这个代码创建了一个超链接,当用户单击时不会发生任何事。当用户单击超链接时,void(0)计算为0,但在JavaScript上没有任何效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值