什么是分支语句
- JS 代码是从上往下按照顺序依次执行的, 从第一行代码一直执行到最后一行
- 如果有一种情况是我有两段代码, 我只需要执行其中一个即可, 那么就可以用到分支语句
- 简单来说: 分支语句就是根据我们设定好的条件来决定要不要执行某些代码
if 分支语句
- if 分支语句的基本书写
if (true) {
console.log('因为条件是 true 所以 我可以打印出来')
}
- if ... else 语句的基本书写
- 语法:
if (条件) { 条件为真时 执行的代码 } else { 条件为假时 执行的代码 }
if (true) {
console.log('因为条件是 true 所以 我可以打印出来')
} else {
console.log('因为条件是 true 所以 我不会被打印')
}
if (false) {
console.log('因为条件是 false 所以 我不会被打印')
} else {
console.log('因为条件是 false 所以 我可以打印出来')
}
- if 嵌套语句的基本书写
- 可以通过
if
和 else if
来设置多个条件进行判断
- 语法:
if(条件1){条件1为true时执行} else if (条件2){条件2为true时执行}
- 会从头开始依次判断条件
- 如果第一个条件为 true 了, 那么就会执行后面的 {} 的内容
- 如果第一个条件为 false, 那么就会判断第二个条件
- 如果第二个条件也为 false, 那么会依次往后执行
- 注意
- 多个 {} 只会有一个被执行, 一旦有一个条件为 true 了, 后面的就不再判断了
- 如果所有的 条件都为 false, 那么会执行最后的 else {} 分支
- 如果所有的条件都为 false, 且没有最后的 else {} 分支, 那么当前 if 分支不会有任何代码段会被执行
- 尽可能多的使用案例帮助学员理解和使用
switch 分支语句
- switch 也是 条件判断语句的一种, 是对于某一个变量的判断(全等的判断,数据类型不一致时会导致判断失败)
switch (要判断的变量) {
case 情况1:
情况1执行的代码
break;
case 情况2:
情况2执行的代码
break;
case 情况3:
情况3执行的代码
break;
default:
上述情况都不满足时执行的代码
}
- switch 通常是判断某一个变量等于某一个值的时候使用, 比如用户输入一个数字显示今天周几, 输入一个数字显示今天是几月
- switch 穿透语句的基本书写
- 从第一个满足条件的 case 开始
- 如果没有 break, 后面的条件不在判断, 直接执行代码
- 直到遇到一个 break 或者 switch 结束
switch (2) {
case 0:
console.log('星期日')
case 1:
console.log('星期一')
case 2:
console.log('星期二')
case 3:
console.log('星期三')
case 4:
console.log('星期四')
case 5:
console.log('星期五')
case 6:
console.log('星期六')
default:
console.log('请填写一个 0 ~ 6 的数字')
}
- 尽可能多的使用案例帮助学员理解和使用
三元表达式
- 三元表达式(三元运算/三目运算/三目)
- 语法
- 意义
- 注意
- 常用场景
- 利用三目执行代码(对if else 的优化)
- 利用三目给变量赋值
var num = 5
num % 2 == 0 ? console.log('num 为偶数') : console.log('num 为奇数')
var num = 1
var gender = num == 1 ? '男' : '女'
console.log(gender)
函数的概念
- 什么是函数?
- 首先明确一点,和我们数学中的函数是两个概念
- 在 JS 中,函数可以理解为将一段在程序中多次出现的代码封装起来的盒子,以便在多个地方调用执行
- 换句话说:函数就是一个内部封装了部分代码的盒子,可以在多个位置被调用
- 函数的使用
函数的定义
function fn() {
}
var fn = function () {
}
函数的调用
function fn1() {
}
var fn2 = function () {
}
fn1()
fn2()
声明式与赋值式的区别
fn1()
function fn1(){
}
fn1()
fn2()
var fn2 = function () {
}
fn2()
函数的参数
- 参数是什么?
- 如果没有参数,那么函数的执行功能是固定的,写好函数后内部内容将不会变
- 比如:函数内部的代码为 1 + 1,那么始终执行时始终都是 1 + 1,如果此时想要计算 1 + 2 的值,需要重新封装一个 1+2 的函数
- 参数在哪里?如何使用
- 书写函数时有一个 () 内部就是书写参数的,函数分为两种,形参---实参
- 形参和实参的区别
- 形参:在函数声明时 function 后边的()内书写,每写一个参数,就相当于在函数内部创建一个变量,其值为函数调用时传递的值,只能在函数内部使用,不能在外部使用
- 实参:顾名思义,实际的参数,也就是函数在调用时传递的参数
function num () {
console.log(1 + 1)
}
num()
function num (a, b) {
console.log(a + b)
}
num(1, 1)
num(1, 2)
function num1(a, b, c, d) {
console.log(a,b,c,d)
}
num1(1, 2, 3, 4)
num1(1, 2, 4)
num1(4)
function num2 (a) {
console.log(a)
}
num2(1, 2)
num2(1)
函数的返回值
- 返回值是什么?有什么作用
- 函数内部默认有一个 return 他的值就是函数的返回值,如果函数内部不写 return 那么函数默认在函数体内部最底部返回一个 undefined
- 如果不想返回 undefined 需要手动在函数内部写上 return 并且跟上需要返回的值
- 可以中断函数(后续通过代码演示)
function num (a, b) {
a+b
}
var ab = num(1,2)
console.log(ab)
function num (a, b) {
console.log('函数内部执行的 a + b =',a+b)
}
var ab = num(1,2)
console.log('函数外部执行的 a + b =',ab)
函数的优点
- 函数其实就是将一段需要多次调用的代码抽离出来封装到一个盒子内部,方便在多个地方调用时简单化代码
- 抽离公共代码,项目代码整体更加简洁
- 方便(复用),在需要的地方直接 函数名 + 小括号 调用即可
函数的预解析
- 什么是预解析
- 在代码运行前,先全部分析一遍代码,这个行为叫做预解析(预解释)
- 预解析的内容
fn()
console.log(a)
function fn() {
console.log(100)
}
var a = 100
function fn() {
console.log(100)
}
var a
fn()
console.log(a)
a = 100
循环语句
while 循环语句
- while,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了
- 语法
while (条件) { 满足条件就会执行 }
- 因为满足条件就执行, 所以我们写的时候一定要注意, 就是设定一个边界值, 不然就一直循环下去了, 简称: 死循环, 电脑卡死的时间根据电脑性能有所不同, 建议不要尝试
var num = 0
while (num < 10) {
console.log('当前 num 的值是: ', num)
num += 1
}
do...while 循环语句
- 是一个和 while 循环类似的循环
- while 会先进行条件判断, 满足就执行, 不满足就直接不执行了
- do...while 的循环是 先不管条件, 先执行一次, 然后再开始进行条件判断
- 语法:
do { 要执行的代码 } while (条件)
var num = 10;
do {
console.log('我执行了一次')
num += 1
} while (num < 10)
for 循环语句
- 和 while do while 循环都不太一样的一种循环结构
- 但道理是和其他两种一样的, 都是循环执行代码的
- 语法:
for (var i = 0; i < 10; i++) { 要执行的代码 }
for (var i = 1; i <= 10; i++) {
console.log(i)
}
流程控制语句
- break 关键字的应用
- 在循环没有进行完毕的时候, 因为我设置的条件满足了, 就直接提前终止循环
- 举个例子: 我要吃五个包子, 我吃了三个了, 这时候吃饱了吃不下去了, 我就停止了继续吃包子这件事
- 那么此时要停止循环, 就可以直接使用 break 关键字
for (var i = 1; i <= 5; i++) {
console.log('我吃了一个包子')
if (i == 3) {
break
}
}
- continue 关键字的应用
- 在循环中, 把循环的本次跳过去, 继续执行后续的循环
- 举个例子: 还是吃五个包子, 要吃第三个的时候, 第三个掉地上了, 所以就不吃第三个了, 继续吃第四个和第五个
- 跳过本次循环, 就可以使用 continue 关键字
for (var i = 1; i <= 5; i++) {
if (i == 3) {
console.log('这是第三个包子, 掉地下了, 我不吃了')
continue
}
console.log('我吃了一个包子')
}
循环嵌套的书写
for (var i = 0; i < 3; i++) {
for (var k = 1; k < 4; k++) {
}
}