javascirpt常用复习知识

news/2024/4/20 20:25:24/文章来源:https://blog.csdn.net/weixin_62922379/article/details/131970106

何为JS以及JS的重要性

js作为一门编程语言,对于前端来说是最为核心的,它关系者前端学习路线的命运,比如我们熟知的node.js、vue.js、以及我们使用过的jquery,他们的底层都是依赖于js,显而易见,他的重要性,我的这篇文章会引领你如何学习好js,拿准高效的知识,始终跑在前面

JS常用的基础数据类型

number(数值型) boolean(布尔性) string(字符串型) null()underfined(未定义) 以及我们在后面ES6中所学习的Symbol(确保值的唯一性,用的并不多)

JS常用的复杂数据类型

function(函数) array(数组) Object(对象)

JS表达式

常用的表达式如下:算数表达式:+ - * / % ++ --比较表达式:> < >= <= == === != !==逻辑表达式 && || !

JS获取标签的五中方式

getElementById()根据ID获取标签名
getElementsByClassName()根据类名获取标签属性 他返回的类型是一个伪数组
//简单介绍一下伪数组
/*它具有索引号以及长度但是它不具有数组的API方法
*/
getElementsByTagName()根据标签名获取标签属性 返回的类型也是一个伪数组
还有H5新增的获取标签属性的两种方式
querySelector() 获取标签属性 里面的参数可以填类名. id名#等等
querySelectorAll()返回该标签的所有集合,返回的是一个伪数组 

JS常用的事件

常用的鼠标事件:click      单击dblclick   双击mouseover  移入mouseout   移出mousemove  移动mouseenter 移入mouseleave 移出change     inputinput      inputfocus      聚焦blur       失焦mouseup    鼠标抬起mousedown  鼠标按下keyup      键盘抬起keydown    键盘按下keypress   键盘load       预加载resize     窗口变化scroll     滚动contextmenu   鼠标右键(常用于鼠标禁止右键)

JS事件三要素

