乐趣区

关于javascript: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); // 123  1

-(负号)

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

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

退出移动版