JavaScript

1.0 JavaScript介绍

1.0.0输入和输出语句

1.0.1页面弹出警告对话框
alert('');
1.0.2用户输入语句
prompt('');
1.0.3向body内输出内容
document.write('');
1.0.4控制台打印输出
console.log('');

1.1字面量

literal

2.0变量

2.0.0变量是什么?

2.0.1目标:理解变量是计算机存储数据的”容器“

变量是计算机用来存储数据的==”容器“==,它可以让计算机变得有记忆。

2.1.0变量的基本使用

2.1.1声明变量:

要想使用变量,首先需要创建变量(也称声明变量或定义变量)

语法:

let 变量名
2.1.2变量的赋值
let age = 18
alert(age)

let不允许重复声明一个变量

第一部分

01-体验

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .pink{
            background-color: pink;
        }
    </style>
</head>

<body>
    <button class="pink">按钮1</button>
    <button>按钮2</button>
    <button>按钮3</button>
    <button>按钮4</button>
    <script>
        let bts = document.querySelectorAll('button')
        for (let i = 0; i < bts.length; i++) {
            bts[i].addEventListener('click' , function() {
                document.querySelector('.pink').className = ''
                this.className = 'pink'
            })
            
        }
    </script>
</body>

</html>

02-输入和输出

<script>
    //1、文档输出内容
    document.write('你好')
    document.write('<h1>这是标题<h1>')

    //2、控制台打印输出(给程序员看)
    console.log('让我看看怎么个事')
    console.log('不是吧');
    
    //3、输入语句
    prompt('请输入您的姓名:')
</script>

03-变量的声明和使用

    <script>
        //1、声明的同时赋值 变量的初始化
        let age = 19
        
        //2、变量更新
        age = 18
        console.log(age);

        //3、声明多个变量
        let age1 = 20, uname1 = 'luo'
        console.log(age1,uname1);

        //4、提倡声明的方法
        let age2 = 22
        let uname2 = 'yu'
        console.log(age2,uname2);
        
    </script>

04-输入用户名案例

    <script>
        //输出用户名案例
        //1、用户名案例
        //prompt('请输入姓名:')

        //2、内部处理保存数据
        let uname = prompt('请输入姓名:')

        //3、打印输出
        document.write(uname)
    </script>

05-交换两个变量

    <script>
        // 1、声明一个临时变量temp
        // 2、把num1的值赋值给temp
        // 3、把num2的值赋值给num1
        // 4、把temp的值给num2

        let num1 = '18'
        let num2 = '23'
        let temp
        temp = num1
        num1 = num2
        num2 = temp
        console.log(num1,num2);
        
    </script>

06-数组的定义与取值

    <script>
        let arr = [10,20,30,40,50]
        let arr1 = ['张三','李四','王五','老刘']
        console.log(arr[1]);
        console.log(arr1[0]);
        
    </script>

07-计算圆的面积

    <script>
        //定义一个常量(不允许更改值)
        const PI = 3.145
        //1、页面弹出输入框
        let r = prompt('请输入圆的半径:')

        //2、计算圆的面积(内部处理)
        let result = PI*r*r

        //3、页面输出
        document.write(result)
    </script>

08-粘性数据类型

    <script>
        console.log('张三'-2);
        console.log(NaN*2);

        //NaN自己也不等于NaN
        console.log(NaN === NaN);
        
        //undefined未定义
        console.log(undefined + 1)

        //null定义为空
        console.log(null + 1)

        //声明变量但未给值,结果为undefined
        let num
        console.log(num);
        
        
    </script>

09-字符串类型

    <script>
        let age = 18
        //1、""
        console.log("我今年" + age + "岁了")

        //2、''
        console.log('我今年' + age + '岁了');

        //3、``
        console.log(`我今年${age}岁了`)
        

        //实例:
        let uName = prompt('请输入您的姓名:')
        let Age = prompt('请输入您的年龄:')
        document.write(`大家好,我叫${uName},今年${Age}岁了。`)
    </script>

