01-if语句
if 是ECMAScript中的 关键字
// 单词含义 如果
// 它是分支结构的功能语句
// 它决定了代码是否会执行(它不会改变代码的执行顺序)
// 基本语法:
// if(布尔表达式){ 语句块(一个或多个语句组成) }
// 执行机制
// 当JavaScript引擎 执行到if语句时
// 首先判断 小括号中的 布尔表达式的结果
// 若小括号中 存放的不是布尔表达式 则会将值当作布尔值进行判断
// 结果为true 执行 then(语句块)
// 结果为false 不执行 then
// 返回布尔值的操作
// > < >= <= == != === !== ! && ||
// Number.isNaN()
// Number.isInteger()
// console.log(1);
// if(3<2){
// console.log(‘ok’);
// }
// console.log(2);
// ——————————————————————————
// if条件中的值 会自动当作布尔值进行判断
// if(‘你好’){
// console.log(‘世界’);
// }
// var message;
// if(!message){ // undefined -> true
// message = ‘hello world’;
// }
// console.log(message);
// ——————————————————————————-
// 在开发过程中 if语句的then 如果只有一条语句 可以省略大括号
// 如果需要省略大括号 将语句和 if 同行书写
// if(2<1) console.log('你好');
// console.log(‘世界’);
// 2>1 && console.log(‘你好’);
02-if - else语句
// else 关键字
// 单词含义 否则
// else 关键字 需要和 if关键字一起出现 无法单独使用
// 语法:
// if(布尔表达式){ 语句块1 }else{ 语句块2 }
// 语法含义
// 当if语句的条件为true 执行 语句块1
// false 执行语句块2
// ——————————————————————
// if 和 if-else的区别
// if 语句 决定了代码是否要执行
// if-else 决定了代码执行哪一个语句块
// var age = 22;
// if(age>=18){
// console.log(‘成年人’);
// console.log(‘去喝酒’)
// }else {
// console.log(‘未成年’);
// console.log(‘去学习’);
// }
// if-else 和 条件运算符的区别
// if-else 代码块中 可以放多条语句
// 条件运算符 只能有一条语句
// 条件运算符的可读性不如if-else
// 所有的条件运算符能完成的操作都可以使用if-else代替
// 但是不是所有if-else能完成的操作都能替换成条件运算符
// age>=18?console.log(‘成年人,去喝酒’):console.log(‘未成年,去学习’);
// ——————————————-
// if-else 嵌套使用
// if(3>2){
// if(2>1){
// console.log(1);
// }
// }else{
// console.log(2);
// }
// if(3>2 && 2>1){
// console.log(1);
// }else{
// console.log(2);
// }
// 多个条件依次判断
03-else - if
// prompt() 函数
// 弹出一个带有输入框的 警告窗
// prompt 返回的结果是字符串类型
// if(age>=18){
// console.log(‘成年人’);
// }else{
// console.log(‘未成年’);
// }
// 需要保证输入的age是一个有效的数字
// 多条件依次判断
// 当第一个条件不满足时 判断下一个条件
// if(Number.isNaN(age)){
// console.log(‘输入的年龄不是数字, 请刷新页面重新输入’);
// }else{
// if(age>=18){
// console.log(‘成年人’);
// }else{
// console.log(‘未成年’);
// }
// }
// ECMAScript 为了解决 if-else 的嵌套问题(多条件依次判断)
// 提供了 else if 语句
// 允许有多个 else if 语句 else 语句也是可选的
04-switch语句
// 它相比 if-else 更加特殊
// 它决定了代码执行的入口
// 一般情况用于判断 某个范围内的特定值
// 在描述语法时 出现中括号表示可选
不带break的特点 自动向下穿透执行
// 语法:
// switch(变量){
// case 常量:
// do…
// [break;]
// case 常量:
// do…
// [break;]
// case 常量:
// do…
// [break;]
// [default:]
// }
// 变量 存储数据的容器 存储的值是可以改变的
// 常量 存储数据的容器 存储的值是不可改变的(固定的值)
// console.log(25);
// console.log(‘abc’);
// var num = 3;
// console.log(num);
// num++;
// console.log(num);
// ——————————————————————————————
// switch case结构用于解决分支问题
// switch 解决的分支功能都可以使用 if-else 代替
// switch case 擅长解决特定的分支问题 枚举类型(可列举的数据)的分支
// switch 比较的 是 枚举类型变量 和 某个值 相等的比较(采用严格相等)
// switch 从程序的某个入口 进入执行 执行到break语句为止
// 如果某个入口 没有添加 break 关键字 则继续向下执行 直到遇到break关键字为止
// break 关键字 非必要(看需求加) 结束switch结构
// default 关键字 非必要(看需要加) 当所有的case结果都符合相等条件则执行default
// if-else 适用性更广 可以判断 相等、不相等、大于、小于 等情况
// switch 只能用于判断 枚举 相等的情况
// 在枚举问题的处理上
// switch结构更加清晰 且效率更高
05-while循环
// while 是循环结构
// while 也是ECMAScript中的关键字
// 基本语法:
// while ( 布尔表达式 ){ 语句块 }
// 当JavaScript引擎 执行到 while 语句时
// 判断布尔表达式的结果 若小括号中不是布尔表达式 则会将值当作布尔值判断
// 1. 布尔表达式的结果为 true 执行循环体( 语句块 )
// 2. 布尔表达式的结果为 false 跳过循环体( 语句块 )
// 当循环体 执行结束后 会继续回到条件判断 直到布尔表达式的结果为 false 为止
// 使用循环时 需要设置布尔表达式可以变成 false 的情况( 循环出口 )
// 若一个循环没有设置出口 则为 ‘死循环’
// 设置循环条件时 需要为循环条件中添加 变量
// while (true){
// console.log(‘ok’);
// }
06-break语句
// 在循环体中可以添加 关键字 break
// 它在switch中的作用是 结束switch结构
// 这个关键字出现在循环中的作用是结束当前循环
// 所有循环结构( while / do-while / for ) 都可以使用这个关键字
// 结束循环的含义是 当前代码块中剩余的代码 不再执行了(break 以后的代码不再执行) 并且结束循环
07-continue语句
// continue 关键字<br /> // 它可以出现在 循环结构中(while / do-while / for)<br /> // 关键字的英文含义 继续<br /> // 跳过本次循环 剩余代码 进入下一次循环(判断)
08-do-while
多了一个关键字 do
// 基本语法:
// do{ 代码块 }while(布尔表达式);
// while 和 do-while非常相似
// do-while 会先执行一次代码块 再判断条件 若条件为true 则继续执行代码块
// while 会先判断条件 条件为true 则执行代码块 条件为false 不执行代码块
// while 是先判断 后执行
// do-while 是 先执行 后判断
// 在初始条件为false时 do-while会执行一次 而while一次都不执行
// 其他情况没有区别