一、JS运算符
(一)一元运算(+ - ++ -- ! ~s)
-
++ 和 () 的优先级相同,所以不能同时使用,会报错
console.log( ++(a--) );
(二)关系运算符(> >= !== < <= == === != )
-
Number 与 String
当存在number和string两种数据类型时,会转换成数值型
// 字符串'123'会先转换成数值123,再比较 console.log( '123' >456 )//false // 当无法正常转换,将变成NaN,也就是false console.log( '123A' > 456 )//false
-
String
字符串与字符串进行比较,是通过ASCII码中的排名('A'65 'a'97),逐位比较
console.log( 'A' > 'B' )//flase
-
Boolean、null
布尔值与null、undefined都先转为数值( null为0,undefined为NaN ),再比较;
console.log( true > null )// 1 > 0 true console.log( true > undefined )// 1 > NaN flase
-
NaN
一般都是false
// NaN,not a number console.log( NaN == NaN )//false
-
undefined 、null
undefined是null的派生类,对应的值相等
console.log( undefined == null )//true console.log( undefined === null )//false,但类型不同 // undefined 、null 与 0 的比较。 console.log( undefined == 0 )//false,前者为NaN console.log( null == 0 )// false,null是空对象引用
(三)逻辑运算符( && || & | )
a. 短路现象
-
&&
console.log( false && a>b )// 前面是false,所以整体为false,不再判断后面的
-
||
console.log( true || a>b )// 前面是true,所以整体为true,不再判断后面 // 特殊用法!!! i = i || 0 ; // 给 i 初始化一个默认值;
二、IF
(一)基本语法
if ( 判断条件 ) {
执行语句;
}
// 满足条件进入执行语句;
(二)if else if ( 比较常见 )
// 每个条件相互对立。
if (条件1) {
xxx;
} else if (条件2) {
xxx;
} else {
xxx;
}
(三)if else嵌套( 比较常见 )
if () {
if () {
if () {
xxx;
} else {
xxx;
}
}
}
三、Switch
(一)基本语法
// 进行数值的匹配
switch (某些数值) {
case '1':
xxx;
break; // break; 跳出此次逻辑判断;
default : // default: 不匹配时执行
xxx;
}
四、练习总结
- 从prompt()方法得到的值,是字符串类型