1.4 条件语句+循环语句

1.4.1 if else 语句

If else 语句在js中用与运算符写,如果同时满足多个条件,只会执行第一个条件成立的程序,

条件的结果最终是为了得到布尔值  true或者false

 

两个写法的区别:

1.在if(0<a<10){ } else(){}

 括号中得值是要转换为布尔值判断的,当a=100,0<100,-->true,true<10

转换为布尔值,1<10? --->true

2.if(a>0 && a<10){执行A } else{执行B}

a=100,100>0 对的,100<10 错的,与运算找错的,所以会执行else语句块的B

结论:所以只能用第二个写

结构:

if,else 判断语句
if(条件1){
    条件1成立时,执行的程序
}else if(条件2){
    条件1不成立,并且条件2成立时,执行的程序
} 
……
else{
    以上所有条件都不成立时,执行的程序
}

 

例子:

var a = 100;
if(a>0 && a<10){
  document.write("在1-9");
}
else if(a>10 && a<20){
  document.write("在11-19");
}
else if(a >20 && a<30){
  document.write("在21-29");
}
else{
  document.write("在30之外");
}                  ---------> 执行这个    

 

例子2:同时满足多个条件,只会执行第一个

if(num>1){
  console.log('if 成立 执行代码');
}else if(num>2){
  console.log('else if 成立 执行代码');
}

 

1.4.2三目运算符

三目运算是if,else语句的一种简化形式,只有两个条件的语句块才可以简化
if(条件){
条件成立,执行程序1
}else{
条件不成立,执行程序2
}

上面的if,else语句可以简写成以下的三目运算

写法:条件 ?执行程序1  :执行程序2 ;

 

例子:

var num = 5;
if(num<10){
  console.log('烫头');
}else{
  console.log('rap')
}
num
<10?console.log('烫头'):console.log('rap');

当条件句为空的时候,则可以用null替代

num<10?null:console.log('rap');

 

1.4.3 switch语句

变量和 数据 在判断时 是全等 === 不存在类型转换

1:

var num = 4;
switch(num){
  case 2:
    console.log('我的学号是2');
    break;
  case 4:
    console.log('我的学号是4');    ---->输出这个
     break;
  case 6:
    console.log('我的学号是6');
    break;
  default:
    console.log('我的学号不是 2 4 6 ');
}

 

2:

var num = parseFloat('height:20.3px');
  if(num==20.3){
    console.log(20.3);
  }else if(num==NaN){
    console.log(NaN)
  }else if(typeof num=='number'){
    console.log('number');      ----->输出这个
  }else{
    console.log('num 什么都不是');
}

parseFloat从左到右遇到数字就停止,第一个已经停止了,

输出NaN,任何数与NaN比较都是false,typeof(NaN)--->”mumber”

 

1.4.4  for循环

作用:重复执行一段程序
基本格式:for(循环起点;循环条件;累加器){
重复执行的代码;
}

for循环执行的顺序
1.设置循环起点
2.验证循环执行的条件
3.如果循环条件为true,就执行程序,如果循环条件为false,for循环结束
4.累加
1==>2==>3==>4==>2==>3==>4……==>2==>3==>4==>循环结束

例子:

for(var i=0;i<90;i++){
console.log("你是猪");
}

for(i=0;NaN;i++){

Console.log(“”);     

}

----->不会执行,为什么呢,因为循环条件要的就是布尔值,所以NaN转为布尔值为false

当设置为1的时候,转换成布尔值,变成true,进入死循环

 

for循环中的关键词

continue结束本轮循环

作用:continue下面的程序不执行,执行累加,开始下一轮循环

break结束整个循环

作用:break下面的程序不执行,不累加不执行,整个for循环结束

 

for(i=0;i<10;i++){
if(i%2==1) //取奇数 
continue; //当循环为奇数的时候,跳出本次循环,进入下面的条件 
else{
document.write(i);
}
}     --->打印出0 2 4 6 8 

上面的换成break时候,会打印0,因为开始0不是奇数,所以会打印

 

嵌套for循环

 

第一个for是控制行,第二个是控制列

 

1.4.5 while循环

while循环是for循环的一种简化形式

设置循环起点;
while(循环执行的条件){
条件成立,执行程序;

步长累加;}

 

原始值和引用值的补充

原始值储存在栈区

* number* string* null* undefined* boolean

引用值储存在堆区我们声明的变量是在栈区中引用数据的地址

* 普通对象* 函数对象* 数组对象

原始值:var a =2; b=a ; a=333; document.write(b)  --->这个b还是等于2

引用值:var arr=[1,2,3]; arr1=arr; arr.push(4); 打印arr1 --->[1,2,3,4]

引用值是在堆区存放着,地址放在了栈区

 

posted @ 2019-06-07 20:55  小小oRa  阅读(234)  评论(0)    收藏  举报