JS基础语法(二)表达式、流程控制

目录

表达式和语句

布尔类型的隐式转换

流程控制

顺序结构

分支结构(选择结构)

if语句

三元运算符

switch语句

循环结构

while循环

do...while循环

for循环

循环案例

打印10*10的符号正方形

 打印三角形

九九乘法表

求数列1,1,2,3,5,8,13....数列的第12个数的值 

break和continue

调试

 


表达式和语句

  • 表达式:一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量,表达式可以放在任何需要值得地方
  • 语句:语句可以理解为一个行为,循环语句和判断语句就是典型的语句,一个程序由很多个语句组成,一般情况下,语句是一个一个的,语句结束后都会加一个分号;

布尔类型的隐式转换

流程控制语句中条件部分会把后面的值隐式转换成布尔类型,常用于if语句中

  • 转换为true的情况      非空字符串    非0数字    任何对象
  • 转换为false的情况    空字符串     0     NaN     null     undefined    
    var num;
    if (num) {        //if里的布尔值为false,因为num只声明而没有赋值
        //执行语句
    }
    
    var str = '123';
    var isOk = !str;
    console.log( isOk );    //返回的是false,因为上一句 ! 取反中会自动把字符串转换成布尔类型'123'为true

流程控制

指程序的三种基本结构分别是:顺序结构、分支结构、循环结构

顺序结构

按顺序从上到下执行代码

分支结构(选择结构)

根据不同的情况执行不同的代码

if语句

语法结构

//if语句一  if
if (/* 条件表达式 */){
    //执行语句
}


//if语句二  if else
if (/* 条件表达式 */){
    //成立执行语句
}else{
    //否则执行语句
}



//if语句三  if  else if
if(/* 条件1 */){

    //成立执行语句
}else if(/* 条件2 */){
    //成立执行语句
}else if(/* 条件3 */){
    //成立执行语句
}else{
    //最后默认执行语句
}

三元运算符

表达式1?表达式2:表达式三

表达式1为一个布尔类型的表达式,返回的是一个布尔类型

当表达式1的布尔类型为true,返回表达式2的值,为false则返回表达式3的值

是对if-else语句的一种简化写法

switch语句

switch语句只能做值的相等判断,而if语句可以做一个范围的判断

注意switch语句里的判断使用的是===,所以case里的值不应加‘ ’单引号

如果省略break,则语句会有穿透作用,穿透到下一个case,即执行完该语句还会继续向下执行,不管是否满足

语法格式

switch (expression) {
    case 常量1:
        语句;
        break;
    case 常量2:
        语句;
        break;
    case 常量3:
        语句;
        break;
    ...

    case 常量n:
        语句;
        break;
    default:    //类似if else里的else语句
        语句;
        break;
}

 

循环结构

重复做一件事情

while循环

基本语法

while (循环条件) {    //当循环条件为true时,执行循环体;为false时,结束循环体
    //循环体
}

计算1-100之间的和

var a = 1;
var sum = 0;
while(a <= 100){
    sum += a;
    a++;
}

do...while循环

do...while循环和while循环非常像,二者经常可以相互替代,但是do..while 的特点是不管条件成不成立,都会执行一次

语法结构

do {
    //循环体
}while(循环条件);

计算1-100之间的和

var a = 1;
var sum = 0;
do{
    sum += a;
    a++;
}while(a <= 100);

for循环

while和do..while一般用来解决无法确认次数的循环,for循环一般用在循环次数确定的时候

for循环的表达式之间用的是分号;分隔的,千万别写成逗号,

语法格式

//for循环的表达式之间用的是分号;分隔的,千万别写成逗号,
for (初始化表达式1; 条件表达式2; 自增表达式3) {
    //循环体
}

执行顺序:1243-----243-----243(直到循环条件变成false)

1为初始化表达式     2为判断表达式       3为自增表达式       4为循环体

循环案例

打印10*10的符号正方形

var str = '';
// 外层循环控制输出的行数
for (var j = 0; j < 10; j++) {
    //内层循环控制输出10个*
    for (var i = 0; i < 10; i++){
        str += '* ';
    } 
    str += '\n';
}
console.log(str);

 打印三角形

var str = '';
// 外层循环控制输出的行数
for (var j = 0; j < 10; j++) {
    //内层循环控制输出每一行的*的个数
    for (var i = j; i < 10; i++){    //i与j相关联才能控制每一行*数逐次少一
        str += '* ';
    } 
    str += '\n';
}
console.log(str);

九九乘法表

​
var str = '';
// 外层循环控制输出的行数
for (var j = 0; j < 10; j++) {
    //内层循环控制每一行有多少个内容
    for (var i = j; i <= 9; i++){
        str += i + '*' + j + '=' + i * j + '\t';
    } 
    str += '\n';
}
console.log(str);

​

求数列1,1,2,3,5,8,13....数列的第12个数的值 

// 前两个数
var n1 = 1;
// 前一个数
var n2 = 2;
// 当前数
var n3;
for (var i = 3; i <= 12; i++){
    n3 = n2 + n1;
    n1 = n2;
    n2 = n3;
}
console.log(n3);

break和continue

  • break:破坏  破坏循环,终止循环跳出整个循环的意思
  •  continue:跳过本次循环,继续下一次循环
    //求整数50-200之间第一个被7整除的数
    for (var i = 50; i <= 200; i++){
        if(i % 7 === 0){
            console.log(i);
            break;        //break指破坏循环,终止循环跳出整个循环的意思
        }
    
    }
    console.log('over');
    
    //求1-100之间的累加和,但要跳过所有个位为3的数
    var sum = 0;
    for ( var i = 1; i <= 100; i++){
        if(i % 10 === 3){
            continue;    //此处的continue为跳过本次循环继续执行下次循环的意思,即不满足则继续i++来判断下一次
        }
        sum += i;
        
    }
    console.log(sum);

调试

调试debug(解决程序中的异常)

错误:有两种分别为   语法错误和逻辑错误

过去调试JavaScript的方式

  • alert( );   弹出窗口式的调试,但此窗口弹出的时候无法看到后面代码的运行情况,而且此窗口要一直点击确认按钮来查看,关闭时要把整个标签关闭
  • console.log( );  比alert()方便很多,所有结果可同时在控制台查看

断点调试

  • 断点调试时指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停止,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到错误的地方,停下即可。                                                                              F12弹出控制台,在sources的中间栏设置断点,然后F5刷新,把鼠标放到变量上可看到变量的此刻值,F11是设置断点后一步步执行的意思,跳到这一步的时候,该段选中代码是还未执行的。可在右边栏watch监视变量的变化(该变量手动选择)。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值