在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符。在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些 *说到了运算符,就不得不说运算符的优先级。下面我来列一下这些运算符的优先级(优先级排列由高到低): ( ) * 括号 !、-、++、-- * 逻辑运算符NOT、算术运算符的符号、递增和递减 *、/、% * 算术运算符的乘、除法和求余数 +、- * 算术运算符的加法和减法 <<、>>、>>>、 * 位运算符左移、右移、无符号右移 >、>=、<、<= * 比较运算符大于、大于等于、小于和小于等于 ==、!= * 比较运算符等于和不等于 & * 位运算符AND ^ * 位运算符XOR | * 位运算符OR && * 逻辑运算符AND || * 逻辑运算符OR ?: * 条件运算符(三元表达式中常用) =、op= * 赋值运算符 * *上面是三种运算符在js中优先级。由此我们可以确定的一点是:赋值运算的优先级最低,这个小点挺重要的。 * *说一下算术运算符: * * - 负号 * ++ 递增运算、 * -- 递减运算 * * 乘法 * / 除法 * % 求余数 * + 加法或字符串连接 * - 减法 * *递增和递减可以放在变量前面或者后面,放在前面则会立即改变变量;放在变量后面则会在运行表达式之后才改变。 * *然后是逻辑与比较运算符: * *比较运算符: * == 等于 * != 不等于 * < 小于 * > 大于 * < 小于等于 * >= 大于等于 * *逻辑运算符: * ! NOT非,返回操作数相反的值,true成false,false成true * && AND与,连接的两个操作数都为true,表达式结果位true * || OR或,连接的两个操作数,任何一个位true,表达式结果为true * *最后是位运算符: * 关于位运算符,我的接触不多。项目中基本没有接触过,但是本身自己看书时候,接触了一些。我写的关于位运算的东西, *如果有不对的地方,希望各位进行指正。 * JavaScript支持位运算符,通过这些运算符能够进行二进制值的运算。首先来列举一下这些位运算符: * ~ NOT运算 * << 左移运算 * >> 右移运算 * >>> 无符号右移 * & AND运算 * ^ XOR运算 * | OR运算 * *稍微的解释一下: * * <<:左移运算,赋值A=3,A的二进制为11B,则A<<2=1100B,换算成10进制也就是12. * >>:右移运算,赋值C=2,C的二进制为10B,则C>>1=1B,换算成10进制,也就是1. * >>>:无符号右移运算,赋值D=6,D的二进制也就是1000B,D>>>2=0010,换算成10进制也就是2. * 上面三种位运算都用于高度优化的代码,很难遇到。 * ~:NOT运算,赋值 E=1,E的二进制为01B,则~E=-2;这种运算说白了就是对数字求负然后减1,这种规律适用于10进制。 * &:AND运算,赋值 F=3,G=10,F的二进制为11B,G的二进制为1010,在进行AND判断时,最直观的方式就是上下排列,例如 * F:0000011 * G:0001010 * 结果:0000010//2 * 运算的规律为: 1对1,得1 * 1对0,得0 * 0对0,得0 * * ^:XOR运算,赋值 H=13,I=7,H得二进制为1101B,I得二进制为111,上下排列 * H:1101 * I:0111 * 结果为:1010//10 * 运算规律为: 1对1,得0 * 1对0,得1 * 0对0,得0 * * |:OR运算,赋值 J=14,K=18,J得二进制为1110,K得二进制为10010,上下排列 * J: 01110 * K: 10010 * 结果为: 11110//30 * *本来想把运算过后进行得隐式转换也写出来得,但是想一想下次写数据类型及转换得时候写出来比较好。 *如果我有哪里写错了,希望您指出,我会改正。这些东西也许对你来说很简单,但是路是一步步走的,慢慢来,不急。 * * * */