JavaScript基础Day2

在这里插入图片描述
在这里插入图片描述
算术运算符的优先级顺序:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<script>
        let r = prompt('请输入半径值')
        let result = 3.14 * r * r
        document.write(`计算之后圆的面积是:${result}`)
    </script>

赋值运算符:
在这里插入图片描述
num += 1 即为 num = num + 1
在这里插入图片描述
一元运算符:
像二元运算符,加减乘除这些,它至少需要两个数才能成立。
在这里插入图片描述
在这里插入图片描述
只有自增和自减,每次只能加减1
在这里插入图片描述
++属于一元运算符
前置自增和后置自增单独使用没有区别

在这里插入图片描述
前置自增,是先自加后使用,所以结果等于4
而后置自增是先使用,后自加,所以结果是3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析:
i++是自增后置,需要先用后加,所以在这里i++ = 1,用完之后加一,到++i时 i = 2,所以++i = 2 +1 =3,此时i = 3,所以最后结果是1 +3 + 3 = 7
在这里插入图片描述
比较运算符:
在这里插入图片描述
在这里插入图片描述
=是赋值运算符,双等才是相等,但是在前端里真正要求的相等必须用三等: ===
在这里插入图片描述
在这里插入图片描述
这里因为有比较运算符,会把字符串’2’转化成数字型2,然后进行大小比较
在这里插入图片描述
在这里插入图片描述
逻辑运算符:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
逻辑与:一假则假
逻辑或:一真全真
逻辑非:取反

在这里插入图片描述
10是真的,所以不短路
有五个值,是当false来看的,其余的都是真的(true)
在这里插入图片描述
在&&中,如果前面的就错了,就不会判断后面是否正确,直接判断错误,这种情况就是短路

逻辑或:
在这里插入图片描述
在这里插入图片描述
逻辑运算符——练习:
在这里插入图片描述
代码:

<script>
        let num = prompt('请输入一个数字:')
        console.log(num % 4 === 0 && num % 100 !== 0)
    </script>

拓展:
(解释:考虑到用户不输入数字的情况,所以num要么是数字要么就是空字符串判断为0,方便程序判断)

<script>
let num = prompt('请输入一个数字:')
        num = num || 0
        console.log(num)
       
        console.log(num % 4 === 0 && num % 100 !== 0)
</script>

运算符优先级:
在这里插入图片描述
注意:
一元运算符里面的逻辑非优先级很高
逻辑与 比逻辑或 优先级更高
在这里插入图片描述

表达式和语句及if分支:

表达式和语句:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分支语句:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

<script>
    if (3 < 5) {
        console.log('真的')
    }
</script>  

小作业:
在这里插入图片描述
代码:

<script>
    let num = prompt('请您输入高考成绩')
    if (num > 700) {
        alert('恭喜考入黑马程序员')
    }
</script>  

在这里插入图片描述
双分支课堂案例:
在这里插入图片描述
案例1:
方法1(其实里面prompt是需要在前面加+号的,为了转换数据类型为数字型,但是因为下面有比较运算符代替转换了,如果严谨一些的话要给它加+号)

<script>
        let year = prompt('请输入您的工龄:')
        let bonus = 0
        if (year >= 1) {
            // bonus为奖金的变量
            bonus += 2000
            console.log(bonus)
            alert('年底给你加两千奖金')
        } else {
            console.log(bonus)
            alert('你在想屁吃,没有年终奖')
        }
    </script>

方法2:

<script>
	let year = prompt('请输入您的工龄:')
        let money = 10000
        if (year >= 1) {
            
            alert(`您实发工资:${money + 2000}`)
        } else {
            
            alert(`您实发工资:${money}`)
        }
</script>

案例2:

<script>
	let time = +prompt('请您输入具体年份:')
        if (time % 4 === 0 && time % 100 !== 0 || time % 400 === 0) {
            alert(`${time}年是闰年`)
        } else {
            alert(`${time}年是平年`)
        }
