重新回顾之前所学回来复习一下基础写一篇博客
大家笑一笑就好。
运算符
JavaScript中运算符主要用于连接简单表达式,组成一个复杂的表达式。常见的有算数表达式、比较表达式、逻辑表达式、赋值表达式等,也有单目运算符,指操作原始表达式。大多数运算符都由标点符号组成(+、>=、!),也有关键字表示的运算符,如typeof、delete、instanceof, 这些都是运算符 不是方法 不是方法 不是方法等。
一些运算符可以作用于任何数据类型(typeof),但大部分操作符希望操作数是特定的类型,而且大部分操作符会计算出(我们也常说返回)一个特定类型的值(typeof返回的全是string)。在JavaScript中运算符通常会根据需要对操作数进行类型转换,乘法操作符希望操作数是数字,但是 "3" * "5"也是合法的,JavaScript会自动将其转换为数字计算,返回Number 15。
-
有些操作符对不同的数据类型有不同的含义,比如 +
-
在两个操作数都是数字的时候,会做加法运算
-
两个参数都是字符串或在有一个参数是字符串的情况下会把另外一个参数转换为字符串做字符串拼接
-
在参数有对象的情况下会调用其valueOf或toString其中valueOf的优先级高于toString!
-
在只有一个字符串参数的时候会尝试将其转换为数字
-
在只有一个数字参数的时候返回其正数值。
用代码来举例
console.log(2+4);//6
console.log("2"+"4");//"24" 这里是字符串转换进行拼接
console.log(2+"4");//"24"这里是4被转换拼接
console.log(2+new Date());//"2Mon Jan 20 2014 17:15:01 GMT+0800 (China Standard Time)"还是拼接吧Data和2拼
console.log(+"4");//4 强行转换为4
远算符类型
算数运算符
加法运算符(Addition):x + y
减法运算符(Subtraction): x - y
乘法运算符(Multiplication): x * y
除法运算符(Division):x / y
余数运算符(Remainder):x % y
自增运算符(Increment):++x 或者 x++
自减运算符(Decrement):--x 或者 x--
求负运算符(Negate):-x
数值运算符(Convert to number): +x
赋值运算符
赋值运算符用于给变量赋值,最常见的赋值运算符,当然就是等号,表达式 x=y 表示将y赋值给x。除此之外,JavaScript还提供其他11个赋值运算符。
x += y // 等同于 x = x + y
x -= y // 等同于 x = x - y
x *= y // 等同于 x = x * y
x /= y // 等同于 x = x / y
x %= y // 等同于 x = x % y
x >>= y // 等同于 x = x >> y
x <<= y // 等同于 x = x << y
x >>>= y // 等同于 x = x >>> y
x &= y // 等同于 x = x & y
x |= y // 等同于 x = x | y
x ^= y // 等同于 x = x ^ y
比较运算符
比较运算符比较两个值,然后返回一个布尔值,表示是否满足比较条件。JavaScript提供了8个比较运算符。
= 赋值 强调=是赋值不是数学中的等于!!!!
== 等于
=== 严格相等
关于== 和 ===举个例子
var a = 3
var b = '3'
console.log(a == b )//这里得到的是true 因为==不比较数据类型
console.log(a === b)//这里得到的是false因为===会严格的比较数据类型var a 是一个number b是一个字符串所以得到的false
!=不相等
!== 严格不相等
< 小于
<= 小于或等于
> 大于
>= 大于或等于
这里浅谈一下++运算符,还是上代码
var e = 9
var f = e++ // 强调!这里的e++是一个简单的表达式,对于外界来它也是一个值
console.log(f)//得到9
console.log(e)//得到10
var g = ++e
console.log(g)//得到11
console.log(e)//还是11
布尔运算符
- ! 取反运算符
- && 且运算符
- || 或运算符
- condition? true case : false case 三元条件运算符
true && false
这里的逻辑是前面一项如果是true那么后面一项也要是true 他才会得到结果true 如果有一个是false 那么得到的结论就是false
|| 或运算符 两边的结果有一个是true就OK如果两边都是false 那么得到的就是false
运算符的优先级
优先级什么意思大家都清楚,结合性是指多个具有同样优先级的运算符表达式中的运算顺序。有的运算符是左结合的,即运算从左到右执行。
这里先简单分析一段代码
typeof 3 + 4
"number4
这里为什么得到的不是number呢?
因为这里typeof3的优先级更高
运算typeof3得到 number 然后+ 4所以得到
number4
明天继续写,今天实在是瑞了瑞了。