运算符
运算符也叫操作符
通过运算符可以或多个值经行运算,并获取运算结果比如:typeof运算符,可以来获得一个值得类型 它会将该值的类型以字符串的形式返回 number string boolean undefind object
- 算数运算符:
运算符 | 符号 |
---|---|
一元运算符 | + +,-- typeof 正号 负号 等 |
二元运算符 | + ,-,*,/,% |
- 其他运算符
运算符 | 符号 |
---|---|
赋值运算符 | = |
扩展运算符 | +=,-=, *=, /= |
关系运算符 | < > <= >= == != inst anceof |
逻辑运算符 | && // ! ^ |
位运算符 | & / ^ ~ << >> >>> |
条件运算符 | ? : |
字符串运算符 | + |
+:
- 当对非Number类型的值进行运算时,会将这些值转换为Number然后再进行计算
- 任何值和NaN做运算 返回NaN
- 字符串与字符串经行相加会把字符串连接起来
- 任何值与字符串做加法运算会会先把任何值转换为字符串 再进行连接
- 对于非Number,它会将先转为Number,然后再运算
可以对一个其他的数据类型使用+,来将其转换为number
它的原理和Number函数原理一样
E:
console.log(1++"2"+3) 返回6
自增与自减 ( ++ --):
a++(–)与++a(–)的区别:
- a++与++a都可以使变量的值加1
- 不同的是a++与++a的值不同
- a++的值等于原变量的值(自增前的值)
- ++a的值等于自增后的值
E:
var a = 1 ;
var b = a++;
var c = ++a;
console.log(b); // 返回1
console.log(c); //返回3
逻辑运算符:
运算符 | 说明 |
---|---|
与 & | 两个结果为true结果才为true否则为false |
或 | |
短路与 && | 只要有一个为false 直接返回flase |
短路或 // | 只有一个为true结果才为true |
非 ! | 取反 |
异或 ^ | 相同为flase 不同为true |
短路特点:
&& 短路与 | 符号左边是false,右边不再运算 |
短路或 // | 符号左边是true,右边不再运算 |
运算符优先级:
优先级运算符结合性
优先级 | 符号 |
---|---|
1 | ()、[]、{}从左向右 |
2 | !、+、-、~、++、–从右向左 |
3 | *、/、%从左向右 |
4 | +、-从左向右 |
5 | «、»、>>>从左向右 |
6 | <、<=、>、>=、instanceof从左向右 |
7 | ==、!=从左向右 |
8 | &从左向右 |
9 | ^从左向右 |
10 | |
11 | &&从左向右 |
12 | |
13 | ?:从右向左 |
14 | =、+=、-=、*=、/=、&=、 |
对象运算符
归属检测 | 功能 |
---|---|
in | i检测左侧操作数是否为右侧操作数的成员。 |
instanceof | 检测左侧的对象是否为右侧类型的示例。 |
in操作符 :左侧操作数是一个字符串,或者可以转换为字符串的表达式,右侧操作数是一个对象或数组。
var obj = {
name:"a",
age : 18
}
if ("name" in obj ){
console.log("我属于obj")
}
instanceof:检测左侧的对象是否为右侧类型的示例。
var arr= new Array();
console.log(arr instanceof Array)
删除属性
delete
运算符能够删除指定对象的属性、数组元素或变量。如果删除操作成功,则返回 true;否则返回 false。
var a = { //定义对象a
x : 1, //定义对象成员
y : 2 //定义对象成员
};
console.log(a.x); //调用对象成员,返回1
console.log(delete a.x); //删除对象成员x成功,返回true
console.log(a.x); //返回undefined,没有找到该对象成员
void运算符
void 是一元运算符,它可以出现在任意类型的操作数之前执行操作数,却忽略操作数的返回值,返回一个 undefined。void 常用语 HTML 脚本中执行 JavaScript 表达式,但不需要返回表达式的计算结果。
注意:算数运算符中++,-- 属于一元运算符,该类运算符只需要一个操作数。博客里的 / 是 | l