首先获取事件源
其次给事件源绑定事件
最后添加处理程序
比如给某个button绑定点击事件的处理方式:
let btn = document.querySelector('button)
btn.onclick = function(){console.log(1)
}

js获取标签内容

存在两种方式:一种方式是innerText另外一种方式是innerHTML两种方式都是获取标签体内容的,但是二者存在区别:前者是获取内容,而后者可以获取标签内容(比如字体斜体、变大、下划线等等)

js对标签属性的操作

标签属性分为两种:一种是固有属性:标签中显示的 比如img中的src、alt;input中的value等等,我们可以通过浏览器查看的一种是自定义属性:标签存在该属性 但是浏览器不显示 比如data-index我们可以使用className和classList进行操作;className与classList的区别:前者是覆盖原先类型的,后者不会覆盖原先类名的

js分支语句

js分支语句包含: if else 单分支  if else if双重分支 if else if else if else多重分支以及switch分支语句
if语句语法:if(条件表达式){执行语句} //当满足条件表达式就执行该语句
if(条件表达式){执行条件1} else{执行条件2} //满足条件时执行1,否则执行语句2
if(){} else if(){} else if(){} else{} //依次里面的条件表达式,就会执行对应的执行语句 

js循环语句

js循环语句包括:while循环 do..while循环 以及使用较多的for循环
语法:while(条件表达式){执行语句 break}do{执行语句}while(条件表达式) 先执行语句一次 后通过条件表达式进行判断,是否满足 for循环我们常用于对元素进行遍历

课后作业:

1.用于输入QQ号,判断是否满足对应的条件

     // 作业要求// 1、有没有输入// 2、输入的是不是数字// 3、不能有0在前面// 4、不能是小数// 5、输入的数字必须在5位以上、11位以下//使用正则表达式进行处理   let qq = /^[1-9][0-9]{4,10}$/;let btn = document.querySelector('button')let inp = document.querySelector('input')btn.onclick = function () {let value = inp.valueif (qq.test(value)) {alert('输入合法')} else {alert('输入不合法')}}

2.修改盒子大小的案例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>* {margin: 0;padding: 0}.box {width: 600px;margin: 20px auto;list-style: none;border: 1px solid gray}.show {height: 200px;overflow: auto;line-height: normal}li {line-height: 40px;padding-left: 5px}li+li {border-top: 1px solid gray}input {margin-right: 10px;}button {vertical-align: middle}</style>
</head><body><!-- 要求:input输入任何对应值 点击后面的按钮div显示对应的效果--><ul class="box"><li class="show"><div>效果</div></li><li><input type="text" value="deepskyblue"><button>背景颜色</button></li><li><input type="text" value="white"><button>文字颜色</button></li><li><input type="number" value="20"><button>文字大小</button></li><li><input type="number" value="200"><button>修改宽度</button></li><li><input type="number" value="100"><button>修改高度</button></li></ul><script>// 下面方式比较简便let btns = document.querySelectorAll('button');let inps = document.querySelectorAll('input');let div = document.querySelector('div');// 使用循环遍历按钮并为每个按钮添加点击事件for (let i = 0; i < btns.length; i++) {btns[i].onclick = function () {let value = inps[i].value;console.log(value);setStyle(i, value);};}// 封装函数,用于修改样式function setStyle(index, value) {switch (index) {case 0:div.style.backgroundColor = `${value}`break;case 1:div.style.color = `${value}`break;case 2:div.style.fontSize = `${value}px`break;case 3:div.style.width = `${value}px`break;case 4:div.style.height = `${value}px`break;default:break;}}</script>
</body></html>

div样式操作的案例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>* {padding: 0;margin: 0;text-decoration: none;}#wrap {position: relative;width: 500px;height: 300px;border: 1px solid gray;padding: 20px;}#leftBox {width: 300px;height: 100px;border: 1px solid gray;}#rightBut {position: absolute;top: 20px;left: 340px;}#gray {display: none;position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: black;opacity: 0.4;}#edit {display: none;position: absolute;top: 20px;right: 20px;width: 180px;height: 260px;padding: 10px;background: #fff;}#edit a {display: inline-block;color: #000;border: 1px solid gray;width: 80px;height: 25px;text-align: center;line-height: 25px;margin-bottom: 10px;}</style>
</head><body><div id="wrap"><div id="leftBox"></div><button id="rightBut">点击显示div样式</button><div id="gray"></div><div id="edit"><h2>大小</h2><p><a href="#" id="size1">300*300</a><a href="#" id="size2">200*300</a><a href="#" id="size3">300*200</a><a href="#" id="size4">100*300</a></p><h2>颜色</h2><p><a href="#" id="color1">#ff0000</a><a href="#" id="color2">#00ff00</a><a href="#" id="color3">#0000ff</a><a href="#" id="color4">#00ffff</a></p><button id="true">确定</button><button id="false">取消</button></div></div><script>// 获取DOM元素let btn = document.querySelector('#rightBut');let edit = document.querySelector('#edit');let p = document.querySelectorAll('#edit p')[0].querySelectorAll('a');let p1 = document.querySelectorAll('#edit p')[1].querySelectorAll('a');let box = document.querySelector('#leftBox');let gray = document.querySelector('#gray')// 点击按钮执行的函数btn.onclick = function () {// 显示编辑框edit.style.display = 'block';// 显示遮罩层gray.style.display = 'block'// 鼠标移出事件,临时改变样式p.forEach(function (item) {item.onmouseleave = function () {let text = item.innerText.split('*');box.style.width = `${text[0]}px`;box.style.height = `${text[1]}px`;};});p1.forEach(function (item) {item.onmouseleave = function () {let text = item.innerHTML;box.style.backgroundColor = `${text}`;};});}// 确定和取消按钮的点击事件let confirmBtn = document.querySelector('#true');let cancelBtn = document.querySelector('#false');// 确定按钮点击事件confirmBtn.onclick = function () {// 点击确定按钮的时候,将数据保存到本地saveData()edit.style.display = 'none';// 隐藏遮罩层gray.style.display = 'none'}// 取消按钮点击事件cancelBtn.onclick = function () {// 点击取消的时候,从本地数据拿出来getData()// 隐藏遮罩层gray.style.display = 'none'// box.style.backgroundColor = '';// box.style.width = `${0}px`;// box.style.height = `${0}px`;edit.style.display = 'none';// box.style = 'none'box.id = 'leftBox';}function saveData() {let data = {width: box.style.width,height: box.style.height,backgroundColor: box.style.backgroundColor}localStorage.setItem('boxData', JSON.stringify(data))}function getData() {let data = JSON.parse(localStorage.getItem('boxData'))// console.log(data);const { width, height, bgc } = data// console.log(width);box.style.width = `${width}`box.style.height = `${height}`box.style.bgc = `${bgc}`}// saveData()</script>
</body></html>

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

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

相关文章

万年历【小游戏】(Java课设)

系统类型 Java实现的小游戏 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Idea或eclipse 运行效果 更多Java课设系统源码地址&#xff1a;更多Java课设系统源码地址 更多Java小游戏运行效果展示&#xff1a;更多Java小游戏运行效果展…

解决Font family [‘sans-serif’] not found问题

序言 以下测试环境都是在 anaconda3 虚拟环境下执行。 激活虚拟环境 conda activate test_python_env 或 source activate test_python_env工具&#xff1a; WinSCP Visual Studio Code 这里笔者使用 WinSCP 工具连接&#xff0c;编辑工具是 Visual Studio Code 一、字体…

mysql(六)读写分离

目录 前言 一、概述 二、配置JAVA环境及安装阿米巴 三、配置阿米巴 四、测试 总结 前言 MySQL读写分离是一种常见的数据库架构设计模式&#xff0c;旨在提高系统的性能和可用性。它通过将读操作和写操作分离到不同的MySQL实例上来实现。 读写分离的原理是&#xff1a; 1. 主…

UE5.1.1 创建C++项目失败

因一直使用Unity开发环境&#xff0c;安装Unreal后&#xff0c;并未详细配置过其开发环境&#xff0c;默认创建蓝图工程无异常&#xff0c;但创建UE C项目时总共遇到两个错误&#xff1a; 错误一 Running /Epic/UE/UE_5.1/Engine/Build/BatchFiles/Build.bat -projectfiles -…

郑州主域名和多个子域名的泛域名https证书

随着网络的发展&#xff0c;一个站长往往会创建多个域名网站&#xff0c;为了与主站有联系&#xff0c;站长会选择主站域名的二级域名来创建网站&#xff0c;比如主站是www .***. com&#xff0c;那么新创建的网站的域名就是top .***. com、vip .***. com等。 1.在安装部署htt…

原生求生记:揭秘UniApp的原生能力限制

文章目录 1. 样式适配问题2. 性能问题3. 原生能力限制4. 插件兼容性问题5. 第三方组件库兼容性问题6. 全局变量污染7. 调试和定位问题8. 版本兼容性问题9. 前端生态限制10. 文档和支持附录&#xff1a;「简历必备」前后端实战项目&#xff08;推荐&#xff1a;⭐️⭐️⭐️⭐️…

利用小波包对一维信号进行降噪或压缩(MATLAB)

function [ output_args ] example4_12( input_args ) %EXAMPLE4_12 Summary of this function goes here % Detailed explanation goes here clc; clear; % 设置信噪比和随机数的初始值 snr 3; init 2055615866; % 生成一个原始信号xref和含高斯白噪声的信号x [xref,x] …

网络安全/信息安全(黑客技术)自学笔记

一、网络安全基础知识 1.计算机基础知识 了解了计算机的硬件、软件、操作系统和网络结构等基础知识&#xff0c;可以帮助您更好地理解网络安全的概念和技术。 2.网络基础知识 了解了网络的结构、协议、服务和安全问题&#xff0c;可以帮助您更好地解决网络安全的原理和技术…

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化 不知道上一讲的大段代码大家看晕了没有。但是如果你仔细看了会发现&#xff0c;其实代码还是不全的。比如分词器我们就没讲。 另外&#xff0c;13B比7B的改进点也没有讲。 再有&#xff0c;对于13B需要多少显存我们…

记录每日LeetCode 141.环形链表 Java实现

题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链…

【RTT驱动框架分析00】-应用层函数调用流程-串口为例

应用层函数调用流程分析以-串口为例 1. rt_device_find调用流程 RTT内部有一个全局变量数组rt_object_container数组的数量就是 rt_object_info_type 内核对象的种类&#xff0c;其中包含一个RT_USING_DEVICE (设备的数据类型)&#xff0c;数组内部的每一个变量包含一个链表&…

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C\C++内存管理

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C中动态内存管理3.1new/delete内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数4.2重载operator new与operator delete&#xff08;了解&#xff09; 5.new和delete的实现原理5.1内置类型5.2 自定义类…

【动态规划part12】| 309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费

目录 &#x1f388;LeetCode309.最佳买卖股票时机含冷冻期 &#x1f388;LeetCode714.买卖股票的最佳时机含手续费 &#x1f388;LeetCode309.最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计…

【计算机视觉中的 GAN 】如何稳定GAN训练(3)

一、说明 在上一篇文章中&#xff0c;我们达到了理解未配对图像到图像翻译的地步。尽管如此&#xff0c;在实现自己的超酷深度GAN模型之前&#xff0c;您必须了解一些非常重要的概念。如本文所提的GAN模型新成员的引入&#xff1a;Wasserstein distance&#xff0c;boundary eq…

element时间选择器的默认值

概览&#xff1a;vue使用element组件&#xff0c;需要给时间选择器设置默认值&#xff0c;场景一&#xff1a;默认时间选择器&#xff0c;场景二&#xff1a;时间范围选择器&#xff0c;开始时间和结束时间。 一、默认时间选择器 实现思路&#xff1a; element组件的v-model绑…

DevOps-Jenkins

Jenkins Jenkins是一个可扩展的持续集成引擎&#xff0c;是一个开源软件项目&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 官网 应用场景 场景一 研发人员上传开发好的代码到github代码仓库需要将代码下载nginx服务器部署手动下载再…

数值线性代数:奇异值分解SVD

本文记录计算矩阵奇异值分解SVD的原理与流程。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 零、预修 0.1 矩阵的奇异值 设列满秩矩阵&#xff0c;若的特征值为&#xff0c;则称为矩阵的奇异值。 0.2 SVD(分解)定理 设&#xff0c;则…

Open3D-ML自动驾驶点云目标检测与分割入门

当开始新的研究时&#xff0c;我的方法通常是测试不同的相关事物&#xff0c;直到有足够的经验让我开始将这些点联系起来。 在开始构建用于 3D 对象检测的自定义模型之前&#xff0c;我购买了一台 LiDAR 并处理了一些数据。 下一个明显的步骤是在我为自己的数据贴标签之前找出研…

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器&#xff0c;属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos&#xff0c;ribbon还没有被替换。 使用&#xff1a; 在配置类中&#xff1a;LoadBalanced BeanLoadBalancedpublic RestTemplate restT…