+ - * / % ++ --
// 规律:不同数据类型在进行运算的时候会尽量转为数字类型(内置帮我们进行转换,并且符合Number的规律)
// 引用数据类型转为数字,先内置调用toString()方法,然后再去转为数字
// +
// 1.+ 号两边都是数字 表示加法
// 2.如果一边是字符串就会将另一边也转为字符串进行拼接
// 3.两边都不是字符串,如果不是数字会尽量转为数字进行运算(符合Number的规律)
// 4.一旦遇到引用数据类型,会先将引用数据类型先转为字符串(内置调用toString()方法)然后再进行运算
// +
console.log(100+100);//200
console.log(100+200+"1");//3001
console.log(100+{});//100[object Object]
console.log(100+true);//101
console.log(100+null);//100
console.log(100+undefined);//100 + NaN ->NaN
console.log(null + []);//"null" =>null + "" => "null"
console.log([]+{}); //[object Object]
// -
console.log(10-10);//0
console.log(10-"5");//5
console.log(true-"5");//-4
console.log(true-[]);//1
console.log(null - undefined); //NaN
// *
console.log(100 * [10]); //1000
console.log(100 * {}); // 100 * [object Object] => 100 * NaN => NaN
// /
console.log(100/0);//Infinity
console.log(true /null);//Infinity
console.log([10]/2); // 5
// % 取模 取余
console.log(10 % 2); //0
console.log("100" % 2); //0
console.log("100" % 3); //1
console.log("100" % {}); //NaN
var x = 2;
// 5
// 2 + 3 + 5 - 5 - 7 + 6 + 6 => 10
console.log(x++ + x++ + ++x - x++ - ++x + --x + x--);
console.log(x);// 5
= :赋值运算符 将等号右边的值赋值给左边
+=:
-=:
/=:
%=:
比较运算符返回结果是布尔值
> >= < <= ==(等于) !=
console.log(10>20);
console.log(10>"2");
console.log(10>"20");
console.log(true > null);//true
console.log(10>"abc");//false
2.字符串进行比较首先是按位进行比较(只要有一位出结果了后边的就不再比较了),按照ASCII值进行比较
console.log("80">"200");//true
console.log("a">"Z");//true
console.log("aBCdklasjdklasjdlka">"Zdasdasdasaaaaaaaa");//true
console.log("ab">"acd");//false
3.null等于undefined 但是null和undefined与其它数据都不相等
console.log(null == undefined);
=== (绝对等于) !== (绝对不等于)
1.不同数据类型一定不相等
console.log(true === 1);
console.log("100" === 100);
&& 与
|| 或
! 非
三目运算符又称之为问号冒号表达式
条件?条件成立执行的代码段:条件不成立执行的代码段;
算术运算符 先 * / % 最后+ - 要提高运算的优先级加()
比较运算符不可以连写
// 隐式转换
// 1.算术运算符
// + - * / %
// ++ --
var str = "10";
str++;
console.log(str);
// 2.比较运算符
// > < == >= <=
// 3.! 先转为布尔值
作用:判断当前数据是否是一个数字,不是一个数字返回true,是一个数字返回false; (先将这个数据转为数字类型并且符合Number的规律)
console.log(isNaN(100)); //false
console.log(isNaN("100.23")); //false
console.log(isNaN("100px")); //true
原文:https://www.cnblogs.com/mzxj/p/14526234.html