10-检测数据类型

    <script>
        let num = 10
        let str = '张三'
        let str1 = '10'
        let flag = false
        let und
        let obj = null

        //typeof  检测数据类型  或写成typeof ()
        console.log(typeof num);
        console.log(typeof (num));
        console.log(typeof str);
        console.log(typeof str1);
        console.log(typeof flag);
        console.log(typeof und);
        console.log(typeof obj);
        
    </script>

11-隐式转换

    <script>
        console.log(11 + 11)
        console.log('11' + 11)   //字符串和加号并用,自动看成字符串
        console.log(11 - 11)     
        console.log('11' - 11)  //字符串和减号并用,自动看成数字
        console.log(11 * 11)
        console.log('11' * 11)  //除加号外,其余数字与字符串并用,都看成数字
        console.log(typeof '123') 
        console.log(typeof +'123')  //字符串前添加+,转换成数字
        console.log(+'11' + 11)     //字符串前添加+,转换成数字
        
    </script>

12-显示转换

    <script>
        //字符串转数字
        let str = '123'
        console.log(Number(str))
        console.log(Number('pink'))

        console.log('-----------------------------');
        

        //字符串转整数型Int
        console.log(parseInt('12px'))
        console.log(parseInt('12.34px'))
        console.log(parseInt('12.96px'))

        console.log('-----------------------------');
        
        //字符串转浮点数
        console.log(parseFloat('12px'))
        console.log(parseFloat('12.34px'))
        console.log(parseFloat('12.96px'))
        
        console.log('-----------------------------');

        //接收字符串后转换成数字类型
        //法一:
        let num = prompt('请输入年薪1:')
        console.log(Number(num));

        //法二:
        let num2 = Number(prompt('请输入年薪2:'))
        console.log(num2);
        
    </script>

13-求和案例

    <script>
        //法一:
        let num1 = Number(prompt('请输入第一个数:'))
        let num2 = Number(prompt('请输入第二个数:'))
        alert(`两个数相加的和是:${num1 + num2}`)

        //法二:
        // let num11 = +prompt('请输入第一个数:')
        // let num22 = +prompt('请输入第二个数:')
        // alert(`两个数相加的和是:${num11 + num22}`)
    
    </script>

14-综合案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        h2{
            text-align: center;
        }

        table{
            /* 合并相邻边框 */
            border-collapse: collapse;
            height: 45px;
            margin: 0px auto;
        }

        th{
            padding: 0px 20px;
        }
    </style>
</head>
<body>
    <h2>订单确认</h2>
    
    <script>
        //1、用户输入
        let goods = prompt('请输入所购买的商品:')
        let price = Number(prompt('请输入商品的价格:'))
        let number = Number(prompt('请输入购买此商品数量:'))
        let address = prompt('请输入收货地址:')

        //2、计算总计
        let total = price * number

        //页面打印
        document.write(`
            <table border="1">
                <tr>
                    <th>商品名称</th>
                    <th>商品价格</th>
                    <th>商品数量</th>
                    <th>总价</th>
                    <th>收获地址</th>
                </tr>
                <tr>
                    <th>${goods}</th>
                    <th>${price}</th>
                    <th>${number}</th>
                    <th>${total}</th>
                    <th>${address}</th>
                </tr>
        
            </table>
        `)
    </script>
</body>
</html>

第二部分

01-自增运算符

    <script>
        //一元运算符
        //1、前置自增
        // let i = 1
        // ++i
        // console.log(i)  2

        // let i = 1
        // console.log(++i + 1)   3
        
        
        //2、后置自增(执行结果需在下一行体现)
        // let i = 1
        // i++
        // console.log(i)  2

        // let i = 1
        // console.log(i++ + 1)  2
        
        //示例:
        let i = 1
        console.log(i++ + ++i + i)
        
    </script>

