1,js操作符是指ECMA-262中描述的一组用于操作数据值的操作符。这些操作符包括:算术操作符,位操作符,关系操作符和相等操作符。话说,什么是ECMA-262呢?我找了下资料,是这么说的:ECMAScript是一种由欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的扩展。
2,递增递减操作符 js中的递增递减操作符直接抄了C语言,有两个版本:前置型和后置型。
var a=10;
var b=10
++a;
var c=--b;
window.console.info("变量a的值:"+a);
window.console.info("变量c的值:"+c);
前置递增递减和后置递增递减的区别:(重要的事说三遍)
后置递增递减操作是在包含他们的语句被求值之后才执行的。
后置递增递减操作是在包含他们的语句被求值之后才执行的。
后置递增递减操作是在包含他们的语句被求值之后才执行的。
var d=100;
var e=10;
var f=--d+e;
window.console.info("变量f的值:"+f);
var d1=100;
var e1=10;
var f1=d1--+e1;
window.console.info("变量f1的值:"+f1);
3,一元加减操作符 这个和数学书上一样。
var g=50;
var h=g+50;
var i=+g;
window.console.info("变量h的值:"+h);
window.console.info("变量i的值:"+i);
4,位操作符 位操作符用于最基本的层次上,即按照内存中表示数值的位来操作数值。
资料中的一段话是这么说的:
“对于有符号的证书来说,32位中的前31位用于表示整数的值。第32位表示数值的符号,0表示正,1表示负。 符号位的值决定了其他位数值的格式,其中,正数以纯二进制的格式存储,31位中的每一位都表示2的幂,没有用到的位用0填充。负数同样以二进制码存储,但是使用的格式是二进制补码。”
二进制补码的计算:
第一步:求该数绝对值的二进制码。
第二部:求二进制反码,即0和1互换。
第三部:得到的二进制反码加1;
常见的位操作:
a,按位非(NOT ~)
var j=3179;
var k=~j;
window.console.info("变量j的二进制值:"+ h.toString(2));
window.console.info("变量k的值:"+k);
b,按位与(AND &)
var l=4582;
var m=2658;
var n=l&m;
window.console.info("变量l的二进制值:"+ l.toString(2));
window.console.info("变量m的二进制值:"+ m.toString(2));
window.console.info("变量n的二进制值:"+ n.toString(2));
window.console.info("变量n的值:"+n);
c,按位或(OR |)
d,按位异或(XOR ^)
e,位移(左移:<< 右移:>>)。;例如,将数值2进行左移5,得到的结果是64;
var o=2;
var p=2<<5;
window.console.info("变量p的值:"+p);
5,布尔操作符 与(ANF)或(OR)非(NOT)
这个比较简单了,至于对string,object等类型进行布尔操作运算,具体的规则可以通过查阅资料进行了解。
6,乘性操作符 乘(*),除(/),求模(%)。
似乎这个也蛮简单的→ →。
7,加性操作符 除了进行基础的数值相加之外,还能进行字符串的拼接。
var q=23;
var r=58;
var messageS="23和58相加的结果是:"+q+r;
window.console.info("变量messageS的值:"+messageS);
var q1=23;
var r1=58;
var messageS1="23和58相加的结果是:"+(q+r);
window.console.info("变量messageS1的值:"+messageS1);
上面的例子中,messageS的值为2358,而messageS1的值为:81;
8,关系操作符 大于(>),小于(<),小于等于(<=),大于等于(>=)
数值比较大小很简单。非数值比较大小一般来说将其转换成数值再进行比较。
9,相等操作符
相等和不相等比较简单。就是数值对比(非数值型需要强转)。
全等和不全等则没这么简单,除了数值上的对比之外,还要对比数据类型。
10.条件操作符
语法规则:variable = boolean_expression?true_value:false_value;
var num1=1;
var num2=2;
var maxNum = (num1>num2)?num1:num2;
window.console.info("变量maxNum的值:"+maxNum);
11,赋值操作符
最基础的赋值操作符就是等于(=)。
复杂一些的比如复合赋值操作:
var s=100;
s+=199;
window.console.info("变量s的值:"+s);
这里的“s+=199”等价于“s=s+199”。
本节源码下载地址:JavaScript学习笔记(2):操作符