Web前端 Day 5

news2024/11/24 20:00:56

js初体验

使得代码可以具有某些行为

<body>
    <button>点击我变成粉色</button>
    <script>
        const btn = document.querySelector('button')
        btn.addEventListener('click', () => {
            btn.style.backgroundColor = 'pink'
​
        })
    </script>
</body>

效果图

js引入方式

 

<body>
    <script>
        
        // 内部
        // prompt('请输入您的年龄:')
    </script>
    
    <!-- 外部 -->
    <script src="./03-外部js.js">
    </script>
​
</body>

输入输出语句

 <body>
​
​
    <script>
        // 输入语句
        // prompt('请输入您的密码:')
        // 打印到页面
     document.write('你们真是小天才')
        // 可以识别标签
        document.write('<strong>你们真是小天才</strong>')
        // 控制台输出语句
        console.log('我现在要在控制台输出')
​
    </script>
</body>
​

变量

<body>
    
    <script>
        
    // 变量: 盒子---存储数据的容器
    // 数据本身不是变量
    // 变量的声明方式
    // let变量名    
    let age 
    // 变量赋值
    age = prompt('请输入您的年龄:')
    console.log(age)
​
</script>
​

变量的初始化

变量不能重复声明

<body>
    
    <script>
        
    // 变量: 盒子---存储数据的容器
    // 数据本身不是变量
    // 变量的声明方式
    // let变量名    
    // let age 
    // 变量赋值
    // age = prompt('请输入您的年龄:')
    // console.log(age)
​
    // let uname = prompt('请输入您的用户名:')
    // console.log (uname)
// 同时定义多个变量
// let uname = 'zs', age =21
// console.log(uname.age)
​
let age = prompt('请输入您的年龄:')
document.write(age)
</script>
​
</body>
​

变量命名规范

 <script>
        
//变量命名规范:1.有效符号(大小写字母、数字、下划线、)
// 2.关键字、保留字不能用于变量命名
// 3.不以数字开头
// 4.尽量用有意义的变量名
// 5.驼峰命名法
</script>
​

let和var的区别

<body>
    <script>
        // var 可以多次声明同一变量  
        console.log(age)
        // var age
        let age
    </script>
</body>

const常量

<body>
​
    <script>
        // 常量名大写   常量无法更改
        const PI = 3.14
        // PI = 4.456
        console.log(PI)
    </script>
</body>

数据类型

js是弱数据类型语言

<body>
    <script>
        // js是弱数据类型语言    只有赋值之后,才知道是什么数据类型
        let uname = 21
        uname = 'gouxin'
        console.log(typeof (uname))
    </script>
</body>

基本数据类型——数字类型

 <body>


    <script>
        let a = 21.21312
        let b = 33
        console.log(a)
        console.log(a + 2)
        console.log(a + b)
        console.log(a - b)
        console.log(a * b)
        console.log(a / b)
        console.log(a % 2)

    </script>
</body>

字符串类型

模版字符串

<body>
    <script>
        // let uname1 = 'nnnsns'
        // console.log(typeof (uname1))
        // let uname2 = "nnnsns"
        // console.log(typeof (uname2))
        // let uname3 = "nnn'gouxin'sns"
        // console.log(typeof (uname3))
        // let uname4 = 'nnn"gouxin"sns'
        // console.log(typeof (uname4))


        // 字符串拼接用+

        let a = +prompt("请输入num1")
        let b = +prompt("请输入num2")
        // alert   警示框
        alert(a + b)


        // 模板字符串
        // let uname = prompt("请输入名字:")
        // let age = prompt("请输入年龄:")

        // document.write('你叫' + uname + ',今年' + age + '岁了')
        // document.write(`<strong>你叫${uname},今年${age}岁了</strong>`)





    </script>
</body>

布尔类型

<body>

    <script>
        console.log(typeof (3 < 5))
        // undefinded  声明,未赋值
        // null   NaN   not a  number
        console.log(undefined + 1)
        console.log(null + 1)

    </script>
