目录
1 运算符
1.1 赋值运算符
1.2 一元运算符
1.3 比较运算符
1.3.1 比较运算符的介绍
1.3.2 比较运算符
1.3.3 运算符使用
1.4 逻辑运算符
1.5 运算符优先级
2 语句
2.1 表达式和语句
2.2 分支语句
2.2.1 程序三大流程控制语句
2.2.2 if语句
2.2.3 三元运算符
2.2.4 switch语句
2.3 循环语句
2.3.1 断点调试
2.3.2 while 循环
2.3 循环退出
3 综合案例-简易ATM取款机案例
1 运算符
共五类: 一元运算符/算数运算符/比较运算符/逻辑运算符/赋值运算符
1.1 赋值运算符目标: 能够使用赋值运算符简化代码
◇赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个容器其他赋值运算符: += 【+= 出现是为了简化代码, 比如让 let num = 10 ,num 加5 → num += 5】 -=*=/=%=◇使用这些运算符可以在对变量赋值时进行快速 *** 作
1.2 一元运算符目标: 能够使用一元运算符做自增运算
众多的 JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
1 二元运算符:
二元:式中有两个数据(表达式)
2 一元运算符:
(适用于增减幅度为1的情况, 大于1 则使用赋值运算符)
◇正负号
◇ 自增:
符号:++作用:让变量的值 +1前置/后置◇自减:
符号:--作用:让变量的值 -1使用场景:经常用于计数来使用。 比如进行10次 *** 作,用它来计算进行了多少次了 1.3 比较运算符 1.3.1 比较运算符的介绍使用场景:比较两个数据大小、是否相等
实际运用例子: 1.3.2 比较运算符> : 左边是否大于右边
<: 左边是否小于右边>=: 左边是否大于或等于右边<=: 左边是否小于或等于右边=: 左边是否大于或等于右边/单等赋值==: 左右两边值是否相等===: 左右两边是否类型和值都相等 (开发中判断是否相等,强烈推荐使用)!=: 左右两边是否不等!==: 左右两边是否不全等比较结果为boolean类型,即只会得到 true 或 false 1.3.3 运算符使用◇字符串比较,是比较的字符对应的ASCII码
eg:"abc">"def"→65>68→false从左往右依次比较如果第一位一样再比较第二位,以此类推比较的少,了解即可◇NaN(not a number)不等于任何值,包括它本身(不用于比较判断)
涉及到"NaN“ 都是false typeof(NaN)→numberconsole.log(NaN===NaN)//false NaN◇null与undefined
console.log(null==undefined)//trueconsole.log(null===undefined)//false◇尽量不要比较小数,因为小数有精度问题
console.log(0.1+0.2===0.3)//false ∵0.1+0.2=0.30000000004◇不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较console.log(123=='123')//true
//等号会让'123'变为Number123 因此相等,如此没有===严谨
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
1.4 逻辑运算符
◇提问:如果我想判断一个变量 num 是否大于5且小于10,怎么办?
错误写法: 5 < num < 10◇使用场景:逻辑运算符用来解决多重条件判断
正确写法: num > 5 && num < 10◇逻辑运算符 (全真为真,一假则假) 优先级:非与或
console.log(!false)//true
练习 判断
逻辑的运算结果未必是布尔值(除非两边都是布尔值)
console.log(0 ? false : true)
运算方法(※):
① JS中的||符号:(第一个true就true)
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。 只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
总结:或-真前假后
②JS中的&&符号:(第二个true才true)
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值; 只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
总结:且-假前真后
练习 • 判断一个数是4的倍数,且不是100的倍数
需求:用户输入一个,判断这个数能被4整除,但是不能被100整除,满足条件,页面d出true,否则d出 false
分析: ①:用户输入 ②:判断条件, 看余数是不是0,如果是0就是能被整除,余数不是0,则不能被整除
let num=prompt('请输入数字:')
let four = +num%4
let ten=+num%10
alert(four===0 && ten!==0)
1.5 运算符优先级
目标:掌握运算符优先级,能判断运算符执行的顺序 【阔姨酸碧螺福豆】
一元运算符里面的逻辑非优先级很高 逻辑与比逻辑或优先级高练习:
let a = 3 > 5 && 2 < 7 && 3 == 4
console.log(a);
let b = 3 <= 4 || 3 > 1 || 3 !== 2
console.log(b);
let c = 2 === "2"
console.log(c);
let d = !c || b && a
console.log(d);
2 语句
2.1 表达式和语句
1 表达式
表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。
(检验方法:可以被console.log输出结果的,都是表达式)
包括:
◇字面量(100/'我是大佬'/true/[])
◇有运算符参与的运算
2 语句
语句是一段可以执行的代码。 比如: prompt() 可以d出一个输入框,还有 if语句 for 循环语句等等
◇表达式和语句的区别
因为表达式可被求值,所以它可以写在赋值语句的右侧。
而语句不一定有值,所以比如 alert() for和break 等语句就不能被用于赋值。
2.2 分支语句◇分支语句可以让我们有选择性的执行想要的代码
◇分支语句包含:
If分支语句三元运算符switch 语句 2.2.1 程序三大流程控制语句以前我们写的代码,写几句就从上往下执行几句,这种叫顺序结构
有的时候要根据条件选择执行代码,这种就叫分支结构某段代码被重复执行,就叫循环结构 2.2.2 if语句if语句有三种使用:单分支、双分支、多分支
1 单分支使用语法
括号内的条件为true时,进入大括号里执行代码 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型6个值是假:false\0\空字符串\NaN\undefined\null(false)如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~2 双分支if语法
let num = prompt('请输入高考成绩')
if (+num >= 700) {
alert('恭喜考入清华大学')
}
else {
alert('回家去吧')
}
练习-判断用户登录案例
需求:用户输入,用户名:pink,密码:123456, 则提示登录成功,否则提示登录失败
let uname = prompt('请输入用户名')
let keyword = prompt('请输入密码')
if (uname ==='pink'&&keyword === '123456') {
alert('登陆成功')
}
else {
alert('登陆失败')
}
练习-判断闰年案例
需求:让用户输入年份,判断这一年是闰年还是平年并d出对应的警示框
注:能被4整除但不能被100整除,或者被400整除的年份是闰年,否则都是平年
3 多分支if语句
使用场景: 适合于有多个结果的时候, 比如学习成绩可以分为: 优 良 中 差
释义:
先判断条件1,若满足条件1就执行代码1,其他不执行若不满足则向下判断条件2,满足条件2执行代码2,其他不执行若依然不满足继续往下判断,依次类推 若以上条件都不满足,执行else里的代码n 2.2.3 三元运算符◇使用场景: 其实是比 if 双分支 更简单的写法,可以使用 三元表达式
◇符号:? 与 : 配合使用
◇语法:
◇一般用来取值
案例 判断2个数的最大值
需求:用户输入2个数,控制台输出最大的值 分析: ①:用户输入2个数 ②:利用三元运算符输出最大值
let num1 = +prompt('请输入第一个数字')
let num2 = +prompt('请输入第二个数字')
num1 > num2 ? alert(num1) : alert(num2)
or (后种为推荐写法)
let num1 = +prompt('请输入第一个数字')
let num2 = +prompt('请输入第二个数字')
let num3 = num1 > num2 ? num1 : num2
alert(num3)
2.2.4 switch语句
释义:
找到跟小括号里数据全等的case值,并执行里面对应的代码若没有全等 === 的则执行default里的代码例:数据若跟值2全等,则执行代码2注意事项:
1. switch case语句一般用于等值判断,不适合于区间判断
2. switch case一般需要配合break关键字使用(每句都) 没有break会造成case穿透(即从条件满足的代码起,到break前每个代码都会执行,无论条件)
案例 简单计算器
需求:用户输入2个数字,然后输入 + - * / 任何一个,可以计算结果
分析: ①:用户输入数字 ②:用户输入不同算术运算符,可以去执行不同的运算 (switch)
let n1 = +prompt('请输入第一个数字')
let n2 = +prompt('请输入第二个数字')
let symbol = prompt('请输入算数运算符[+-*/]')
switch (symbol) {
case '+':
alert(`计算结果为${n1 + n2}`)
break
case '-':
alert(`计算结果为${n1 - n2}`)
break
case '*':
alert(`计算结果为${n1 * n2}`)
break
case '/':
alert(`计算结果为${n1 / n2}`)
break
default:
alert('输入有误')
break
}
案例-用户输入年份和月份,打印出这个月有多少天(★)
2.3 循环语句
2.3.1 断点调试
作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
◇浏览器打开调试界面
1. 按F12打开开发者工具
2. 点到sources一栏
3. 选择代码文件
◇断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来
2.3.2 while 循环while循环:在满足条件期间,重复执行某些代码。 比如我们运行相同的代码输出5次(输出5句 “我学的很棒”)
1 while 循环基本语法
释义:
循环条件为true才会进入循环体, 执行代码while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到 小括号判断条件,直到括号内条件不满足,即跳出2 while 循环三要素
循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程。
所以,while循环需要具备三要素:
1. 变量起始值
2. 终止条件(没有终止条件,循环会一直执行,造成死循环)
3. 变量变化量(用自增或者自减)
效果可用断点调试观察
练习1.页面输出1-100
let i =1
while(i<=100) {
document.write(`${i}
`)
i++
}
练习2. 计算从1加到100的总和并输出
let i=1
let sum=0
while (i<=100){
sum += i
i++
}
document.write (sum)
练习3. 计算1-100之间的所有偶数和
法一:
let i = 1
let even = 0
let sum = 0
while (i <= 100) {
even = i % 2 === 0 ? i : 0
sum = even + sum
i++
}
document.write(sum)
法二:
let i = 0
let sum = 0
while (i <= 100) {
if (i % 2 === 0) {
sum += i
}
i++
}
document.write(sum)
练习4 死循环判断
依据:
只有条件为真且无终止条件,才会出现死循环.0为六个假条件之一,所以不会死循环.不为假,则为真.所以其它选项为真条件,但无终止条件. 2.3 循环退出循环结束:(也是执行语句的一种)
continue:结束本次循环,继续下次循环break:跳出所在的循环◇ 区别:
continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continuebreak 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用练习-页面d框
需求:页面d出对话框,‘你爱我吗’,如果输入‘爱’,则结束,否则一直d出对话框
分析:
①:循环条件永远为真,一直d出对话框
②:循环的时候,重新让用户输入
③:如果用户输入的是: 爱,则退出循环 (break)
while (true) {
// 2 判断 满足条件 则break循环
let love = prompt('你爱我吗')
if (love === '爱') {
alert('真的吗?我不信')
break
}
}
3 综合案例-简易ATM取款机案例*
需求:用户可以选择存钱、取钱、查看余额和退出功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)