<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>一元运算符
<script type="text/javascript">
/* 一元运算符,只需要一个操作数
+ 正号
- 正号不会对数字产生任何影响
- 负号
- 负号可以对数字进行符号的取反
- 对于非Number类型的值,它会将先转换为Number,然后再运算
- 可以对一个其他的数据类型使用+,来将其转换为number,
它的原理和Number()函数一样 */
var a = -123;
a = +a;
a = -a;
a = true;1
a = -a; //-1
a = "18";
a = +a; //18
//console.log(typeof a);
//console.log("a = " + a);
var = resole = 1 + '2' + 3; //123
var = resole = 1 + +'2' + 3; //6
console.log("resole = " + result)
</html>
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>自增和自减
<script type="text/javascript">
/* 自增 ++
- 通过自增可以使变量在自身的基础上增加1
- 对于一个变量自增以后,原变量的值会立即自增1
- 自增分成两种:后++(a++) 和 前++(++a)
无论是a++还是++a,都会立即使原变量的值自增1
不同的是a++和++a的值不同
a++的值等于原变量的值(自增前的值)
++a的值等于新值 (自增后的值)
自减 --
- 通过自减可以使变量在自身的基础上减1
- 自减分成两种:后--(a--) 和 前--(--a)
无论是a--还是--a都会立即使原变量的值自减1
不同的是a-- 和 --a的值不同
a-- 是变量的原值 (自减前的值)
--a 是变量的新值 (自减以后的值)*/
var a = 1;
//a = a + 1;
//a++;
//++a;
//console.log(a++); //1
//console.log(++a); //2
//console.log("a = " + a);
var c = 10;
c++; //c = 11
console.log(c++); //11,c=12
console.log("c = " + c); //12
var d = 20;
//console.log(++d);//21
//console.log(++d);//22
//20 + 22 +22
var result = d++ + ++d; //64
console.log("result" + result);
d = 20;
d = d++;
console.log("d = " + d); //20
var e = d++; //20
d = e;
console.log("d = " + d); //20
var num = 10;
//num--; //9
//--num; //9
console.log(num--); //10
console.log(); //
</html>
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>逻辑运算符
<script type="text/javascript">
/* JS中为我们提供了三种逻辑运算符
!:非 not
- !可以用来对一个值进行非运算
- 所谓非运算就是值对一个布尔值进行取反操作,
true变false,false变true
- 如果对一个值进行两次取反,它不会变化
- 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反
所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样
&&:与 and
- &&可以对符号两侧的值进行与运算并返回结果
- 运算规则
- 两个值中只要有一个值为false就返回false,
只有两个值都为true时,才会返回true
- JS中的“与”属于短路的与,
如果第一个值为false,则不会看第二个值
||:或 or
- ||可以对符号两侧的值进行或运算并返回结果
- 运算规则:
- 两个值中只要有一个true,就返回true
如果两个值都为false,才返回false
- JS中的“或”属于短路的或
如果第一个值为true,则不会检查第二个值 */
var a = true;
a = !!a;
//console.log("a = " + a);
var b = 10; //true
b = !!b; //false
//console.log("b = " + b)
//console.log(typeof b)
var result = true && true; //true
result + true && false; //false
result + false && true; //false
result + false && false; //false
//console.log("result = " + result)
//true && alert("看你出不出来!!")
//false && alert("看你出不出来!!")
result = false || false; //false
result = true || false; //true
result = false || true ; //true
result = true || true ; //true
console.log("result = " + result)
//false ||alert("123");
true ||alert("123");
</html>
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>与或运算
<script type="text/javascript">
/* && || 非布尔值的情况
- 对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
- 与运算:
- 如果第一个值为true,则必然返回第二个值
- 如果第一个值为false,则直接返回第一个值
- 或运算
- 如果第一个值为true,则直接返回第一个值
- 如果第一个值为false,则返回第二个值 */
var result = 1 && 2; //true&&true 2
var result = 2 && 1; //true&&true 1
result = 0 && 2; //false&&true 0
result = 2 && 0; //true&&false 0
result = NaN && 0; //false&&false NaN
result = 0 && NaN; //false&&false 0
result = 2 || 1; //true||true 2
result = 2 || NaN; //true||false 2
result = NaN || 0 ; //false||false 0
result = "" || "Hello" ; //false||true "Hello"
result = -1 || "您好" ; //true||true -1
console.log("result = "+result);
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>赋值运算符
<script type="text/javascript">
/* =
可以将符号右侧的值赋值给符号左侧的变量
+=
a += 5 等价于 a = a + 5
-=
a -= 5 等价于 a = a - 5
*=
a *= 5 等价于 a = a5
/=
a /= 5 等价于 a = a / 5
%=
a %= 5 等价于 a = a % 5 */
var a = 10;
//a = a + 5;
//a += 5;
//a -= 5;
//a *= 5;
//a /= 5;
a %= 3; //余1
console.log("a = "+a);
</html>
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>关系运算符
<script type="text/javascript">
/* 通过关系运算符可以比较两个值之间的大小关系,
如果关系成立它会返回true,如果关系不成立则返回false
> 大于号
- 判断符号左侧的值是否大于右侧的值
- 如果关系成立,返回true,如果关系不成立则返回false
- 判断符号左侧的值是否大于或等于右侧的值
< 小于号
>= 大于等于
<= 小于等于
非数值的情况
- 对于非数值进行比较时,会将其转换为数字然后再比较
- 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,
而会分别比较字符串中字符的Unicode编码 */
var result = 5 > 10; //false
var result = 5 > 4; //true
var result = 5 > 5; //false
var result = 5 >= 5; //true
var result = 5 >= 4; //true
var result = 5 < 4; //false
var result = 4 <= 4; //true
//console.log("result = "+result);
//console.log(1 > true); //false
//console.log(1 >= true); //true
//console.log(1 >= "0"); //true
console.log(10 > null); //true 10>0
// NaN
//console.log(10 > "Hello"); //false
//console.log(10 >= "Hello"); //false
//console.log(10 <= "Hello"); //false
//console.log(10 <= "Hello"); //false
//console.log(true > false); //true 1>0
//console.log("1" > "5"); //true
//console.log(11 < "5"); //false
//console.log("11" < "5"); //true
//console.log("a" < "b"); //true
//console.log("abc" < "b"); //true
//console.log("bbc" < "b"); //false
//console.log("abc" < "bcd"); //true
//console.log("你" < "我"); //false
//console.log("你" < "我"); //false
//console.log("11106451651" < +"5"); //false
</html>