02-比较运算符

    <script>
        //比较结果为boolean类型,即只会得到true和false
        console.log(3 > 5)
        console.log(3 >= 5)

        console.log('---------------------------')

        console.log(3 >= 3)
        console.log(3 >= '3')

        console.log('---------------------------')

        //==判断左右两边值是否相等
        console.log(3 == 3)
        console.log(3 == '3')

        console.log('---------------------------')

        //===判断左右两边是否类型和值都相等(开发中判断是否相等,强烈推荐使用===)
        console.log(3 === 3)
        console.log(3 === '3')

        console.log('---------------------------')
        
        console.log(NaN == NaN)
        console.log(NaN === NaN)

        console.log('---------------------------')


        //字符串比较,是比较的字符对应的ASCII码
        //例:
        console.log('a' < 'b')
        console.log('aa' < 'ab')
        console.log('aa' < 'aab')
        
        
    </script>  

03-逻辑运算符案例

    <script>
        //1、用户输入
        let number = Number(prompt('请输入一个数字:'))
        //2、弹出结果
        alert(`能被4整除,但不能被100整除的判断结果为:${number % 4 === 0 && number % 100 !== 0 }`)
    </script>

04-闰年计算案例

    <script>
        //要求:
        // 能被4整除但不能被100整除,或者能被400整除的年份是闰年,否则都是平年
        // 需要逻辑运算符
        let year = Number(prompt('请输入一个年份:'))
        if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
            alert(`${year}为闰年`)
        } else {
            alert(`${year}为平年`);
        }

        //除了0所有数字都为真
        if (0) {
            console.log('执行语句');
            
        }

        console.log('-------------------------');
        

        if (2) {
            console.log('执行语句');
            
        }

        console.log('-------------------------');

        //除了'',所有字符都为真
        if ('') {
            console.log('执行语句');
            
        }

        console.log('-------------------------');
        
        if ('0') {
            console.log('执行语句');
            
        }
    </script>

05-比较两数大小

    <script>
        //要求:
        // 用户输入2个数,控制台输出最大的值
        //法一:利用三元运算符
        let num1 = Number(prompt('请输入第一个数:'))
        let num2 = Number(prompt('请输入第二个数:'))
        num1 > num2 ? alert(`最大值是:${num1}`) : alert(`最大值是:${num2}`)

        //法二:利用if双支
        // let num1 = Number(prompt('请输入第一个数:'))
        // let num2 = Number(prompt('请输入第二个数:'))
        // if (num1>num2) {
        //     alert(`最大值是:${num1}`)
        // } else {
        //     alert(`最大值是:${num2}`)
        // }
    </script>

06-数字前补0案例

    <script>
        //1、用户输入
        let num = prompt('请输入一个数字:')
        // 2、判断输出:小于10才在前补0
        num = num < 10 ? 0 + num : num
        alert(num)
    </script>

07-简易计算机

    <script>
        //1、依次输入两个数
        //2、选择两个数之间的操作符号
        let num1 = +prompt('请输入第一个数:')
        let num2 = +prompt('请输入第二个数:')
        let operation = prompt('请输入运算符号 + - * / 中任意一个')
        switch (operation) {
            case '+':
                alert(`两个数的+操作结果为:${num1+num2}`)
                break;
        
            case '-':
                alert(`两个数的-操作结果为:${num1-num2}`)
                break;

            case '*':
                alert(`两个数的*操作结果为:${num1*num2}`)
                break;

            case '/':
                alert(`两个数的/操作结果为:${num1/num2}`)
                break;

            default:
                alert('请输入正确的运算符号!!!')
                break;
        }
    </script>

08-断点演示

    <script>
        let num = 10
        num++
        console.log(num);
        
        //控制台点击Sources
        //点击所需打断点的位置
        // 刷新浏览器
        // 在Watch中可点击+号并搜索所需查询的数值
    </script>

