一、操作语句
1、if/else if/else
只要满足其中一个条件,后面的条件就不再执行
- 1.1 单独一个if
var num=10;
if(num>2){
alert("你很优秀");
}
- 1.2 if/else
var num=5;
if(num>0){
alert("你好")
}else{
alert("你坏")
}
- 1.3 if/else if/else
var num=0;
if(num>0){
alert("正数")
}else if(num<0){
alet("负数”)
}else{
alert(0)
}
- 1.4 if/ eles if else if .../else
if 条件语句,只要满足其中一个条件,后面的条件就不再执行
var num=6;
if(num>0){
num--;
alert("1:"+num);
}else if(num>0 && num<10){
num++;
alert("2:"+num);
}else {
num--;
}
console.log(num)
2、判断条件
- && 表示并且,左右两边的条件必须同时满足
- || 表示或,左右两边的条件只要满足其一即可
- 如果是单独的一个值,先把它转换成布尔类型,如果是真,条件 成立,如果假,条件不成立。
回忆其它值转换为布尔值,只有哪几种情况是false;
- 0
- NaN
- null
- “”
- undefined
if(true){
alert("刷碗去!")
}
if(false){
alert("去刷剧")
}else{
alert("去睡觉")
}
if(0){
}
二、在js中用来检测数据类型的四种方式
- typeof
- instanceof
- constructor
- Object.prototype.toString.call()
1、typeof 运算符 详解
typeof 首先返回的是一个字符串,它返回的类型.
- 'number'
- 'string'
- 'boolean'
- 'undefined'
- 'object'
- 'function'
注意:typeof null 返回的是'object' 需要特殊记忆, 另外typeof 检测数组、正则、普通对象,返回的都是“object”,所以用typeof 检测的话,并不能细分。
typeof 12 ===> "number"
typeof "zhufeng" ====》 'string'
typeof false ===>'boolean'
typeof true ====> 'boolean'
typeof null ====> 'object'
typeof undefined ====>'undefined'
typeof [1,2] =====>"object"
typeof function(){} =>"function"
2、BAT面试题
2-1、
typeof []
typeof typeof []
2.2
var num=parseInt("px35.5");
if(num==35.5){
alert(0)
}else if(num==35){
alert(1)
}else if(num==NaN){
alert(3)
}else if(typeof num=='number'){
alert(4)
}else{
alert(5)
}
三、三元运算符
1、【语法】:
条件?条件成立执行的语句:条件不成立执行的语句
var num=5
if(num>=5){
num++
}else{
num--
}
改写成三元运算符
num>=5?num++:num--
2、【特殊情况】
条件成立,我想做一件事情,不成立我什么不做,可以用 undefined/null/void 0来做占位符
var num=5;
num>=5?num++:undefinde;
num>=5?num++:null;
num>=5?num++:void 0;
3、【多条语句】
如果条件成立之后,想同时执行多条语句,我们可以用“小括号”把执行语句包起来,并且语句与语句之间用“逗号”进行分割
var num=5;
var a=3;
num>=5?(num++,a--):null;
4、【思考题】
把下面的代码改成三元运算符
var num=12;
if(num>0){
if(num<10){
num++;
}else{
num--;
}
}else{
if(num==0){
num++;
num=num/10;
}
}
四、switch case 操作语句
- 把表达式的值与每个 case 的值进行对比
- 如果存在匹配,则执行关联代码
switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
1、[初识]
var num=6;
if(num==5){
num++;
}else if(num==6){
num--;
}else {
num=0;
}
console.log(num);
把上面的改成switch case 语句
var num=6;
switch (num){
case 5:
num++;
break;
case 6:
num--;
break;
default:
num=0;
}
console.log(num);
2、switch case 和if elese 的区别
如果把上面的案例,num的值改为字符串的6,用if else 和switch case 会出现什么样的结果呢,答案是否还相同呢?
在if else 条件判断中,两个== 进行比较的时候,如果数据类型不同,会先转换为相同的数据类型再比较
在switch case 中,条件判断 其实是三个===,绝对等于,不仅要值相同,类型也要相同,所以才会出现上面不同的情况。
3、巧用switch case 中的break
switch case 中的break 表示条件终止,如果不加break 的时候,会继续往下执行。 但是我们可以巧用这个特点,来做条件或当num等于6或者num=10 的时候,让num的值都加加:
var num=6;
switch (num){
case 6:
case 10:
num++;
break;
default:
num=0;
}
console.log(num);