</body>

显式转换

<body>
    <script>
        let a = +prompt('num1')
        let b = +prompt('num2')

        console.log(Number(a) + Number(b))
        console.log(typeof (+a))

        let c = '200.9875px'
        console.log(parseInt(c))
        console.log(parseFloat(c))


    </script>
</body>

综合案例

<style>
        h2 {
            text-align: center;
        }

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

        th {
            padding: 5px 30px;
        }

        table,
        th,
        td {
            border: 1px solid #000;
        }
    </style>
</head>



<body>
    
   <h2>订单确认</h2>
    <script>
        let price = +prompt('请输入单价:')
        let num = +prompt('请输入购买数量:')
        let address = prompt('请输入收货地址:')
        document.write(`
   
   <table>
    <thead>
        <tr>
            <th>
                商品名称
            </th>
            <th>
                商品价格
            </th>
            <th>
                商品数量
            </th>
            <th>
                总价
            </th>
            <th>
                收货地址
            </th>
        </tr>
        <tr>
            <td>小米</td>
            <td>${price}</td>
            <td>${num}</td>
            <td>${price * num}</td>
            <td>${address}</td>
        </tr>
    </thead>
   </table>
     `)
  
   </script>
    
</body>

运算符

<body>
    <script>
        // =  赋值运算符
        // let a = 21
        // a = 33


        // a += 4 // a = a + 4
        // a *= 2   //a = a * 2     74
        //a -= 3    //a = a - 3
        // a /= 2     //a = a / 2      35.5
        // alert(a)



      // let b = a++  //先赋值,再自增
        // alert(b)
        // alert(a)  //36.5
        // b = ++a   //先自增,再赋值
        // alert(b)


        // 比较运算符  
        // >   <   >=   <=  ==   ===
        let num1 = 2
        let num2 = '2'
        alert(num1 == num2)
        alert(num1 === num2)
        // ==  (隐式转换)只比较数值,将字符串转换为数字类型后进行比较   ===   即比较数值,也比较类型






    </script>
</body>

逻辑运算符

<body>
    <script>
        // &&     ||       !
  //  alert(4 > 3 && 3 < 5)  //两真为真,一假则假
        
  
  // alert(4 < 3 || 3 < 5)  //一真则真,全假则假
        // alert(!true)
        alert(!(4 < 3))



    </script>
</body>

单分支语句

<body>
    <script>
        let age = 11
        // if(条件){
        //     执行的代码
        // }
        if (age < 18) {
            document.write('你是小弟弟,不要乱跑')
        }
    </script>
</body>

双分支语句

<body>


    <script>
        let age = +prompt('请输入您的年龄:')
        if (age <= 18) {
            alert('你不要乱跑')
        } else {
            alert('恭喜你,成年了')
        }

    </script>
</body>

闰年

<body>
    <script>
        // year % 4 === 0 && year % 100 !== 0 || year % 400 === 0
        let year = +prompt('请输入年份:')
        if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
            alert('闰年')
        } else {
            alert('平年')
        }
    </script>
</body>

多分支语句

<body>
    <script>
      let age = +prompt ('请输入年龄:')
      if( age < 18) {
        alert('你是未成年 学习吧')
     }
     else if ( age <=25){
        alert('清楚年华')
     }
     else if (age <= 40) {
        alert('好汉')  大于25的时候
     }
     else {
            alert('男人四十一枝花')
        }
   
    
 
    </script>
</body>

三元运算符

<body>
    <script>
        let age = +prompt('请输入您的年龄:')
        // if (age <= 18) {
        //     alert('你不要乱跑')
        // } else {
        //     alert('恭喜你,成年了')
        // }

        // 判断条件?条件成立时执行的语句:条件不成立时执行的语句
        age <= 18 ? alert('你不要乱跑') : alert('恭喜你,成年了')
    </script>
</body>

求最大值

