一、运算符
1. 算数运算符
优先级:运算法则与乘除法相同。
2. 赋值运算符
赋值运算符:对变量进行赋值的运算符。
= 将等号右边的值赋予给左边,要求左边必须是一个容器。
+= 、-=、*=、/=、%=
3. 一元运算符
根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符。
一元运算符:
例:正负号
自增/自减:++/-- 表达的意思是让变量+1/-1
let num = 1
// 一元运算符
++num //前置自增
num++ //后置自增
// 前置自增和后置自增单独使用时没有区别的,都可以等价于 num += 1
console.log(num)
// 前置自增和后置自增如果参与运算是有区别的:(难点)
// 前置自增:先自加再使用
let i = 1
console.log(++i + 1) //4
// 后置自增:先使用再自增
let t = 1
console.log(i++ + 2)//3
console.log(i)
二元运算符:
let num = 10 + 20
4. 比较运算符
> :左边是否大于右边
< : 左边是否小于右边
== : 左右两边是否相等
=== :左右两边是否类型值都相等
!== : 左右两边是否不全等
5. 逻辑运算符
解决多重条件判断。
&& | 与 | 并且 | 一假则假 |
|| | 或 | 或者 | 一真则真 |
! | 非 | 取反 | 真假变换 |
短路: 左边就能判断出结果,不再看右边
|| | 左边为true就短路 |
&& | 左边为false就短路 |
6. 运算符优先级
掌握运算符优先级,能判断运算符执行的顺序。
优先级 | 运算符 | 顺序 |
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算数运算符 | 先* / % 后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先 && 后 || |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
二、 语句:
1.表达式和语句
表达式:是一组代码的集合,可以计算出一个结果
语句:用来自行以是某件事情发生
2.分支语句
a、If分支语句
双分支:
if (条件) {
满足条件要执行的代码
}else {
不满足条件执行的代码
}
多分支:
if(条件1){
代码1
} else if (条件2){
代码2
} else if (条件3){
代码3
} else {
代码4
}
b、三元运算符(三元表达式)
// 条件 ?满足条件执行的代码 :不满足条件执行的代码
// 条件为真返回第一个值;假为第二个值
3 > 5 ? alert('真,返回第一个') : alert('假,返回第二个')
c、switch 语句
目标:能利用switch执行满足条件的语句
注意:1.一般用于等值判断,不适合于区间判断
2. 一般都要配合break关键字使用,没有break会造成case穿透
switch (数据) {
case 值1:
代码1
break
case 值2:
代码2
break
···
default:
代码n
break
}
3. 循环结构
a. 断点调试
在浏览器检查的sourse里面进行,断电后需要刷新。
b.while循环
while (循环条件) {
要重复执行的代码(循环体)
}
必须的三要素:
1.变量起始值
2.终止条件(没有终止条件,循环会一直执行,造成死循环)
3.变量变化量(用自增或者自减)
循环退出
目标:说出continue和break的区别
循环结束:
continue :结束本次循环,继续下次循环。
break :跳出循环
三、循环-for
1.for循环基本使用
1.for循环语法
for (声明记录循环次数的变量;循环条件;变化值) {
循环体
}
2.循环数组
//循环数组:
// 需求:请将 数组['貂蝉', '小乔', '西施', '王昭君', '甄姬'] 依次打印出来
// 循环的另外一个叫法,遍历(循环的最大价值就是遍历数组)
let arr = ['貂蝉', '小乔', '西施', '王昭君', '甄姬']
document.write(arr.length)
// arr.length 数组的长度 通过它可以告诉我们里面有几个数组
for (let n = 0; n <= arr.length - 1; n++){
document.write(`<br> ${arr[n]}`)
3.小结:
for循环和while循环有什么区别:明确了循环次数用for循环,不明确循环次数推荐使用while循环。
2.循环嵌套
一个循环再嵌套一个循环,最大价值就是遍历数组。
for (外部声明记录循环次数的变量;循环条件;变化值) {
for (内部声明记录循环次数的变量;循环条件;变化值) {
循环体
}
}
四、数组
数组是一种可以按顺序保存数据的数据类型;数组可以存储任意类型的数据。
1.数组基本使用
1.遍历数组
用循环把数组中每个元素都访问到,一般会用for循环遍历。
for (let i = 0; i < 数组名.length; i++) {
数组名[i]
}
2.数组求和
// 需求 : 求数组[2, ,6, 1, 7, 4]里面所有元素的 和 以及 平均值
let arr = [2, 6, 1, 7, 4]
// 求和变量
let sum = 0
// 平均值变量
let avg = 0
// 遍历数组 arr.length是数组里面数据的个数有多少个的意思
for (let i = 0; i < arr.length; i++) {
// console.log(arr[i]) 先测试一下能不能打印出来
sum += arr[i]
}
avg= sum / arr.length
document.write(`总分是:${sum}, 平均分是:${avg}`)
2.操作数组
数组本质是数据集合,操作数据无非就是 增 删 改 查 语法:
增:数组添加新的数据
arr.push(新增的内容)
arr.unshift(新增的内容)
删:删除数组中的数据
arr.pop()
arr.shift()
arr.sploce(操作的下标,删除的个数)
查:查询数组数据
数组[下标]
改:重新赋值
数组[下标] = 新值
(重点)目标:利用push向数组添加元素(数据)
1. 数组增加新的数据
数组.push() 方法将一个或者多个元素添加到数组的末尾,并返回该数组的新长度(重点)。
arr.push(元素1,···,元素n)
arr.unshift(新增的内容) 方法将一个或者多个元素添加到数组的开头,并返回该数组的新长度。
2.数组删除元素
数组 .pop() 方法从数组中最后一个元素,并返回改元素的值
arr.pop()
数组.shift() 方法从数组中删除第一个元素,并返回该值。
arr.shift()
arr.sploce() 方法 删除指定元素
arr.sploce(start, deleteCount)
arr.splice(起始位置, 删除几个元素)
删除元素的使用场景:
1. 随机抽奖:中奖的用户就需要从数组里面删除,不允许重复中奖。
2.商品删除:点击删除按钮,相关的数据会从商品数据中删除