09-while循环

    <script>
        //1、变量的起始值
        //2、终止条件
        //3、变量的变化量
        /**
        let num = 1
        while (num <= 10) {
            document.write('HelloWord!!!')
            num++
        }
        */

        let number = Number(prompt('请输入需要打印的次数:'))
        let i = 1
        while (i <= number) {
            document.write(`重复打印${number}次!!!</br>`)
            i++
        }
    </script>

10-while循环练习

    <script>
        /**
        let number = Number(prompt('请输入需要计算由1到XX的和:'))
        let i = 1
        let sum = 0
        while (i <= number) {
            sum += i
            document.write(`由1到${i}的和为:${sum}</br>`)
            i++
        }
        */
        
        let number = Number(prompt('请输入需要计算由1到XX:'))
        let key = prompt('请输入运算符号 + * 中任意一个')
        let i = 1
        let sum = 0
        let sum2 = 1
        switch (key) {
            case '+':
                while (i <= number) {
                    sum += i
                    document.write(`由1到${i}的和为:${sum}</br>`)
                    i++
                }
            break;

            case '*':
                while (i <= number) {
                sum2 *= i
                    document.write(`由1到${i}的乘法为:${sum2}</br>`)
                    i++
                }
            break;
        
            default:
                alert('请输入正确的运算符号!!!')
            break;
        }
        
    </script>

11-while循环求奇偶数之和之积

    <script>
        let number = Number(prompt('请输入需要计算由1到XX:'))
        let odevity = prompt('请输入所求数为奇数还是偶数:')
        let key = prompt('请输入运算符号 + * 中任意一个')
        let i = 1
        let sum = 0
        let sum2 = 1
        switch (key) {
            case '+':
                while (i <= number) {
                    if (odevity == '奇数') {
                        if (i % 2 !== 0) {
                        sum += i
                        document.write(`由1到${i}${odevity}和为:${sum}</br>`)
                        //i++
                        }
                    } else if(odevity == '偶数'){
                        if (i % 2 == 0) {
                        sum += i
                        document.write(`由1到${i}${odevity}和为:${sum}</br>`)
                        //i++
                        }
                    }else{
                        alert('请输入奇数还是偶数')
                        break;
                    }
                    i++
                }
            break;

            case '*':
                while (i <= number) {
                    if (odevity == '奇数') {
                        if (i % 2 !== 0) {
                        sum2 *= i
                        document.write(`由1到${i}${odevity}积为:${sum2}</br>`)
                        //i++
                        }
                    } else if(odevity == '偶数'){
                        if (i % 2 == 0) {
                        sum2 *= i
                        document.write(`由1到${i}${odevity}积为:${sum2}</br>`)
                        //i++
                        }
                    }else{
                        alert('请输入奇数还是偶数')
                        break;
                    }
                    i++
                }
            break;
        
            default:
                alert('请输入正确的运算符号!!!')
            break;
        }
        
    </script>

12-退出循环之你爱我吗

    <script>
        while (true) {
            let str = prompt('你爱我吗?')
            if (str === '爱') {
                document.write('<h1>我也超级爱你!!!</h1>')
                break;
            }
        }
    </script>

13-简易ATM取款机案例

    <script>
        //需求:用户可以选择存钱、取钱、查看余额和退出功能
        let account = 100000
        while (true) {
            let num = Number(prompt(`
                                请您选择操作:
                                1、存钱
                                2、取钱
                                3、查看余额
                                4、退出
                            `))
            if (num == 4) {
                break;
            }
            
            switch (num) {
                case 1:
                    let deposit = Number(prompt('请输入您的存款金额:'))
                    account += deposit
                    alert(`您的余额为:${account}`)
                    break;

                
                case 2:
                    let draw = Number(prompt('请输入您的取款金额:'))
                    account -= draw
                    alert(`您的余额为:${account}`)
                    break;

                
                case 3:
                    alert(`您的余额为:${account}`)
                    break;
            
                default:
                    alert('请输入正确选项!')
                    break;
            }
        }
    </script>

更多推荐