<body>
    <script>
      let a = +prompt('请输入num1:')
      let b = +prompt('请输入num2:')
    a>b ? alert('最大值是:${a}') : alert('最大值是:${b}') 
 
    </script>
</body>

数字补零

<body>

    <script>
        // alert(2 < '3')
        let a = prompt('num')
        a >= 10 ? alert(a) : alert(0 + a)

    </script>
</body>

switch语句

<body>
    <script>
      let num = +prompt('请输入今天星期几了:')
      switch (num) {
        case 1:
            alert('星期一')
   break  每个case后都要有break,要不然会一直往下进行
            case 2:
            alert('星期二')
            break
            case 3:
            alert('星期三')
            break
            case 4:
            alert('星期四')
            break
            case 5:
            alert('星期五')
            break
            case 6:
            alert('周末了')
            break
            case 7:
            alert('周末了')
            break
            default:
                alert('你是外星人吗?')
      }
    </script>
</body>

while循环

<body>
    <script>
    //  while  一定要有终止条件
    let  i =10
    while (i ) {
        console.log('你是大聪明吗')
        i--
    } while (i >10 )
    </script>
</body>
</html>

do while 循环

 

<body>
    <script>
        // while   一定要有终止条件
        let i = 10
        // while (i > 11) {
        //     console.log('你是大聪明')
        //     i--
        // }


        do {
            console.log('你是大聪明')
            i--
        } while (i > 11)
    </script>
</body>

whlie循环练习

<body>
    <script>
    // 1~100累加和
    let i =0
    let sum =0

   
    while (i<101) {
        sum +=  i
        i++

    } alert(sum)
    </script>
</body>

for循环

<body>
    <script>
        for (let i = 1; i <= 10; i++) {
            document.write(`你真是个大聪明<br>`)
        }
        //



    </script>
</body>

循环嵌套

<body>
    <script>
        for (let i = 1; i < 8; i++) {
            console.log(`今天是第${i}天`)
            for (let j = 1; j < 11; j++) {
                console.log(`这是今天第${j}朵玫瑰花`)

            }
        }

        for (let i = 1; i < 10; i++) {
            for (let j = 1; j <= i; j++) {
                document.write(`<span>${j}*${i}=${i * j}</span>`);
            }
            document.write(`<br/>`)
        }


        for (let i = 1; i < 6; i++) {
            for (let j = 1; j <= i; j++) {
                document.write(`*`)
            }
            document.write(`<br/>`)
        }


    </script>
</body>

continue、break

<body>
    <script>
        for (let i = 1; i < 100; i++) {
            if (i === 50) {
                // break
                continue
            }
            console.log(i)
        }
        // break:跳出循环
        // continue:跳出本次循环
    </script>
</body>

循环加强

<body>
    <script>
        let arr = [1, 2, 3, 66, 4, 5]
        // for  in
        // for (let i in arr) {
        //     console.log(arr[i])
        // }
        // for   of
        for (let k of arr) {
            console.log(k)
        }

    </script>
</body>

数组

 

<body>
    <script>
        // let name1 = '俊杰'
        // 有序的数据序列
        //             0         1         2           3       4     5
        let arr = ['gouxin', 'huangzhong', 'jialuo', 'zhadanren', 12, true]
        // 数组的声明方式
        // arr[索引下标]
        alert(arr[5])


        // let arr2 = new Array()


        // 数组遍历
        // for (let i in arr) {
        //     console.log(arr[i])
        // }

        // 数组的操作   
        // 通过索引下标给对应元素重新赋值
        arr[1] = 'guanyu'
        console.log(arr instanceof Array)
        let arr2 = [1, 2, 3, 4]
        // concat合并数组
        arr3 = arr.concat(arr2)
        console.log(arr3)

        // 增 push   在数组末尾添加
        arr.push('姜加')


        // unshift  在数组首部添加元素

        arr.unshift('jiangjia')

        arr.shift()

        arr.pop()
        // splice(删除的起始位置,删除的个数)
        arr.splice(3, 1)
        // splice(删除的起始位置,0,要添加的元素)
        arr.splice(3, 0, 'jiangjia')
        console.log(arr)

        console.log(arr.join(' **'))
        console.log(arr.reverse())



        console.log(arr.slice(3))







    </script>
