chapter 2、JS----从入门到熟练的小白之路(持续更新....)

199 阅读3分钟

一、操作语句

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);