javascript 运算符

这里写代码片一、算数运算符

  • "+"运算符:数学上的相加功能

除此之外"+"运算符也能拼接字符串 ,字符串和任何数据相加都会变成字符串。
例如:

var a = 1  + "abc";
console.log(a);//字符串的1abc
  • "-"运算符:数学上的相减功能
  • “*” 运算符: 数学上的相乘功能
  • "/"运算符:数学上的相除功能
  • “%” 运算符:数学上的取余功能
  • "++"运算符:自增运算符,当写在变量前的时候先对变量执行加1在执行本条语句,写在变量后面,先执行本条语句,在对变量进行加1。
    例如:
	 var a = 0;
	 console.log(a++);//----------返回0
	 console.log(a);//----------返回1
	 //++在后先取值,执行完本条语句后,在进行+1操作,
	 //所以第一次返回0,第二次返回1
	    var a = 0;
		console.log(++a);//----------返回1
		console.log(a);//----------返回1
		/* ++在前先对变量自身的值,进行+1操作,在执行本条语句,
		所以第一次就会返回1,第二次返回0
		*/
		var a = 1;
		var b = 2;
		console.log(a++ + ++a + b++);//---------返回6
		//console.log(a,b);//----------返回3,3
		console.log(++a + a++ + ++b);//---------返回12
		//解析:对于第一条输出:相当于1 + 3 + 2 = 6
		/*首先是a++,先取a初值为1,然后给a+1赋给自身,之后a就变成了2,
		在执行++a,++在前,先自加1在赋给a(因为前面的操作,a已经为2,
		在加1,a=3),最后b++,因为++在后,所以取b的初值2做运算,再给b+1。
		整个运算就是1+3+2=6。a最后为3,b也为3。
		*/
  • "–“运算符:自减运算符,执行方式与”++"运算符相同,只是效果是减1操作。
  • "+="运算符:使用自身变量先执行加法运算在赋值给自身
    例如:
    var a = 10;
    a += 10;//相当于a = a + 10;
    console.log(a);//---------返回20
    二、比较运算符
  • ">"运算符:数学上的大于功能
  • ">="运算符:数学上的大于等于功能
  • "<"运算符:数学上的小于功能
  • "<="运算符:数学上的小于等于功能
  • "=="运算符:比较两者的值是否相等
  • "!=“运算符:与”!="效果相反
  • "==="严格等于:
  • "!=="严格不等于:

js是弱类型语言,变量基本都是用关键字var来声明。所以在进行运算操作时,对于不同类型的数据,js会在内部进行类型转换,通过转换统一两者的数据类型,在进行运算操作。因为这个操作是隐式的自身进行的操作,因此被称为隐式类型转换。
例如:

var num = 'abc';
num++; //结果为NaN
num2 = '123';
++num; //结果为124
/*因为要对num进行++操作,js内部会调
用Number属性,先将num转换成数字类型,再运算。
之前的各种算数运算符在执行前也都会进行类型转换,
转换为数字在进行计算*/

对于双等,如果是比较原始值类型的数据,比较的是两者的原始值是否相同,例如’123’==123,会进行隐式类型转换,将字符串隐式的转换为Number类型,在对两者的值进行比较。对于引用类型,双等比较的是引用类型的地址是否相同。
例如在控制台操作如下:

//原始数据类型
var a = '123';
var b = 123;
a == b;//返回true
var a = 0;
var b = false;
a == b;//返回fasle
//引用类型的比较
var a = {};
var b = a;//给b拿到a的引用
a==b;//返回true
//b和a都指向同一个内存地址,所以会返回true
var a = {};
var b = {};
a == b;//返回false
//a与b指向的是两个不同的内存空间,所以会返回fasle;

何为严格等于?
严格等于不会进行隐式类型转换!!不会进行隐式类型转换!!严格等于除了对两者的原始值进行比较,还要对其数据类型和地址进行比较,只有都相同时,等式才会成立。
例如:

var a = '123';
var b = 123;
a === b;//返回false;
//虽然值相同,但是数据类型不相同,一个为Number一个为String。
var a = {};
var b = {};
a === b;//返回false
//虽然值相同,但是两者是不同的对象,各自的引用地址不相同。返回false
var a = {};
var b = a;
a===b;//返回true
//两者的值相同,类型相同,指向的地址也相同,返回true

三、逻辑运算符
"&&"与运算符:
其含义是两边表达式判断均为true时,才会继续执行,一旦有一个不为true,便不会执行。
截断操作:只要前面的表达式判断为flase了,后面的根本不执行。如果都是true,那么会返回后面的正确表达式的结果
"||"或运算符:
其含义是两边只要有一个为ture,就会执行后面的,并且返回的是为true的表达式的结果,如果都是false,那就返回false,并不继续往后执行。
截断操作:只要前面的表达式为true了,后面的也根本不执行。并且返回正确表达式的结果。都是false就返回false。
"!“非运算符:
取反操作,例如”==“表示等于,”!="表示不等于。
逻辑运算符也会进行隐士类型转换,会对运算符两边的表达式隐式的调用Boolean转换为布尔值再进行判断。
会被隐式转换为false的几个值:

Boolean(0); // false
Boolean(undefined); // false
Boolean(null); // false
Boolean(''); // false
Boolean(NaN); // false

四、位运算符
"&"按位相与,是将两者的二进制数,进行按位与的操作,都为1时才取1,有0就取0。
"|"按位相或,将两者的二进制数,进行按位相或的操作,只要有1就取1。
"^"按位异或,将两者的二进制数,进行按位想异或操作,不同时取1。
五、赋值运算符
"="运算符:赋值运算符,优先级最低

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值