</body>

二维数组

<body>
    <script>
        let student = [['jiangjia', 31, 'sing'], ['xuchao', 21, 'dance']]

        // console.log(student[1][0])
        for (let i in student) {
            for (let j in student[i]) {
                console.log(student[i][j])
            }
        }


        // student.length   获取数组长度的
    </script>
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven详见及在Idea中的使用方法[保姆级包学包会]

文章目录 Maven详解1.1 目标1.2 Maven概括1.3 多模块开发1.3.1 pom.xml1.3.2 生命周期1.3.3 依赖特性(多模块1)1.3.4 继承特性(多模块2)1.3.5 dependencyManagement标签1.3.6 Maven-聚合(多模块3)聚合 1.3.6.1聚合总结 Maven详解 1.1 目标 maven是什么?maven能干什么?maven…

java并发编程 10:AQS

目录 什么是AQS原理 什么是AQS juc包的结构如下图&#xff1a; AQS就是AbstractQueuedSynchronizer&#xff0c;是个抽象类&#xff0c;实现了自己的一些方法。它是阻塞式锁和相关的同步器工具的框架。很多并发类都是基于它实现的&#xff0c;如&#xff1a;ReentrantLock、Co…

【力扣刷题 | 第十八天】

目录 前言&#xff1a; 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 134. 加油站 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; 前言&#xff1a; 今天随机刷题&#xff0c;不对题型做具体的要求 1005. K 次取反后最大化的数组和 …

Spring5学习笔记--Maven

Spring5学习笔记--Maven Maven高级1 分模块开发1.1 分模块开发设计1.2 分模块开发实现1.2.1 环境准备1.2.2 抽取domain层步骤1:创建新模块步骤2:项目中创建domain包步骤3:删除原项目中的domain包步骤4:建立依赖关系步骤5:编译maven_02_ssm项目步骤6:将项目安装本地仓库 1.2.3 抽…

揭秘GPT-4;Adobe Firefly AI 扩大测试规模

&#x1f989; AI新闻 &#x1f680; Adobe Firefly AI 扩大测试规模&#xff0c;支持100多种语言的输入 摘要&#xff1a;Adobe宣布扩大测试规模&#xff0c;Adobe Firefly AI现在支持100多种语言的 prompts 输入。网页测试版Firefly已经扩充了罗马尼亚语等多种语言&#xf…

layui选项卡演示

layui选项卡演示 .1 引入layui2. 选项卡演示实列3.js分离的代码4运行结果 在前端开发中&#xff0c;选项卡常用于展示多个内容模块&#xff0c;提供用户友好的界面交互方式。layui作为一款简洁易用的前端框架&#xff0c;提供了丰富的组件库&#xff0c;其中包括了强大且易用的…

Html基础知识学习——css精灵

这里写自定义目录标题 定义示例一示例二 定义 将网页用到的图片放在一张图片上&#xff0c;进行定位展示 优点:防止网页http请求次数过多&#xff0c;从而提高页面性能 缺点&#xff1a;降低开发效率。维护难度加大 示例一 使用图 网页制作图 <!DOCTYPE html> <…

AcWing 1273. 天才的记忆—RMQ

题目链接: AcWing 1273. 天才的记忆 问题描述 RMQ是用来求解静态区间最大/小值的算法&#xff0c;静态空间就是数组里的数不会变&#xff0c;动态空间最大/小值可以用线段树或者树状数组来求解。 RMQ算法有点类似与区间DP&#xff0c;RMQ算法的时间复杂度为 O ( n l o g n ) …

三菱 FX三菱PLC以太网通信程序