</script>

在这里插入图片描述
多分支语法案例:
(注意最后结尾else的格式 )
在这里插入图片描述
代码:

<script>
    let time = prompt(`请输入现在的时间:`)
    if (time < 12) {
        document.write(`上午好,好好工作吧`)
    } else if (time < 18) {
        document.write(`下午好,好好工作吧`)
    } else if (time < 20) {
        document.write(`晚上好,好好加班吧`)
    } else {
        document.write(`夜深了还没睡觉吗`)
    }
</script>    

三元运算符:
三元运算符可以看作更简单的if分支写法
在这里插入图片描述
eg:

<script>
        console.log(true ? 1 : 2)
        console.log(false ? 1 : 2)

		3 > 5 ? alert('第一个')alert('第二个')
    </script>    

觉得以下代码有些冗杂,可以进行代码优化:

num1 < num2 ? console.log(num1) : console.log(num2)

优化代码:(将三元表达式放进变量声明中,让变量re代表最后选择哪个num)

let re = num1 > num2 ? num1 : num2
        console.log(re)

案例1:
在这里插入图片描述
代码:

<script>
	let num1 = +prompt('请输入数字1')
    let num2 = +prompt('请输入数字2')
    let re = num1 > num2 ? num1 : num2
    document.write(re)
</script>    

案例2:
在这里插入图片描述

<script>
        let num = +prompt('请输入一个数字')
        let re = num >= 10 ? num : '0' + num
        document.write(re)
    </script>

switch语句:
在这里插入图片描述
它的检索效率是最高的,会直接去找对应的代码。
eg:

<script>
        switch (1) {
            case 1:
                alert(1)
                break
            case 2:
                alert(2)
                break
            case 3:
                alert(3)
                break
            default:
                alert('没有数据')
                break
        }
    </script>

