算数运算符

运算符形容例子后果
+加法var num = 1 + 2;3
-减法var num = 4 - 3;1
*乘法var num = 4 * 3;12
/除法var num = 6 / 3;2
%取余var num = 7 % 3;1
  • 失常的数据运算
//字符串之间用+,会拼串    - * /不会//进行数据运算时,除'+'外,其余运算符能够主动将字符串数字隐形转成数字var num1 = '8';var num2 = 4;console.log(num1 + num2); //84  //字符串拼接//上面都是失常的运算console.log(num1 - num2); //4console.log(num1 / num2); //2console.log(num1 * num2); //32console.log(num1 % num2); //0      //取余
  • 进行数据运算时,除'+'外,其余运算符能够主动将字符串数字隐形转成数字
//除'+'外,其余运算符能够主动将字符串数字隐形转成数字var num1 = '8';var num2 = '4';console.log(num1 - num2); //4console.log(num1 / num2); //2console.log(num1 * num2); //32console.log(num1 % num2); //0

一元运算符

JavaScript中有8种罕用的一元运算符

运算符形容
+将操作数转换成数字,字符串的拼接
-将操作数转换成数字,同时变为正数
!逻辑取反运算符
++递增
--递加
delete删除数组或对象中特定索引的值
typeof操作数放到typeof的前面,会返回以后操作数的类型,对于数值类型能够精确返回,对于援用类型,Function会返回'function',其余都只会返回'object'
voidvoid 运算符对任何值返回 undefined。

+ (正号)

1.'+'的第一种用法:进行数据相加

//加法运算var num1 = 3;var num2 = 5;var sum = num1 + num2; //8

2.'+'放在数据的后面,就是取负数

var num = 6;console.log(+num); // 6  //取正

3.'+'与字符串运算时,就是字符串连接符

// '+'与字符串运算时,就是字符串连接符var a = 'hello';var b = 'world';var c = 6;console.log(a + b); // helloworld//字符串和字符串,数字和字符串,用'+'就是字符串的拼接console.log(a + b + c);  //helloworld6

4.'+'能够将数字字符串或布尔类型等隐式转换成number类型

// '+'能够将数字字符串或布尔类型等隐式转换成number类型var a = '123';var b = true;//隐式转换  在布尔类型中,true就是1,false就是0console.log(+a, +b); // 123  1

-(负号)

1.正、负号能够对数字进行取正或取负,其余运算符不能转换

var num1 = 6;var num2 = -6;console.log(-num1); //-6console.log(+num1); //6console.log(-num2); //6console.log(+num2); //-6

2.正、负号能够将字符串数字隐式转换成数字

var num1 = '20';var num2 = '-20';console.log(-num1); //-20console.log(+num1, typeof +num1); //20 numberconsole.log(-num2); //20console.log(+num2, typeof +num2); //-20 number

!(取反)

常常被用作条件判断时的取反操作,类型判断等,还能够用'!'将变量转换为Boolean类型
// 常常被用作条件判断时的取反操作,类型判断等,还能够用'!'将变量转换为Boolean类型var a;if (a) {  //因为a是undefined,默认为假,if 假 输入第一个      console.log('a是false');}else{     console.log('a是true');}var b = 111;   //因为 b被赋值,默认为真if (b) {       console.log('b是true');   //b是true}else{     console.log('b是false');}var c = 111;   //因为 c被赋值,默认为真if (!c) {    //c取反后为假     console.log('!c是false');}else{     console.log('!c是true');}console.log(!null);  //trueconsole.log(!undefined);  //trueconsole.log(!''); //trueconsole.log(!100);  //falseconsole.log(!'abc');  //false

++(递增)

通常用于循环语句,动画操作等。

  • ++放在后面,并进行赋值:先累加,后赋值
// 递增// ++放在后面,并进行赋值:先累加1,后赋值var num = 1;var a = ++num;   //a = 2console.log("num先自加1,再赋值给a", a); // 2console.log("++num是"+num); // 2//num先自加1,再赋值给a
  • ++放在前面,并进行赋值:先赋值,后累加
var num = 0;var a = num++;console.log(a); // 0console.log(num); // 1//先把num的值赋值给a,num再自加1

--(递加)

通常用于循环语句,动画操作等。应用办法与++相似。

delete

删除数组或对象中特定索引的值
//delete删除对象var obj = {  name:'zhangsan',  age: 17};delete obj.name;   //间接通过属性名删除  点语法console.log(obj); // {age: 17}//删除数组var arr = [1,2,3,4,5];//通过下标索引删除delete arr[2];//删除数组中的元素后,数组仍会保留该元素的内存空间console.log(arr); //[ 1, 2, <1 empty item>, 4, 5 ]

typeof

操作数放到typeof的前面,会返回以后操作数的类型,对于数值类型能够精确返回,对于援用类型,Function会返回'function',其余都只会返回'object'

//对象var obj = {  name:'zhangsan',  age: 17};//数组var arr = [1,2,3,4,5];//可得对象,数组都是Objectconsole.log(typeof obj, typeof arr); //object object

void
抛弃表达式的返回值,而返回undefined
应用形式有void 表达式,void (表达式) 两种