JavaScript之操作符篇

算数运算符

运算符 描述 例子 结果
+ 加法 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); //4 console.log(num1 / num2); //2 console.log(num1 * num2); //32 console.log(num1 % num2); //0//取余

  • 进行数据运算时,除'+'外,其他运算符可以自动将字符串数字隐形转成数字
//除'+'外,其他运算符可以自动将字符串数字隐形转成数字 var num1 = '8'; var num2 = '4'; console.log(num1 - num2); //4 console.log(num1 / num2); //2 console.log(num1 * num2); //32 console.log(num1 % num2); //0

一元运算符 JavaScript中有8种常用的一元运算符
运算符 描述
+ 将操作数转换成数字,字符串的拼接
- 将操作数转换成数字,同时变为负数
! 逻辑取反运算符
++ 递增
-- 递减
delete 删除数组或对象中特定索引的值
typeof 操作数放到typeof的后面,会返回当前操作数的类型,对于数值类型可以准确返回,对于引用类型,Function会返回'function',其他都只会返回'object'
void void 运算符对任何值返回 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就是0 console.log(+a, +b); // 1231

-(负号)
1.正、负号可以对数字进行取正或取负,其他运算符不能转换
var num1 = 6; var num2 = -6; console.log(-num1); //-6 console.log(+num1); //6 console.log(-num2); //6 console.log(+num2); //-6

2.正、负号可以将字符串数字隐式转换成数字
var num1 = '20'; var num2 = '-20'; console.log(-num1); //-20 console.log(+num1, typeof +num1); //20 number console.log(-num2); //20 console.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); //true console.log(!undefined); //true console.log(!''); //true console.log(!100); //false console.log(!'abc'); //false

++(递增)
通常用于循环语句,动画操作等。
  • ++放在前面,并进行赋值:先累加,后赋值
// 递增 // ++放在前面,并进行赋值:先累加1,后赋值 var num = 1; var a = ++num; //a = 2 console.log("num先自加1,再赋值给a", a); // 2 console.log("++num是"+num); // 2 //num先自加1,再赋值给a

  • ++放在后面,并进行赋值:先赋值,后累加
var num = 0; var a = num++; console.log(a); // 0 console.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]; //可得对象,数组都是Object console.log(typeof obj, typeof arr); //object object

【JavaScript之操作符篇】void
丢弃表达式的返回值,而返回undefined
使用方式有void 表达式,void (表达式) 两种

    推荐阅读