js的运算符(算数运算符/赋值运算符/逻辑运算符/三元运算符)

责编:menVScode 2017-08-22 23:50 阅读(801)

        1. 算数运算符(+,-,*,/,++,--)

        +:arg1+arg2,左右两边的值要求是number类型,如果其中一个是字符串,那么 '+'的作用是拼接符,拼接字符串。

var a = 3+true;
alert(a) //4

        布尔值与number类型的值相加,如:true+3,结果为4;算数运算符要求两边的值是number类型,如果不是的话会进行隐式转换,内部调用了Number(true)方法。

var a = '4'*1+6;
alert(a) //10

        在算数运算符中,'+' 不仅能当作拼接符,能隐式转换,也有优先级:先乘除后加减。先做乘法的时候,将字符串类型的4隐式转换成number类型。  

        ++:增一    --:自减一

var a = 10;
alert(a++); // 10,++放在后面,先输出a,在自增一
alert(a); // 11
//alert(++a); // 11,++放在前面,先自增一,然后再赋值给a

        %:去余

var a = arg1 % agr2;

        首先要保证arg1和arg2是number类型,不是的话就进行隐式转换,转换不了就直接报错。

        arg2大于arg1:结果为arg1;

        arg2下小于arg1:把arg1去整出arg2,剩余的值就是取余的值;

         arg2等于arg1:结果为0;


        2. 赋值运算符(=,+=,-=,*=,/=,%=)

var a=10;
a+=5; //等同于 a=a+5;
console.log(a); //15
var b=4;
b/=2; //等同于 b=b/2;
console.log(b); //2

        

        3. 比较运算符(==,===!=,<,>,<=,>=)

       返回结果是true或者false;

         "==","==="的区别:两者都是比较内存地址, ==会将两边的值先做隐式转换;而===则不会做隐式转换。

var a = 10; //number字面量创建10
var b = '10'; //string字面量创建'10'
	     //两者的内存地址肯定不一样,当用"=="比较时,会进行隐式转换,会把两边的值转换称同一类型的。
console.log(a===b);
//"==="比较时,不会做隐式转换

        

        4、逻辑运算器(||,&&,!)逻辑或、逻辑与、逻辑非

        逻辑或 ||:只要有一项表达式成立,整体结果就为true;

        逻辑与 &&:只要有一项表达式不成立,整体结果就为false;

        逻辑非!:取反;


        5、三元运算符(条件?结果1:结果2)

condition ? arg1 : arg2

        condition表达式成立,结果为arg1;不成立,结果为arg2。

标签: 运算符 js
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码