Web前端 Day 5

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 agelet age</script>
</body>

const常量

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

数据类型

js是弱数据类型语言

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

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

 <body><script>let a = 21.21312let b = 33console.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  numberconsole.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 = 2let 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 === 0let 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('星期二')breakcase 3:alert('星期三')breakcase 4:alert('星期四')breakcase 5:alert('星期五')breakcase 6:alert('周末了')breakcase 7:alert('周末了')breakdefault:alert('你是外星人吗?')}</script>
</body>

while循环

<body><script>//  while  一定要有终止条件let  i =10while (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 =0let sum =0while (i<101) {sum +=  ii++} 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) {// breakcontinue}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   offor (let k of arr) {console.log(k)}</script>
</body>

数组

 

<body><script>// let name1 = '俊杰'// 有序的数据序列//             0         1         2           3       4     5let 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.hqwc.cn/news/21865.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

榜单!高精定位模块/系统「争夺战」,份额Top5供应商都有谁

以当前国内车企落地高速NOA采用的主流方案为例&#xff0c;普遍采用了「高精定位高精地图车端传感器」的多源融合定位策略。其中&#xff0c;在高精定位部分&#xff0c;大部分采用GNSSIMURTK的方案。 从目前的智驾系统演进来看&#xff0c;主流的仍是在L2基础上&#xff0c;通…

【JavaEE】Servlet 中常用API有哪些?前后端交互方式有哪些?

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 目录 一、Servlet 运行原理 二、Servlet常用API 2.1 HttpServlet&#xff08;抽象类&#xff09; 2.1.1. init 方法 2.1.2 service方法 2.1.3 destroy方法 三、HttpServletRequest 3.1 Ht…

win11安装virtual box和vagrant,附带centos7镜像

环境检查 1. 开启CPU虚拟化 修规bios配置 configuration -> Intel Virtual Technology 改为 enabled 2. 关闭hyper-v 以管理员启动 powershell&#xff0c;执行&#xff1a; bcdedit /set hypervisorlaunchtype off 3. 关闭wsl虚拟机 以管理员启动 powershell&#x…

桥梁监测是做什么的?桥梁结构监测方案

现代化大型桥梁是交通主干道的重要节点&#xff0c;对交通运输发展具有重大影响。然而&#xff0c;桥梁在长期使用过程中容易受到各种因素的影响&#xff0c;如自然灾害、车辆载荷、材料老化等&#xff0c;从而导致结构损伤和安全隐患。因此&#xff0c;对桥梁结构性能进行自动…

1、Redis入门与应用

Redis入门与应用 Redis的技术全景 Redis一个开源的基于键值对&#xff08;Key-Value&#xff09;NoSQL数据库。使用ANSI C语言编写、支持网络、基于内存但支持持久化。性能优秀&#xff0c;并提供多种语言的API。 我们要首先理解一点&#xff0c;我们把Redis称为KV数据库&am…

【Docker】Centos安装docker-compose

下载 直接从GitHub下载docker到本地的/usr/local/bin/目录下&#xff0c;赋予读写权限&#xff0c;检查&#xff0c;就可以使用了&#xff1b; # 下载到/usr/local/bin/docker-compose目录下 sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1…

flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client

flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client 在app中经常会使用长连接进行消息通信&#xff0c;这里记录一下基于websocket使用stomp协议的使用。 一、stomp&#xff1a;流文本定向消息协议 1.1 stomp介绍 stomp&#xff0c;Streaming Text Orientate…

微服务实例构建成 docker 镜像实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

8.带你入门matlab 数据统计与分析——区间参数估计 均匀分布(matlab 程序 )

1.简述 本文将涉及到数理统计的最后一个模块——参数估计&#xff0c;后续将更新的模块是多项式计算、数据插值和曲线拟合。 在讲述使用matlab来实现参数估计之前&#xff0c;有必要去了解一些基本原理。 1.离散型随机变量的极大似然估计法: (1) 似然函数 若X为离散型, 似然函数…

SQL进阶(2)——SQL语句类型 增删改查CRUD 事务初步 表关联关系 视图 +索引

目录 引出SQL语句类型1.DML数据操纵语言&#xff08;重点&#xff09;2.DQL数据查询语言&#xff08;重点&#xff09;3.DDL(Data Definition Language了解)4.DCL(Data Control Language了解)5.TCL 事务控制语言 运算符和其他函数1.运算符2.其它函数增删改查CRUD 视图索引事务1…

Qt实现画板绘制椭圆

Qt在窗体中绘图在paintEvent函数中进行,使用QPainter类进行窗体绘制 如果只是简单的在paintevent中向画布绘制椭圆,由于实时绘制的许多个椭圆重合在一起,就会出现下面的情况 你可以在每次绘制椭圆之前调用清空画布 myPix->fill(Qt::white);但是又会出现下面的情况,无法…

UE使用UnLua(一)

一、概述 Unlua是个功能丰富的插件&#xff0c;可以在UE中进行蓝图绑定&#xff0c;在Lua中进行逻辑开发&#xff0c;使用Lua热更新的特性&#xff0c;可以快速开发迭代表层逻辑 二、UnLua环境 首先下载UnLua的插件包&#xff0c;点击下载&#xff0c;不会吧不会吧还有人打不…