javaScript学习笔记(二)js基础

本文概述了JavaScript入门中的核心概念,包括运算符的深入理解、短路计算、赋值表达式顺序,以及流程控制语句如if-else、switch、循环(for、while、dowhile)和逻辑结构的运用。通过实例解析,探索了判断闰年算法和常见算法应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 、表达式与操作符

表达式的种类?(算数、关系、逻辑、赋值、综合)
算数运算符(+ - * / %)
隐式转换的本质是内部调用Number()函数
toFixed(2) 保留多少位小数

        Math.pow(2, 3) //2的3次方(幂)
        Math.sqrt(81) // 81开根  11
        Math.ceil(3.4) //向上取整
        Math.floor(2.2)// 向下取整
        isNaN(NaN) //true  Number()  判断一一个值书不是NaN(not is number)

1、 运算符(! && ||)

     !20//false ==>置反 
        !!true   //true
        !!false // flase
        !true //false

2、 短路计算

        3 && 6//6
        undefined && 15 //undefined
        15 && undefined //undefined
        nul1 && 2//nullnul1
        '' && 16//
        NaN && undefined // NaN


        3 || 6//3
        0 || 6//6
        nul1 | undefined // undefined
        'a' || 'b'//'a'
        NaN || null//nul1

3、 赋值运算符

        var a = 3
        a += 5 //等价于 a=a+5
        c %= 3 // 等价与c=c%3

        // 自增 和自减运算符(-- ++),表示在自生基础上减1加1

        // ++a(先加在用) 和a++(先用在加)
        var k = 5
        var cc = ++k
        var ss = k++
        console.log(c, ss)

4、 综合运算的顺序(非运算———数学运算——关系运算——逻辑运算)

//小案例
        var year = prompt('请输入年份')
        // 判断是否是闰年?
        // 能被4整除,且不能被100整除
        // 能被100整除,且不能被400整除
        if (year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 != 0) {
            alert('今年是闰年')
        } else {
            alert('今年不是闰年')
        }        

二 、流程控制语句

条件语句 :if语句的基本使用 ifelse多条件分支判断 if语句算法 switch语句 三元运算符
循环语句 for循环语句 for循环算法算法 while循环语句 break continue do while语句 while语句算法
初识算法 什么是算法 累加器和累乘器 穷举法 综合算法题

1、 if 和 elseif

//小案例
        // 1、if语句的基本使用(if语句是最简单的条件语句,也称选择语句。它通常结合else一起使用,表示如果.….就.….否则…。)
        if (1) { } else { } //语法
        var prompts = prompt('请输入数字')  //奇偶小案例
        if (prompts % 2 == 0) {
            alert('偶数')
        } else {
            alert('奇数')
        }
        if (prompts > 4) alert(111);//单行if语句
        // 2、if else if 多条件语句
        if (1) { } else if (2) { } else { }  // 语法
        var weigth = Number(prompt('请输入体重/公斤'))
        var height = Number(prompt('请输入身高/米'))
        var bmi = weigth / Math.pow(height, 2)
        if (bmi < 18.5) {
            alert('偏瘦')
        } else if (bmi < 24) {
            alert('正常')
        } else if (bmi < 28) {
            alert('过胖')
        } else if (bmi < 32) {
            alert('肥胖')
        } else {
            alert('死肥仔')
        } 

2 、switch语句

//小案例
        var months = Number(prompt('请输入1-12月份'))
        switch (months) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                console.log('31天')
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                console.log('30天')
                break;
            case 2:
                // if()
                console.log('28或者29')
                break;
            default:
                console.log('请输入正确的月份')
        }

4、三元运算符

条件表达式?表达式1:表达式2

5、for 循环语句

        for (var i = 1; i <= 10; i += 2) {   //(初始值;是否满足条件;增加)
            console.log(i)
        }
        for (var i = 10; i >= 1;) {
            console.log(i)
            // i-=3
            i--
        }
        //6、for循环算法
        var sum = 0
        for (var i = 1; i <= 100;) { //       求1-100的和
            sum += i
            i++
        }
        console.log(sum)
        // 穷举法

