当前位置: 首页 > news >正文

JavaWeb:JavaScript

概述

什么是JavaScript?

在这里插入图片描述

一、引入方式

JS引入方式

在这里插入图片描述

小结

在这里插入图片描述

二、基础语法

书写规范

在这里插入图片描述

输出语句

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

变量

在这里插入图片描述

常量

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

数据类型

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

运算符

在这里插入图片描述

类型转换

在这里插入图片描述

流程控制

在这里插入图片描述

小结

在这里插入图片描述

三、函数-类似Java中方法

函数

在这里插入图片描述

匿名函数

在这里插入图片描述

小结

在这里插入图片描述

四、对象

内置对象

Array

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

        //1. 定义数组// 方式1let arr = [1, 2, 3, 4, 5];console.log(arr);// 方式2let arr2 = new Array(1, 2, 3, 4, 5);// 长度为5console.log(arr2);arr2[10]="hello";console.log(arr2);//2. 数组属性 - lengthconsole.log("长度:" + arr2.length);for(let i=0;i<arr2.length;i++){console.log(arr2[i]);}// 快捷方式// for loop//3. 数组方法 - forEach , map,  push , pop , unshift , shift , splice// 只会变量有值元素arr2.forEach(item=>{console.log(item);})// maplet arr3 = arr2.map(item=>{return e+10;})// push尾部添加 pop 尾部移除  栈:先进后出let arr4 = ['a'];arr4.push('b', 'b', 'c');console.log(arr4);arr4.pop();console.log(arr4);// shift 头部移除  队列:先进先出// slice 删除元素let arr5 = [1,2,3,4,5,6,7,8,9];let newArr = arr5.slice(2,3);// 起始位置,删除几个console.log(newArr);

小结
在这里插入图片描述

String

在这里插入图片描述

        //1. 创建字符串let str = 'Hello JS    ';let str2 = new String('Hello JS');alert(str);alert(str2);//2. 字符串属性 - lengthalert(str.length);alert(str2.length);//3. 字符串方法 - charAt , indexOf , trim , substringalert(str.charAt(0));// Halert(str.indexOf('llo'));// 2alert(str.trim());alert(str.substring(2,5));// llo    包左不包右

小结
在这里插入图片描述

JSON

JS自定义对象
在这里插入图片描述

       //1. 自定义JS对象let obj = {name: '张三',age: 20,gender: '男',sing() {alert('I can sing')}}// 调用对象属性和方法alert(obj.name);obj.sing();

JSON对象
在这里插入图片描述

        // 调用对象属性和方法alert(obj.name);obj.sing();//2. JSON对象let jsonStr = '{"name":"张三","age":20,"gender":"男"}';// alert(jsonStr.name);// 错误undefined// JSON.parse() - 将JSON字符串转为对象let js = JSON.parse(jsonStr);alert(js.name);// JSON.stringify() - 将对象转为JSON字符串let jsStr = JSON.stringify(js);alert(jsStr);// 字符串形式// let objStr = JSON.stringify(obj);

小结
在这里插入图片描述

BOM

概念

在这里插入图片描述

Window

在这里插入图片描述

        //1. 窗口对象window.alert('Hello JS');let flag = window.confirm('是否继续');// 确定 true    console.log(flag);// window.prompt('请输入你的名字');// 定时器let i = 0;setInterval(() =>{i++;console.log(i);alert('定时器执行 ' + i + '次');}, 1000);// 延迟时间setTimeout(() => {alert('定时器执行完毕');}, 3000);
Location

在这里插入图片描述

  //2. Location对象alert(location.href);location.href = 'https://www.baidu.com';// 页面跳转
小结

在这里插入图片描述

DOM

在这里插入图片描述

DOM对象

在这里插入图片描述

DOM对象操作

在这里插入图片描述

       // 通过document获取元素对象// 1.通过css获取单个元素对象,返回第一个let s1 = document.querySelector('#sid');s1.innerHTML = 'DOM元素1修改';// 将内容修改 alert(s1.innerHTML);// 2.通过css获取多个元素对象,返回数组let s2 = document.querySelectorAll('.txt');alert(s2);s2.forEach(item => {item.innerHTML = 'DOM元素2修改';})
小结

在这里插入图片描述

DOM对象案例

在这里插入图片描述

       // 需求: 倒计时跳转到官网// 分析:Dom操作,周期性定时任务setInterval() location.href// 步骤:// 1.获取元素 let span = document.querySelector("#time");let timeVal = span.innerHTML;// alert(timeVal);// 每过1秒减1000;setInterval(function () {timeVal--;span.innerHTML = timeVal;// 3.判断时间是否到0if (timeVal <= 0) {// 4.跳转location.href = "https://www.jd.com";// // 5.清除定时器// clearInterval(timer);}span.innerHTML = timeVal;}, 1000);

五、事件监听

什么是事件?

在这里插入图片描述

