运算符也叫操作符;
一 加法运算符:
1 格式:Number1+Number2
var res=1+1;
console.log(res);
var num1=10;
var num2=20;
var res2=num1+num2;
console.log(res2);
2 非Number类型的值进行运算时,会将这些值转化为Number然后再计算
var res=true+100
console.log(res);
var res=true+true;
console.log(res);
var res=null+10;
console.log(res);
3 任何值和NaN做运算都得NaN
var result=1+NaN;
console.log(result);
4 任何值和数字串做加法运算,都会转化为字符串,然后再和字符串做拼串操作
var result="10+123";
console.log(result);//10+123
result=1+true;
console.log(result);// 1true
像减法运算和乘法运算都与加法差不多,知识符号变了。
二: 除法运算符
三 : 取余运算
1 格式:Number1 % Number2
var res=10 % 3;
console.log(res);
var res=10 % 3.5;
console.log(res);// 3
2 n 等于0 结果返回NaN
var res=100 % 0;
console.log(res);// NaN
3 m 等于0 结果为0
var res=0 % 10;
console.log(res);
4 m>n 正常求余 如:8 % 3=2
var res=9 % 2;
console.log(res);// 1
5 m 四 一元运算符: 五 赋值运算符: 1 格式:变量=数据 2 赋值运算左边只能是变量 还有另些算法 六 自减、自增运算符: 2 先用后变 3先变后用 七 逻辑运算符: 1 与运算(&&): 只有当条件A和条件B同时成立,结果才为true,其余结果都为false。 简称:一假全假。 对于非Boolean类型数值,逻辑与会自动将其转化为Boolean类型来判断。 如果条件A不成立,则返回条件A的数值本身 如果条件A成立,不管条件B成不成立都会返回条件B数值本身。如下所示: 2 或运算(||): 当条件A或条件B只要有一个成立(也包括条件AB都成立) 结果为true,只有条件AB都不成立时,结果为false。 简称:一真为真。 对于非Boolean类型数值,逻辑与会自动将其转化为Boolean类型来判断。 如果条件A不成立,不管条件B成不成立都会返回条件B数值本身 如果条件A成立,则返回条件A的数值本身 。如下所示: 3 非运算(!):真的是假,假的是真 八 关系运算符: 注意事项: 1 对于非数值进行比较时,会将其他转化为数值然后再比较 2 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码 八 逗号运算符: 运算过程是先表达式1、再算表达式2、依次算到表达式n; 整个逗号表达式的值是最后一个表达式的值。 九 三目运算符: 1 格式:条件表达式?语句1:语句2; 2 求值规则:如果条件表达式为true,则执行语句1,并返回执行结果; 如果条件表达式为false,则执行语句2,并返回执行结果。 3 注意点: 条件运算符?和:是一对运算符,不能分开单独使用; 如果条件的表达式的求职结果是一个非布尔值,会将其转化 为布尔值运算。 var res=10%12;
console.log(res);
对于非Number类型的值,会将先转换为Number,然后再运算
var bool=true;
var res=+bool;
console.log(res);//1
var str="123";
res=+str;
console.log(res);//123
var str2="123abc";
res=+str2;
console.log(res);//NaN
var temp=null;
res=+temp;
console.log(res);// 0
var num=100;
var value=num;
num=60;
var bool=100;
console.log(bool);
1 无论运算符号在前还是在后,变量在自身基础上都会改变
var num=1;
num++; // num=num+1 num+=1
console.log(num);// 2
num=1;
num--; // num-=1
console.log(num);// 0
num=1;
--num;
console.log(num);// 0
var a,b;
a=20;
b=30;
var res=(a++)+(b++);
console.log(res, a, b);// 50 21 31
a=10;
b=20;
res=(a--) +(b--);
console.log(res, a, b);// 30 9 20
var a,b;
a=10;
b=20;
res=(++a) +(++b);
console.log(res, a, b);// 32 11 21
a=10;
b=20;
res=(--a) +(--b);
console.log(res, a, b);// 28 9 19
var result="123" && "abc";
console.log(result);// abc
var result="123" && 0;
console.log(result);// 0
var result=null && 0;
console.log(result);// null
var result=null || 0;
console.log(result);//0
var result="123" || "abc";
console.log(result);//123
var result="123" || 0;
console.log(result);// 123
var bool1=true;
var res1=!bool1;
console.log(res1);//false
var bool2=true;
var res=!!bool2;
console.log(res);// true
var a,b;
a=100;
b=100;
console.log(a > b);// false
console.log(a < b);// false
console.log(a >= b);//true
console.log(a <= b);//true
console.log(a == b);//true
console.log(a === b);//true
console.log(a != b);//false
console.log(1 > false);// true
console.log(1 > true);// false
console.log(1>'10');// false
console.log(1 > null);// true
console.log('a' > 'b');// false
console.log('abc' < 'abd');// true
console.log('你' < '我');
3 null undefined NaN 比较
console.log(null == 0);// false
console.log(undefined == 0);// false
console.log(NaN == NaN);// false
var a,b,c,d;
d=(a=1+1,b=3*4,c=10/2);
console.log(d);// 5
var a,b;
b=(a=3,--a, a*5);
console.log(a, b);// 2 10
null?alert("语句一") :alert("语句二")
"abc"?alert("语句一") :alert("语句二")