6、while循环语句 (不定范围的循环)

        var start = 1
        while (start <= 100) {
            console.log(start)
            start++
        }

        var n = 1
        while (n * n < 456789) {   // 寻找满足n的平方大于456789的最小的整数
            n++
        }
        console.log(n)

        var l = 1  // 天

        var count = 0
        while (count <= 500) {   // 小兔纸第一天一个萝卜,第二天两个、第三天三个,需要多少天拔完
            count += l
            l++
        }
        console.log(l - 1)  //注意:这里有一个"出一错误"

7、break(跳出循环) continue(跳过循环中的一个迭代,并继续执行(在for 循环中用得多))

        for (var i = 1; i <= 10; i++) {
            console.log(i)   //1 2 3 4
            if (i == 4) {
                break;
            }
        }
        let val = 1
        while (true) {  // 死循环配合break 使用
            if (val * val >= 456788) {
                console.log(val)  //676
                break
            }
            val++
        }
        var day = 1;
        var j = 0
        while (true) { //死循环配合break 使用
            if ((j += day) >= 500) {
                console.log(day) //32
                break;
            }
            day++
        }
        for (var i = 1; i <= 5; i++) {  //continue
            console.log(i)   //1 2 4
            if (i == 3) {
                continue;
            }
        }

8、do while循环(后测试循环语句)

        do { '循环体' } while ('循环执行条件') // 语法

        var is = 1   // do while 循环是后判断循环方式,至少循环一次
        do {
            console.log(i)
            is++
        } while (is <= 100)

        parseInt(Math.random() * (b - a + 1)) + a // 得到[a,b]区间的整数公式

        do {  //取[-4,4] 之间的两个随机变量,但不能为0
            var t1 = parseInt(Math.random() * (-4 - 4)) + -4
            var t2 = parseInt(Math.random() * (-4 - 4)) + -4
        } while (t1 == 0 && t2 == 0)
        console.log(t1, t2)

9、算法小案例

 // 猜数字小游戏
        var random = parseInt(Math.random() * (99 - 2)) + 2
        var min = 1;
        var max = 100;
        while (true) {
            var prompts = Number(prompt(`请输入${min}-${max}`))
            if (prompts > max || prompts < min) {
                alert('你输入的的数字不在范围内')
                continue;
            }
            if (prompts > random) {
                alert('太大了')
                max = prompts
            } else if (prompts < random) {
                alert('小了')
                min = prompts
            } else {
                alert('猜中了')
                break;
            }
        }
        // 穷举法
        // 穷举法,顾名思义,是指根据题目的条件确定答案的大致范围
        // ,并在此范围内对所有可能的情况逐一验证,直到全部情况验
        // 证完毕。若某个情况符合题目的条件,则为本问题的一个解;
        // 若全部情况验证后都不符合题目的条件,则本题无解。

        // 穷举法求能被5或者3整除100以内的数字
        for (var i = 1; i <= 100; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                console.log(i)
            }
        }
        // 寻找约数
        var n = Number(prompt('请输入数字'))
        for (var i = 1; i <= n; i++) {
            if (n % i == 0) {
                console.log('约数' + i)
            }
        }
        //综合算法 
        // 寻找100以内的质数(质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。)
        outer: for (var i = 2; i <= 100; i++) {
            for (var k = 2; k < i; k++) {
                if (i % k == 0) {
                    //说明数字i不是质数,因为它找到了除1和它自身之外的约数了,测试下一个数字了
                    //continue表示放弃这个数字,开始迭代下个数字,continue它负责的是它所在的最内层的
                    //要给外层for循环加上1abe1,然后在continue的后面加上这个label,o
                    //这样就表示立即开始送代外层for循环的下一个数字了,而不是内层for循环
                    continue outer;
                }
            }
            console.log(i)
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值