女神节也要努力,愿每一个女神早日月薪过万!
一、表达式和语句
表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果。JavaScript整句或命令,JavaScript语句是以分号结束(可以省略)。
区别: 表达式计算一个值,但语句用来做事。
二、分支语句
程序三大流程控制语句:
- 顺序结构:从上到下执行
- 分支结构:条件选择执行
- 循环结构:重复循环执行
1、if语句
if
语句有三种使用方法,单分支、双分支、多分支。if()
括号里的条件为真,语句被执行。
- 单分支:
if (条件) { 满足条件执行的语句 }
- 双分支:
if (条件) { 满足条件执行的语句 } else { 不满足条件执行的语句 }
- 多分支:
if (条件1) { 代码1 } else if (条件2) { 代码2 } else if ( 条件3 ) { 代码3 } ... else { 代码n }
实例:
// 分支语句 分时问候
let time = prompt('请输入时间:')
if (time < 12) {
document.write('上午好!')
} else if (time < 18) {
document.write('下午好!')
} else if (time < 20) {
document.write('晚上好!')
} else {
document.write('夜深了,头发还好吗?')
}
2、三元运算符
其实是比if
双分支更简单的写法,有时候也叫做三元表达式。
- 三元运算符:
条件 ? 满足条件执行的代码 : 不满足条件的代码
实例:
// 数字补0
let num = prompt('请输入数字')
let t = num < 10 ? 0 + num : num
document.write(t)
3、switch语句
switch case
语句一般用于等值判断,不适合用于区间判断。需要配合break
关键字使用,没有会造成case
穿透。当()
里的数据与case
值全等(===
)时,执行相应代码语句。也可用多分支代替。
- switch语法:
switch (数据) { case 值1: 代码1; break; case 值2: 代码2; break; default: 代码n; break; }
实例:
// 简单计算器
let num1 = +prompt('请输入第一个数字:')
let num2 = +prompt('请输入第二个数字:')
let sp = prompt('请输入运算符号:')
switch (sp) {
case '+' :
alert(`您选择的是加法,结果是:${num1 + num2}`)
break
case '-' :
alert(`您选择的是减法,结果是:${num1 - num2}`)
break
case '*' :
alert(`您选择的是乘法,结果是:${num1 * num2}`)
break
case '/' :
alert(`您选择的是除法,结果是:${num1 / num2}`)
break
default :
alert('请输入 + - * /')
}
三、循环语句
断点调试
断点调试用于更快找出bug。
调试步骤:
- F12打开开发者工具
- 点到sources一栏
- 选择代码文件
- 单击某一行设置断点,刷新页面
图示:
1、while循环
- while循环语法:
white (循环条件) { 要重复的代码 }
循环三要素:
- 变量起始值
- 终止条件(没有终止条件,循环会一直进行,造成死循环)
- 变量变化量(用自增或自减)
实例:
let i = 1
while (i <= 10) {
document.write(`月薪过${i}万<br>`)
i++
}
循环退出
continue
:结束本次循环break
:跳出所在循环
2、for循环
- for循环语法:
for (起始值; 循环条件; 变化值) { 循环体 }
for
循环通常用于遍历明确次数的数组,当不明确遍历次数时用white
循环。
3、for循环嵌套
一个循环里再套一个循环,一般用在for
循环里。
打印九九乘法表实例:
<!DOCTYPE html>
<html lang="en">
<head>
<style>
span{
display: inline-block;
width: 80px;
margin: 5px;
padding: 0 10px;
text-align: center;
background-color: blueviolet;
border: 1px solid rgb(96, 8, 179);
border-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
}
</style>
</head>
<body>
<script>
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
document.write(`<span>${i} x ${j} = ${i * j}</span>`)
}
document.write('<br>')
}
</script>
</body>
</html>
效果:
四、数组
数组是一种可以按照顺序保存数据的数据类型。
1、数组基本用法
- 声明数组,赋值数组
- 元素,下标,长度
变量.length
- 遍历数组
实例:
let arr = [2, 6, 1, 7]
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
average = sum / arr.length
document.write(`这个同学的总分是:${sum},平均分是:${average}`)
// 这个同学的总分是:16,平均分是:4
2、操作数组
操作数组就是增删改查语法。
- 数组添加数据:
arr.push(新增的内容)
arr.unshift(新增的内容)
- 删除数组中数据:
arr.pop()
arr.shift()
arr.splice(操作的下标, 删除的个数)
- 重新赋值:
数组[下标] = 新值
- 查询/访问数组数据:
数组[下标]
(1)数组增加新的元素
数组.push(元素1, ..., 元素n)
:一个或多个元素添加到数组的末尾,并返回该数组的新长度。数组.unshift(元素1, ..., 元素n)
:一个或多个元素添加到数组的开头,并返回该数组的新长度。
实例:
let arr = [0, 1, 2, 3, 4]
let newLength = arr.push(5)
document.write(arr) // 0,1,2,3,4,5
(2)数组删除元素
数组.pop()
:从数组中删除最后一个元素,并返回删除元素的值。数组.shift()
:从数组中删除第一个元素,并返回删除元素的值。数组.splice(起始位置, 删除个数)
:删除指定元素,并返回删除元素的值。
实例:
let arr = [0, 1, 2, 3, 4]
let ele = arr.pop()
document.write(arr) // 0,1,2,3
arr.splice(2, 2)
document.write(arr) // 0,1
3、冒泡排序
实例:
let arr = [3, 5, 2, 0, 1], temp
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
document.write(arr) // 0,1,2,3,5