捷米特三菱FX转以太网通讯处理器是一款经济型的以太网通讯处理器&#xff0c;是为满足日益增多的工厂设备信息化需求&#xff08;设备网络监控和生产管理&#xff09;而设计&#xff0c;用于三菱FX1S/1N/2N/3S/3G/3GA/3GC/3U/3UC系列、汇川、士林AX、禾川、维控等PLC以太网数据…

【算法和数据结构】347、LeetCode前 K 个高频元素

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;首先我们使用一个哈希表记录每个元素出现的频率。再设置一个优先队列&#xff0c;并将数组中元素出现的…

C语言实现扫雷【经典】

前言   本篇文章要实现的是扫雷游戏&#xff0c;其代码实现与上一篇的三子棋游戏类同&#xff0c;都是在棋盘的基础上&#xff0c;与电脑进行对抗&#xff0c;不同的是&#xff0c;扫雷游戏一开始电脑就已经随机布置好了所有“雷”。 请戳 --->三子棋 扫雷游戏 1. 扫雷游…

【Visual Studio】VTK 显示小球例子,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 关于更多此例子的资料&#xff0c;可以参考&#xff1a;【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。 文章目录 版本环境VTKTest.…

Nginx upstream 负载均衡配置

[toc] ## 问题: 自7/4 以来, 所有设备同时出现 Network Error, 导致业务无法正常进行, 频率 3次/每分钟; ## 现场情况及原因分析: 3楼: 8条产线 4楼: 20条产线 5楼: 5条产线 点数: 33条线 * 平均 (5台工位 1台电视看板 3台测试仪 ) ≈ 300 - Nginx 日志占用: access 日志 …

【MySQL备份与还原、索引、视图】练习

一、备份与还原 /***************************样例表***************************/CREATE DATABASE booksDB;use booksDB;CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL);INSERT INTO booksVALUES (11078, Lear…

UNIX网络编程卷一 学习笔记 第二十三章 高级SCTP套接字编程

SCTP是一个面向消息的协议&#xff0c;递送给用户的是部分的或完整的消息。只有当发送大消息时&#xff0c;在对端才会递送部分的消息。部分消息被递送给应用后&#xff0c;多个部分消息组合成单个完整消息不由SCTP负责。在SCTP应用进程看来&#xff0c;一个消息既可由单个输入…

线性代数的一些小细节

1 .矩阵的满足结合律&#xff0c;但不满足交换律 验证和证明如下图&#xff1a; 如下&#xff0c;UWQ三个矩阵的2种结合&#xff0c;证明矩阵乘法满足结合律 下图中&#xff0c;AB 和BA的值可能是不同的&#xff08;相同的条件是图中相互对应的4项相同&#xff0c;即对称矩阵…

防范 XSS 攻击的措施

防范 XSS 攻击的措施 XSS&#xff08;Cross-site scripting&#xff09;攻击是一种常见的网络安全漏洞&#xff0c;它可以通过注入恶意代码来攻击用户的计算机和浏览器&#xff0c;从而窃取用户的敏感信息或执行恶意操作。本篇文章将介绍防范 XSS 攻击的措施&#xff0c;并提供…

Spring设计模式及部分技术讲解

讲师:邓澎波 Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍Spring是怎么来的,发展中有哪些核心的节…

Linux文件

目录 系统级I/O 简介 接口 文件描述符fd 重定向 缓冲区 文件系统 软硬链接 动静态库 静态函数库 动态库 系统级I/O 简介 输入/输出&#xff08;I/O&#xff09;是在主存和外部设备&#xff08;磁盘驱动器、终端和网络&#xff09;之间复制数据的过程。输入操作是…

opencv-04 像素处理

opencv-04 像素处理 在 OpenCV 中&#xff0c;最小的数据类型是无符号的 8 位数。因此&#xff0c;在 OpenCV 中&#xff0c;实际上并没有二值图像这种数据类型&#xff0c;二值图像经常是通过处理得到的&#xff0c;然后使用0表示黑色&#xff0c;使用 255 表示白色。 可以将…