javaScript系列---【js运算符类型】

运算符

1.算术运算符

+ -  * / %  ++  --

// 规律:不同数据类型在进行运算的时候会尽量转为数字类型(内置帮我们进行转换,并且符合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

 

  • ++

    • 首先++分为++在前和++在后,不管++在前还是++在后都表示自身加1,++在后先进行运算然后再自身加1,++在前是先自身加1,再进行运算

  • --

    • 首先--分为--在前和--在后,不管--在前还是--在后都表示自身减1,--在后先进行运算然后再自身减1,--在前是先自身减1,再进行运算

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

 

2.赋值运算符

= :赋值运算符 将等号右边的值赋值给左边
+=
-=
/=:
%=:

3.比较运算符

比较运算符返回结果是布尔值

普通比较
>  >= < <=  ==(等于)  !=
  1. 不同数据类型进行比较,会先尽量转为数字再进行比较

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);

 

4.逻辑运算符

1.自动进行布尔值的判断

2.只有0 NaN null undefined "" 是假的其它的都是真的

&&  与(且)  都真才为真,一假即假 
||  或        都假才假,一真即真
!  非        取反
//! 现将当前这个数据转为布尔值然后在进行取反(返回值是布尔值)
  1. 其它类型转为布尔

    Boolean(数据)= !!数据(先转为布尔值->取反再取反)

5.三目运算符

三目运算符又称之为问号冒号表达式

条件?条件成立执行的代码段:条件不成立执行的代码段;

  var score  = 70;
 score > 80 ? console.log("我考试及格了"):console.log("中午不吃饭了~~~");

6.运算符的优先级及结合性

算术运算符 先 * / % 最后+ - 要提高运算的优先级加()

  • (5 + 1) * 3

比较运算符不可以连写

  • 10 > 5 > 2 =>false -> true > 2 -> 1 > 2 => false

  •  

原文地址:https://www.cnblogs.com/chenhaiyun/p/14526614.html