首页 > 语言 > JavaScript > 正文

javascript运算符语法全面概述

2024-05-06 14:54:43
字体:
来源:转载
供稿:网友

前面的话

javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少。运算符始终都遵循着一些固定语法,只有了解并掌握这些内容,才能正确使用运算符。本文将主要介绍javascript运算符的语法概述

操作数个数  

javascript的运算符总共有46个,如果根据其操作数的个数进行分类,则大多数是二元运算符(binary operator),它们的操作数都是两个,它们将两个表达式合并成复杂表达式

1 + 2;true || false;

javascript中的一元运算符(unary operator)将一个表达式转换为另一个稍复杂的表达式,主要包括以下9个:

++ -- - + ~ ! delete typeof voida++;typeof true;

javascript只有一个三元运算符(ternary operator),是条件判断运算符?:,它将三个表达式合并成一个表达式

2>1 ? 2 : 1;

优先级  

运算符优先级控制着运算符的执行顺序,优先级高的运算符的执行总是先于优先级运算符低的运算符

46个运算符总共分为14级的优先级,从高到低依次是:

++ -- - + ~ ! delete typeof void * / % + - << >> >>> < <= > >= instanceof in == != === !== & ^ |&&||?:= *= /= %= += -= &= ^= |= <<= >>= >>>=,

由这14级的运算符优先级等级可以看出:

一元运算符  > 算术运算符 > 比较运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符 > 逗号运算符  

[注意]逻辑取反运算符属于一元运算符,其优先级最高

例子

!2<1&&4*3+1;

像上面这种情况就比较复杂,逐步来分解其运算顺序

先计算一元运算符!,!2;//false

//于是表达式变为false < 1 && 4*3 + 1;

计算算术运算符4*3+1;//13

//于是表达式变为false < 1 && 13;

计算比较运算符<,false<1;//true

//于是表达式变为:true && 13;//13

可以使用圆括号来强行指定运算次序

2+3*5;//17(2+3)*5;//25;

结合性  

运算符具有两种结合性,一种是从左向右结合,记号为L,一种是从右向左结合,记号为R。结合性指定了在多个具有同样优先级的运算符表达式中的运算顺序

多数运算符都具有从左向右的结合性,只有一元运算符、条件运算符和赋值运算符具有从右向左的结合性

w = x + y + z;//等价于:w = ((x + y)+ z);
w = x = y = z;//等价于:w = (x = (y = z));
q = a ? b : c ? d : e ? f : g;//等价于:q = a ? b : (c ? d : (e ? f : g));              
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选