什么是语句?
我把他理解为场景, 不同的语句代表不同的场景.
常见的语句 :
- if 语句
- do while 语句
- while 语句
- for 语句
- for in 语句
- for of 语句
- break , continue 语句
- with 语句
- switch 语句
接下来就来详细说一下这些语句
1. if 语句
if 语句时最常用的语句之一
语法1: if ( 表达式 ) { 表达式成立的逻辑 } else { 表达式不成立的逻辑 }
语法2: if ( 表达式1 ) { 表达式1成立的逻辑 } else if (表达式2) { 表达式2成立的逻辑 } else {表达式1和2都不成立的逻辑}
const num = 5;
// if else
if (num % 2 === 1) {
console.log('num 除 2 的余数是1');
} else {
console.log('num 除 2 的余数不是1');
}
// 最终结果 : 输出 'num 除 2 的余数是1' 原因: num / 2 的余数是 1 满足条件
// if else if
if (typeof num === 'number') {
console.log('num 的类型是数字');
} else if (num === '5') {
console.log('num 全等于 "5"');
} else {
console.log('num 不满足上面的条件');
}
// 最终结果: 输出 'num 的类型是数字' 原因: typeof num === 'number' 条件成立
2. do while 语句
do while 是一种后循环语句, 先执行一次do语句块中的代码, 再依据条件是否成立判断是否继续执行do语句块中的代码 , 简单来说就是我先做了再看看能不能做 .
let str = 'a'
do {
str = str + String.fromCharCode(str.charCodeAt() + str.length);
} while (str.length < 7);
console.log(str); // abcdefg
// 简单梳理一下 : 以上代码意思就是判断 str 变量的长度是否小于7, 如果小于7就在后面拼接上一位
字符后面一位的字符
// 知识点 : String.fromCharCode(number) 将数字编码转换成对应的字符串
// charCodeAt() 返回字符串对应的编码
3. while 语句
个人认为 while 语句和 if 语句类似, 当条件满足时, 执行代码块 . 唯一的区别就是 if 语句可以写else
语法: while (condition 条件) { 条件满足执行的逻辑 } ;
// while 语句
let num = 1;
while (num < 5) {
num += 1
};
console.log(num);
// 代码说明 : 当 num 变量小于 5 的时候, 让 num 变量 +1
// 当 num 值为 4 的时候, 满足条件 num + 1 = 5 , 而 5 不小于 5 就退出循环
// 最终 num 的值为 5
4. for 语句
for 语句也是 js 中常用的语句之一, 主要用来做循环 .
语法: for (init (初始变量) , expression(条件) , loop-expression(循环体执行完的逻辑)) { 循环体 }
let arr = [];
for (let i = 1; i < 10; i++) {
arr.push(i)
}
console.log(arr);
// 代码说明: 在循环前定义 i 为 1, 当 i < 10 的时候往数组 arr 中追加 i 变量 , 最后让 i + 1
// 执行顺序 1. let i = 1
// 2. i < 10
// 3. arr.push(i)
// 4. i++
// 5. i < 10
// 6. arr.push(i)
// 7. i++ ............
// 当 i 不小于 10 时, 退出循环
注意点 : 使用 le t声明初始变量 , 而不是用 var, var会导致循环变量渗透到外部作用域
5. for in 语句
for in 语句用来遍历(枚举)对象中的非符号属性
语法 : for (const prop in obj) {...}
const obj = {
name: 'cxk',
age: '18',
sex: '男',
[Symbol('hobby')]: '打篮球', // 符号属性
};
for (const prop in obj) {
console.log(prop); // name age sex
}
// 因为 for in 可以枚举对象中的非符号属性 , 所以第四个符号属性不会被打印出来
今天有点晚了, 明天再写剩下的 ..........