运算符
加号 :通常用来 求和,还可以用作其他功能,如下
- 字符串连接功能:可以用来连接如果任一运算元是字符串,那么其它运算元将被转化为字符串
- 数字转化功能:加号 + 应用于单个值,对数字没有作用。但是如果运算元是非数字,它会将其转化为数字。
赋值运算符 :
每个运算符都有一个返回值,等号也有,如:
语句x= value把value的值写入x然后返回x。
幂运算符:
对于自然数b,a**b 表示a与自己相乘b次
自相加/自相减
自相加/自相减 只能用于变量,用于数值会报错。
自相加/自相减可以放在变量前或者变量后。区别在于返回值。 前置形式返回一个新的值,后置返回原来的值(做加法或者减法之前的值)
// 前置形式
let a = 1;
let b = ++a
console.log(b)// 2
// 后置形式
let c= 1;
let d = C++
console.log(d)//1
如果自相加/自相减的值没有被使用,那么两者没有区别。
如果需要对变量进行自相加并且立即使用值,那么需要使用前置形式
逗号运算符
是最少最不常使用的运算符之一,有时候会被用来写更简短的代码。
let a = (1+2,3+4)
console.log(a)//7
// 第一个预计1+2执行了,但是它的结果被丢弃了,然后3+4运行,返回7
逗号运算符的优先级很低,比=还低 ##值的比较
字符串之间的比较
在比较字符串的大小时,是按字符逐个进行比较的,按照Unicode 编码顺序
alert('Z'>'A')// true
规则: 首先比较两个字符串的首位字符的大小,如果一方字符较大,则该字符串大于另外一个字符,算法结束。如果两个字符串的首个字符相等,则比较下一位字符。
不同类型之间的比较
不同类型的值进行比较,会先转化为数字 再判定大小。
严格相等
普通的相等性检查 == 存在一个问题,不能区分0和false。
alert(0 == false) // true
alert(0 === true) // false
null和undefined的比较
alert(null == undefined) // true
alert(null === undefined)// false
注意:在使用 > 或 < 进行比较时,需要注意变量可能为 null/undefined 的情况。比较好的方法是单独检查变量是否等于 null/undefined。