一元运算符:
+正号 :正号不会对数字产生任何影响
- 负号 :符号可以对数字进行符号的取反
对于非number类型的值,它会将先转换为Number,然后再运算
-可以对一个其他的数据类型使用+,来将其转换为number,其原理和number一样
如:var a = 123;
a = +a 值为123
a = -a 值为-123
a = true; 值为 1
var result = 1 +"2" +3 值为 123
var result = 1 + +'2' + 3 值为 6
自增自减:
自增++ :通过自增可以使变量在自身的基础上增加1
自增分为前置++ 和后置++
前置++表示为 先加后赋值
后置++表示为 先赋值后加
自减 -- 通过自减可以使变量在他本身的基础了减一
自减分为两种 ;c-- --c
前置自减 先减后赋值
后置自减 先赋值后减
var a =1;
a = a++ a = 1
a = ++a a = 2
d = 20;
d = d ++
console.log("d = " + d)
e = d++
d = e;
console.log("d=" + d)
他们两个的结果都一样
逻辑运算符:
有三中逻辑运算符
! 取反
变真为假,便假为真;
&& 遇false为false 只要有一个为false则返回的结果就是fales
|| 遇true为true 只有有一个true则返回的结果的就是true
与或运算:
在进行与或运算的时候,会将不是布尔值的转换为布尔值,然后再把其原类型转换回去
与计算
var result = 1 && 2 2
var result = 0 && 1 0
var result = NaN && 0 NaN
console.log("result" + result)
或计算
var result = 2|| 1 2
result = 2 ||NaN 2
result = NaN || 0 0
result = "" || "hello" hello
result = -1 || "你好" -1
赋值运算符:
a += a a = a+a
a -+a a = a-a
a *=a a =a*a
a /=a a = a/a
a %=a a = a%a
关系运算符:
>= 判断符号左侧的值是否大于或等于右侧的值
> 判断符号左侧的值是否等于右侧的值
< 判断符号左侧的值是否大于右侧的值
<= 判断符号左边的值是否大于或等于右侧的值
非数值对比:如果是非数值进行比较的时候,会将其转换为数字,然后在将其进对比
如果两测都是字符串是,不会将其转换为数字,而是将其转换为unicode编码
相等运算符:
NaN 和任何数都不想等,包括他本身,可以使用isNaN查看这个元素是不是NaN
==
用来比较两个值是否相等,如果相等就返回true 不相等就返false
使用==来做相等运算
当使用==来比较两个值的时候,如果值得里欸选类型不同,则会自动进行类型转换,将其转换为相同的类型,然后在比较不相等
不相等用来判断连个值是否不相等 ,如果不相等返回true否则返回false
使用!=来表示不等于
不相等也会对变量进行自动的类型转换,如果转换后相等他也会返回false
var a =1
console .log( a == "1") true
console.log(a != 2) true
console.log(null == 0 ) false
console.log(NaN == "1") false
console.log(NaN == undefined) false
console.log(NaN == NaN) false
全等 ===
用来判断两个值是否相等,他和相等类似,唯一不同的是,不会做类型转换
不全等!==
用来判段两个值是否不全等,和不等类似,不同的是,他不做类型转换 ,如果两个值的类型不同,直接返回true
var b=5;
console.log(b === "5") false
console.log(b !=="5") false
条件运算符
语法: 条件表达式 : 语句1 :语句2
如果条件的表达式求值结果是一个非布尔值,会将其转换为布尔值然后在计算
true ? alert("语句1") : alert(语句2)
var a = 20;
var b = 30;
a > b ? alert("a大") : alert("b大")
unicode编码
在js使用的时候,我们使用的是十六进制的数 console.log(\u2FB9)
在页面中使用的时候,我们使用的是十进制 console.log(#xe698)