事件监听

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

  <input type="button" id="btn1" value="点我一下试试1"><input type="button" id="btn2" value="点我一下试试2"><script>// 事件监听,可绑定多次事件document.querySelector("#btn1").addEventListener("click", ()=>{alert("试试就试试");});// 早版本 onclick没提示, 会覆盖,只能有最后一次事件document.querySelector("#btn2").onclick = function(){alert("试试就试试2");}// addEventListener 没绑定一次 都有效</script>

常见事件

在这里插入图片描述

案例:表格隔行换色

在这里插入图片描述

        // 需求:表格隔行换色// 分析:事件--鼠标移入移出事件 DOM操作添加样式// 1.获取Dom元素let trs = document.querySelectorAll(".data")for (let i = 0; i < trs.length; i++) {const tr = trs[i];// 2.操作元素属性:奇数行 #FBFBD4 偶数行 #D9D9FA// 移入tr.addEventListener('mouseenter', ()=>{if(i % 2 == 0) {tr.style = "background-color:#FBFBD4;"} else {tr.style = "background-color:#D9D9FA;"}})// 移除tr.addEventListener("mouseleave", ()=>{tr.style = "background-color:none";})}

案例:表单校验效果实现

在这里插入图片描述

     // 需求:表单校验,用户名4-16位,手机号11位// 分析:JS事件-- 鼠标离焦blur,表单提交let input = document.querySelector("#username");let checkUsername = function(){let flag = true;// 点出来,赋值let usernameValue = input.value;if(usernameValue.length < 4 || usernameValue.length > 16){document.querySelector("#name_msg").innerHTML = "用户名长度在4-16位";flag = false;} else {document.querySelector("#name_msg").innerHTML = "";}return flag;}input.addEventListener("blur",checkUsername)let input2 = document.querySelector("#phone");let checkPhone = function(){let flag = true;// 点出来,赋值let phoneValue = input2.value;if(phoneValue.length != 11){document.querySelector("#phone_msg").innerHTML = "手机号长度为11位";flag = false;} else {document.querySelector("#phone_msg").innerHTML = "";}return flag;}input2.addEventListener("blur", checkPhone)// 表单提交let form = document.querySelector("form");form.addEventListener("submit", function(event){// 校验if(!checkUsername() || !checkPhone()){alert("请输入正确的用户名和手机号");// 阻止表单提交event.preventDefault();}})

案例:表单校验效果实现-正则表达式

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

       let reg1 = /abc/let reg2 = new RegExp('123')console.log(reg1.test('abc'))console.log(reg1.test('abb'))// falseconsole.log(reg1.test('aabc'))// true 包含// 需求:用户名4-16位,且只能包含字母、数字、下划线// let reg3 = /\w[4,16]/let reg3 = /^[a-zA-Z0-9_]{4,16}$/// 需求:校验手机号let reg4 = /^1[3456789]\d{9}$/

六、模块化

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

http://www.xdnf.cn/news/142003.html

相关文章:

  • 【Go语言】RPC 使用指南(初学者版)
  • 深入理解C语言变量:从基础到实践
  • Electron从入门到入门
  • 资深程序员进阶设备分享,专业编程显示器RD280U
  • STM32驱动AD5318配置8通道DA详细讲解
  • 计算机组成原理:指令系统
  • 240425 leetcode exercises
  • 神经辐射场(NeRF)技术解析:3D重建与虚拟世界的未来
  • OceanBase 跻身 Forrester 三大领域代表厂商,全面支撑AI场景
  • 聚合分销小程序系统开发方案:整合AI对话、网盘、淘客CPS/CPA、电影票团购与会员卡业务
  • 蓝桥杯 6. 冰雹数
  • Kohya-ss-gui v25.0.3 训练Flux.1 大模型命令参数
  • TDengine 数据缓存技术
  • Android 编译问题 prebuilts/clang/host/linux-x86
  • MTKAndroid13-Launcher3 屏蔽部分app不让显示
  • Jenkins Pipeline 构建 CI/CD 流程
  • RK3588芯片NPU的使用:yolov8-pose例子图片检测在安卓系统部署与源码深度解析(rknn api)
  • ASP.NET Core 自动识别 appsettings.json的机制解析
  • 网络准入控制系统:2025年网络安全的坚固防线
  • 解析excel中的图片
  • 深入解析YOLO v1:实时目标检测的开山之作
  • 观测云数据在Grafana展示的最佳实践
  • 【安全扫描器原理】TCP/IP协议编程
  • 在 Vue3 中封装的 Axios 实例中,若需要为部分接口提供手动取消请求的功能
  • 智慧医疗领域TMI期刊2025年3月研究热点解析
  • 【音视频】AVIO输入模式
  • 红队系列-网络安全知识锦囊-CTF(持续更新)
  • Mac「brew」快速安装Redis
  • 猫咪如厕检测与分类识别系统系列【十三】猫咪进出事件逻辑及日志优化【下】
  • 第六章 进阶06 读书群第一次团建