web前端 -- Day20 js基础

JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】 尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) 阅读详情
为元素绑定多个事件

绑定事件的区别
事件绑定的方法:

addEventListener(); 
attachEvent();

相同点:都可以为事件绑定元素
不同点:

  1. 方法名不一样;
  2. 参数个数不一样;
  3. addEventListener()谷歌、火狐、IE11支持,IE8不支持;attachEvent()谷歌、火狐、IE11不支持,IE8支持;
  4. this不同,在addEventListener中的this是当前绑定事件的对象,attachEvent中的this是window;
  5. addEventListener中事件的类型(事件名字)没有on,attachEvent中的事件类型(事件名字)没有on

移除绑定事件的方式及区别和兼容代码
注意:用什么方式绑定事件,就应该用对应的方式解绑事件

  1. 对象.on事件名字 = 事件处理函数 – 绑定事件
    对象.on事件名字 = null;
  2. 对象.addEventListener(“没有on的事件类型”,命名函数,false);
    对象.removeEventListener(“没有on的事件类型”,命名函数,false)
  3. 对象.attachEvent(“有on的事件类型”,命名函数);
    对象.detachEvent(“有on的事件类型”,命名函数);
// 绑定事件的兼容代码
function addEventListener(element,type,fn){
    if(element.addEventListener){
        element.addEventListener(type,fn,false)
    }else if (element.attachEvent) {
        element.attachEvent(type,fn)
    }else {
        element["on"+type] = fn;
    }
}
// 解绑事件的兼容代码
function removeEventListener(element,type,fn){
    if(element.removeEventListener){
        element.removeEventListener(type,fn,false)
    }else if (element.detachEvent) {
        element.detachEvent(type,fn)
    }else {
        element["on"+type] = null;
    }
}
事件冒泡

多个元素嵌套,有层次关系,这些元素都注册了相同事件,如果里面元素的事件触发了,那么外边的元素的事件自动的触发了,触发是从里向外。

如何阻止事件冒泡???

// 谷歌、IE 支持,火狐不支持
window.event.cancelBubble = true;
// 谷歌火狐支持
e.stopPropagation(); 

window.event和e.stopPropagation()都是事件参数对象,一个是IE的标准,一个是火狐的标准,事件参数e在IE8的浏览器中是不存在,此时用window.event代替。

事件的三个阶段

事件阶段:三个阶段,通过e.eventPhase这个属性,可以知道当前事件是什么阶段的。一般默认都是冒泡阶段,很少用捕获阶段。

  1. 事件捕获阶段:从外向内
  2. 事件目标阶段:最开始选择的那个
  3. 事件冒泡阶段:从里向外
// 事件触发过程中,可能会出现事件冒泡的效果,为了阻止事件冒泡
addEventListener("没有on的事件类型",事件处理函数,控制事件阶段的);

地址解析
  1. 历史记录的后退和前进:history – back();后退 forward(); 前进
  2. 地址栏上的地址的操作:location – href属性跳转页面, assgin()跳转页面, reload()刷新 , replace() 方法替换地址栏上的地址的,没有历史记录
  3. 获取系统和浏览器的信息 navigator – userAgent属性:获取系统,浏览器的信息的
console.log("地址栏上#及其后面的内容",window.location.hash);
console.log("主机名及端口号",window.location.host);
console.log("主机名",window.location.hostname);
console.log("文件路径 -- 相对路径",window.location.pathname);
console.log("端口号",window.location.port);
console.log("协议",window.location.protocol);
console.log("搜索内容",window.location.search);
定时器
// 返回值就是定时器的id值
var timeID =  setInterval(function(){
     alert("定时器!!!");
 },1000);

 my$("btn").onclick = function(){
     // 点击按钮,停止定时器
     // 参数:要清理的定时器的id
     window.clearInterval(timeID);
 }

参数1:时间 – 毫秒 – 1000毫秒 – 1秒
执行过程:页面加载完毕后,过了1秒,执行一次函数代码,又过了一秒再执行函数。