案例:
![在这里插入图片描述](https://img-blog.csdnimg.cn/5f350bf52ab64c75941f070090c9469b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASk9VS0VMT1ZF,size_19,color_FFFFFF,t_70,g_se,x_16
代码:(因为switch要求数据和值必须全等,所以在case后面的符号需要加引号,确保它是字符串类型)

<script>
        let num1 = +prompt('请输入第一个数')
        let num2 = +prompt('请输入第二个数')
        let operator = prompt('请输入运算符+ - * / 运算')

        switch (operator) {
            case '+':
                alert(`您选择的是加法,结果是:${num1 + num2}`)
                break;
            case '-':
                alert(`您选择的是加法,结果是:${num1 - num2}`)
                break;
            case '*':
                alert(`您选择的是加法,结果是:${num1 * num2}`)
                break;
            case '/':
                alert(`您选择的是加法,结果是:${num1 / num2}`)
                break;
            default:
                alert(`请正确输入`)
                break;
        }

    </script>

**

循环语句:

**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

断点可以查看整个过程中某个阶段某个数据的数值。

while循环:
在这里插入图片描述
循环一定要注意避免电脑死循环。
循环要注意三要素

在这里插入图片描述
案例:
在这里插入图片描述
代码:
在这里插入图片描述
案例练习:
在这里插入图片描述
练习1:

<script>
        // 1. 输出1~100个数字
        // 起始值
        let i = 1
        // 终止条件
        while (i <= 100) {
            document.write(`<p>${i}</p>`)
            // 变量变化
            i++
        } 
    </script>

效果:
在这里插入图片描述
练习2:求1-100之间的总和,答案5050

let j = 1
        let sum = 0
        while (j <= 100) {
            sum += j
            j++
        }
        document.write(`总和输出为:${sum}`)

效果:
在这里插入图片描述
练习3:求1-100之间的偶数和,答案2550

        let k = 1
        let sum1 = 0
        while (k <= 100) {
            if (k % 2 === 0) {
                sum1 += k
            }
            k++
        }
        document.write(`<p>偶数和为:${sum1}</p>`)

效果:
在这里插入图片描述
循环退出
在这里插入图片描述
continue:
在这里插入图片描述
break:
在这里插入图片描述
while循环-案例-页面弹框
在这里插入图片描述

<script>
        while (true) {
            let i = prompt('如果我是DJ,你会爱我吗?')
            if (i === '爱') {
                alert('我也是')
                break
            }
            
        }
    </script>

综合案例——简易ATM取款机
在这里插入图片描述
代码:

let sum = 1000
        while (true) {
            let num = +prompt(`请选择您需要的服务:
        1.存款
        2.取款
        3.查看余额
        4.退出`)
            if (num === 4) {
            // 除非输入的数值是4可以退出循环,否则继续弹出对话框
                break
            } else {
                
                switch (num) {
                case 1:
                let int = +prompt(`请选择存款金额:`)
                sum = sum + int
                alert(`您成功存款${int}元,余额为${sum}`)
                break
                
                case 2:
                let out = +prompt(`请选择取款金额:`)
                if (out <= sum) {
                    sum = sum - out
                    alert(`成功取出${out}元,余额为${sum}`)
                   
                } else {
                    alert(`很抱歉,您的余额不足`)
                }
                break
                
                case 3:
                alert(`您的余额是${sum}`)
                break
            
                default:
                alert(`输入错误,请重新输入`)
                break
                
        }

               
            }
            
        }

作业:

1.打印0-20之间的整数, 将每个数输出到控制台
ex:

<script>
 let i = 1
        while (i <= 10) {
            console.log(i)
            i++
        } 
</script>

2.计算1-1000之间的和(答案是500500)
ex:

<script>
let i = 1
        let sum = 0
        while (i <= 1000) {
            sum += i
            i++
        }
        document.write(`1-1000之间的总和是:${sum}`)
</script>

3.用户输入一个数, 计算 1 到这个数的和。

比如 用户输入的是 5, 则计算 1~5 之间的累加和
ex:

<script>
let i = prompt(`请输入一个数字:`)
            let sum = 0
            let j = 1
            while (j <= i) {
                sum = sum + j
                j++
            }
            document.write(`计算总和为:${sum}`)
</script>

4.用户登录验证
题目描述:
接收用户输入的用户名和密码,若用户名为 “admin” ,且密码为 “123456” ,则提示用户登录成功! 否则,让用户一直输入。
题目提示:
利用while循环

我的答案:

<script>
                let id = prompt(`请输入用户名`)
                let pwd = +prompt(`请输入密码`)
                while (true) {
                    if (id == 'admin' && pwd == '123456') {
                        alert(`登录成功`)
                        break
                    } else {
                        alert(`请重新输入`)
                        id = prompt(`请输入用户名`)
                        pwd = +prompt(`请输入密码`)
                    }
                    

                } 
</script>

参考答案:

let msg = prompt('名字')
        let pwd = prompt('密码')
        while (msg !== 'admin' || pwd !== '123') {
            alert('请你先登录')
            msg = prompt('名字')
            pwd = prompt('密码')
        }
       alert('登录成功')

05-用户输入分数,根据分数奖励不同的车( 利用多分支语句 )

                - 90~100分    奖励法拉利
                - 80~90分      奖励奥迪
                - 60~80分      奖励奥拓
                - 60分以下      打一顿
let i = prompt(`请输入您的成绩:`)
                if (i < 60) {
                    alert(`拖出去打一顿`)
                } else if (i < 80) {
                    alert(`奖励奥拓`)
                } else if (i < 90) {
                    alert(`奖励奥迪`)
                } else {
                    alert(`奖励法拉利`)
                }

拓展作业:
(答案为4570)
在这里插入图片描述

let i = 1
                let sum = 0
                while (i <= 100) {
                    if (i % 10 !== 3) {
                        sum += i
                    }
                    i++
                }
                document.write(sum)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值