一次性的定时器,只执行一次
参数1:函数
参数2:时间 – 1000毫秒 – 1秒
返回值是改定时器的id
window.setTimeout(“函数”,“时间”);

var timeId= window.setTimeout(function(){alert("hello!!!");},1000);
    // 点击按钮,停止这个一次性的定时器
    my$("btn1").onclick = function () {
    clearTimeout(timeId);
    }
}
Moment.js vs Day.js:现代前端项目中的日期库选型指南 本文深度对比了Moment.js与Day.js两大前端日期库。Moment.js功能全面但体积较大,而Day.js作为轻量级替代品,拥有极小的核心体积、高度兼容的API和模块化插件系统,更符合现代前端对性能和Tree Shaking的追求。文章从包大小、API兼容性、迁移成本、性能及生态等多个维度,为2024年的项目选型提供了清晰的决策框架。 阅读详情

相关推荐

HY的Web前端周记 Day1

HY的Web前端开发周记 Day1 引子 2021.3.04,信息管理创新实践课程开始学习。主要了解了关于HTML、CSS、JavaScript 的基本概念及其用途,并对html基础元素、属性有了一定的了解。运用了HBuilder作为开发环境,在Hbulider上面实践了我们的第一个专属网页:个人自我介绍页。以下是我对本次课程学习的总结。 提示:以下是本篇文章正文内容,下面案例可供参考 一、HTML、CSS、JavaScript HTML 超文本标记语言(英语:HyperText Markup Langu

qq_51167539的博客 2585

JavaScript 基础 - 第20天_Node.js入门

Node.js安装与使用

八年大厂一线老程序员。现独立开发创业中,并且已经靠独立开发赚取人生第一桶金。 2238

保姆级教程:用NFS把群晖NAS的文件夹挂到Ubuntu 22.04上,实现文件无缝共享

本文提供了一份详细的教程,指导用户如何通过NFS协议将群晖NAS的文件夹挂载到Ubuntu 22.04系统上,实现文件的无缝共享。文章对比了NFS与SMB协议的性能差异,并提供了群晖端和Ubuntu端的配置指南、高级参数优化、自动挂载方案以及生产环境中的实战技巧,帮助用户提升文件共享效率和系统稳定性。

weixin_29213827的博客 405

Day6 前端开发(from teacher;HTML,CSS,JavaScript,Web APIs,Node.js,Vue)

*关于布局的演化**

qq_53682472的博客 806

THB6128步进电机驱动芯片介绍

THB6128芯片也称为步进电机驱动芯片,采用BiCDMOS工艺,IC管脚间距为1mm的小型MFP30KR封装而成。

weichen_78的博客 7182

终极指南:如何用Day.js轻量日期库提升Web Vitals用户体验指标

Day.js是一个仅2kB大小的轻量级JavaScript日期库,提供与Moment.js相同的现代API,同时保持 immutable特性,是提升Web Vitals性能指标的理想选择。通过优化日期处理性能,Day.js帮助开发者减少加载时间和运行时开销,直接改善网站的核心用户体验指标。 ## 为什么Web Vitals性能指标至关重要 Web Vitals是Google推出的核心用户体验指

gitblog_02085的博客 499

用STM32F407做个USB声卡:从CubeMX配置到播放录音全功能实战(附源码)

本文详细介绍了如何使用STM32F407开发板实现USB音频设备的全功能实战,包括CubeMX配置、硬件连接、音频流处理和性能优化。通过双缓冲DMA机制和音频数据处理流程,开发者可以构建高质量的USB声卡系统,适用于录音和播放场景。附源码,助力快速上手STM32音频开发。

weixin_30301449的博客 516

web前端基础到入门——02day

本文系统讲解了JS函数的两种定义方式与核心特性,实操演示数组、字符串、JSON等前端高频数据处理方法,最后聚焦BOM浏览器对象模型,讲解window、location对象,实现弹窗提示、定时任务、页面跳转等基础浏览器交互功能。文末汇总全日知识点,串联前后学习内容,为后续DOM特效学习打下坚实基础。

2503_92538328的博客 365

PX4代码解析(1)

前言 做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。 目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构 一、代码整体结构 既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

qq_36903625的博客 1万+

KoboldCpp vs Ollama vs llama.cpp 全面对比(2026工程视角)

本文对比分析了KoboldCpp、Ollama和llama.cpp三大本地AI推理工具的核心差异。llama.cpp作为基础引擎性能最强但上手困难;KoboldCpp在其基础上增加了UI界面,适合娱乐创作;Ollama则提供最简化的模型管理和API服务。性能实测显示:llama.cpp>KoboldCpp>Ollama。选型建议:新手用Ollama快速入门,玩家选KoboldCpp获得交互体验,工程师用llama.cpp追求极致性能。三者定位清晰:性能极限、使用体验和开发效率各有所长。

刘一说的IT专栏 905

day20-js基础

一 选择器的优先级 权重值越大优先级越高。(无论权重是多少,内联样式表的优先级是最高的) 元素选择器、* 权重值是:1 类选择器的权重值是:2 id选择器的权重值是:4 群组选择器:看每个独立选择器的权重值分别是多少 后代选择器和子代选择器:所有被>或者空格隔开的选择器的权重之和 后代选择器比较权重的时候,先比较比较第一大的独立选择器的权重,谁的权重大谁的优先级就高,如果第一大相同,就比较第二大的,以此类推。 二 认识js 2.1.什么是js js是JavaScript的缩写,是一门专门用来控制前

Hokage_rob的博客 277

滑模观测器与锁相环结合应用:让电机“无感”也能精准旋转的奥秘

本文介绍了永磁同步电机无传感器控制中的滑模观测器(SMO)结合锁相环(PLL)技术。SMO通过创建虚拟电机模型,利用电流误差产生控制信号来估计反电动势;PLL则从反电动势中解码转子位置和速度信息。该组合方案兼具SMO的鲁棒性和PLL的高精度,计算量小且硬件要求低。文章详细阐述了原理、数学模型、参数整定方法及实际实现技巧,包括离散化处理、符号函数替代等优化手段,并分析了低速性能限制、抖振问题等常见挑战及解决方案。最后指出该技术未来将与人工智能、多观测器融合等方向结合发展。

汽车软件开发 195

【JavaWeb|day20 Web前端实战 项目部署】

前端实战关键:统一结构、封装请求、前后端数据对齐。部署核心:服务器环境准备→项目打包→上传部署→反向代理配置。排查技巧:优先看日志(后端 app.log、Nginx 日志),用浏览器调试前端请求。

King_model的博客 595

后仿真中的关于延时问题(物理特性角度)

大家都知道,后仿真讲究仿真时序。那么,在网表阶段,接触到后仿延时问题。今天总结一下。

那么菜的博客 1772

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Day20 Web前端 (3)JavaScript

(3)JavaScript 一.页面定时弹出广告 定时器 setInterval("test()",3000):每隔多少毫秒执行一次函数 setTimeout("test()",3000):多少毫秒之后执行一次函数 timerID 上面定时器调用之后都会返回一个唯一的ID clearInterval(timerID): clearTimeout(timerID): ...

ambition 833

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Web前端】JavaScript(一)—— JS 基础语法

本文介绍了JavaScript的基础知识,主要包括以下内容: JavaScript概述:解释JS作为脚本语言的特点、应用场景(网页开发、游戏、服务器等)以及与HTML/CSS的关系(分别负责结构、表现和行为)。 运行机制:说明JS在浏览器中的执行过程,包括JS引擎的工作原理和浏览器渲染流程。 基本语法: 三种引入方式(行内式、内嵌式、外部式) 输入输出方法(prompt、alert、console.log) 变量声明(var/let)和动态类型特性 基本数据类型(number、boolean、string等

Z2382430464的博客 487

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

web前端基础知识

HTML&CSS基础经典版 HTML:结构(页面元素和内容) css:表现(网页元素的外观和位置等页面样式) 行为:JavaScript:行为(网页模型定义与页面交互) 排版标签 排版标签标题标签:h系列标签 重要程度依次递减 特点:独占一行、h1-h6文字逐渐减小 段落标签:p 特点:段落之间存在间隙、独占一行 换行标签: 水平分割线: 文本格式化标签 场景:让文字加粗b strong、下划线u ins、倾斜i em、删除线s del等 语义:突出重要

qq_43375584的博客 6979

黑马JavaWeb+AI笔记 Day02 Web前端基础(JavaScript+Vue)

JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言,是用来控制网页行为,实现页面的交互效果。自定义对象(对象)age: 20,gender:'男',sing() {alert(this.name+'唱着最炫的民族风');📌自定义对象中方法使用箭头函数this指向当前对象的父类【不推荐】JSON (字符串)用于数据载体"age": 20,"gender": "男"📌key和字符串使用双引号→ 对象转字符串→ 字符串转为对象✅ DOM语法:事件源.('事件类型。

ZYM2300837217的博客 475

html css周记,HY的Web前端周记 Day1

HY的Web前端开发周记 Day1引子2021.3.04,信息管理创新实践课程开始学习。主要了解了关于HTML、CSS、JavaScript 的基本概念及其用途,并对html基础元素、属性有了一定的了解。运用了HBuilder作为开发环境,在Hbulider上面实践了我们的第一个专属网页:个人自我介绍页。以下是我对本次课程学习的总结。提示:以下是本篇文章正文内容,下面案例可供参考一、HTML、CS...

weixin_28836875的博客 659

web前端 -- Day9 js基础

JavaScript JavaScript简称js,分三个部分: 1、ECMAScript 标准—js的基本语法 2、DOM ---- Document Object Model 文档对象模型 3、BOM ---- Brower Object Modle 浏览器对象模型 JavaScript是什么? 1、是一门脚本语言:不需要编译,直接运行 2、是一门解释性语言:遇到一行代码就解释一行代码 3、是...

Jane's Blog 296

WEB前端开发练习代码

<!DOCTYPE html> <!-- HTML5申明 --> <html lang="zh"> <!-- 表示本网站为中文网站 --> <!-- 头部,定义网页标题和字体样式等 --> <head> <meta charset="UTF-8"> <!-- 定义网页为UTF-8编码 --> <title>Web前端开发技术初步应用</title> &l.

tiantianzs的博客 6519

Web前端105天-day20-JS

jday20-js第五天学习

qq_52810836的博客 329

OpenCore Legacy Patcher 旧Mac升级macOS指南:不受支持机型免费装上最新系统

你那台 2012 年的 iMac 装不上新系统吗?苹果更新支持列表后,老 Mac 就被留在了原地。OpenCore Legacy Patcher 是一款免费开源工具,它在内存层注入补丁,让不受支持的 Intel Mac 也能安装并运行最新版本的 macOS。本文带你完成旧 Mac 升级 macOS 的全流程:先做三项自检,再按顺序走通构建、装机、补丁五步,最后附上踩坑急救和日常维护清单。 [![

gitblog_01417的博客 509

JavaScript基础day01

定义:一种运行在客户端(浏览器)的编程语言,实现人机交互效果。作用:(1)网页特效 (监听用户的一些行为让网页作出对应的反馈)(2)表单验证 (针对表单数据的合法性进行判断)(3)数据交互 (获取后台的数据, 渲染到前端)(4)服务端编程 (node.js)组成:(1)ECMAScript:规定了js基础语法核心知识。比如:变量、分支语句、循环语句、对象等等(2)Web APIs : DOM 操作文档,比如对页面元素进行移动、大小、添加删除。

m0_74153968的博客 789

web前端 -- Day23 js高级

js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准—基础的语法 DOM Document Object Model 文档对象模型 BOM Browser Object Model 浏览器对象模型 什么是JS? 前面的文章有更详细的解释,自行查找 是一门脚本语言 是一门解释性语言 是一门弱类型语言 是一门基于对象的语言 是一门动态类型的语言 动态页面 :...

Jane's Blog 465
上一篇: web前端 -- Day19 js基础
下一篇: web前端 -- Day21 js基础
黑萝卜不黑
博客等级 码龄11年 41粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值