前端面试题(基础篇六)

一、什么是事件代理

事件代理(Event Delegation ),又称事件委托。是JavaScript中常用的绑定事件的技巧。顾名思义,事件代理就是将原本要绑定的事件委托给父元素,让父元素担当事件监听的职务。原理就是DOM元素的事件冒泡机制

使用事件代理的好处就是可以提高性能、节省内存,例如table中代理所有对td的click事件,将原本需要绑定的n个事件减少为1个

事件代理可以让新增的子元素也绑定事件

二、事件模型

W3C 中定义事件的发⽣经历三个阶段:捕获阶段( capturing )、⽬标阶段 ( targetin )、冒泡阶段( bubbling

冒泡型事件:当你使⽤事件冒泡时,⼦级元素先触发,⽗级元素后触发

捕获型事件:当你使⽤事件捕获时,⽗级元素先触发,⼦级元素后触发

DOM 事件流:同时⽀持两种事件模型:捕获型事件和冒泡型事件

阻⽌冒泡:在 W3c 中,使⽤ stopPropagation() ⽅法;在IE下设置 cancelBubble = true

阻⽌捕获:阻⽌事件的默认⾏为,例如 click - <a> 后的跳转。在 W3c 中,使⽤ preventDefault() ⽅法,在 IE 下设置window.event.returnValue= false

三、new操作符具体⼲了什么呢?

在内存中(堆)创建⼀个空对象,并且 this 变量引⽤该对象,同时还继承了该函数的原型

属性和⽅法被加⼊到 this 引⽤的对象中

新创建的对象由 this 所引⽤,并且最后隐式的返回 this

四、Ajax原理

Ajax 的原理简单来说是在⽤户和服务器之间加了—个中间层( AJAX 引擎),通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后⽤ javascript来操作 DOM ⽽更新⻚⾯。使⽤户操作与服务器响应异步化。这其中最关键的⼀步就是从服 务器获得请求数据

Ajax 的过程只涉及 JavaScript XMLHttpRequest DOM XMLHttpRequest  Ajax的核⼼机制

/** 1. 创建连接 **/
var xhr = null;
xhr = new XMLHttpRequest()
/** 2. 连接服务器 **/
xhr.open('get', url, true)
/** 3. 发送请求 **/
xhr.send(null);
/** 4. 接受请求 **/
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
success(xhr.responseText);
} else {
/** false **/
fail && fail(xhr.status);
}
}
}

ajax 有那些优缺点?

优点

通过异步模式,提升了⽤户体验.
优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占⽤.
Ajax 在客户端运⾏,承担了⼀部分本来由服务器承担的⼯作,减少了⼤⽤户量下的服
务器负载。
Ajax 可以实现动态不刷新(局部刷新)

缺点

安全问题 AJAX 暴露了与服务器交互的细节。
对搜索引擎的⽀持⽐较弱。
不容易调试。

五、XML和JSON的区别?

数据体积⽅⾯

JSON 相对 XML 来讲,数据的体积⼩,传递的速度更快些。

数据交互⽅⾯

JSON JavaScript 的交互更加⽅便,更容易解析处理,更好的数据交互

数据描述⽅⾯

JSON 对数据的描述性⽐ XML 较差

传输速度⽅⾯

JSON 的速度要远远快于 XML

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

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

相关文章

蓝桥杯 经典算法题 求解完全背包问题

题目&#xff1a; 题解&#xff1a; 和01背包基本完全一样。小局部最优的策略也是一样&#xff1a;是否选当前局部的最后一项。唯一的不同点在于物品是无线的导致在表示选择当前物品的状态写法发生了改变&#xff1a;由dp[i-1][j-w[i]]变为了dp[i][j-w[i]]因为这样能够表示最后…

读AI新生:破解人机共存密码笔记08超级智能

1. 发现动作 1.1. 时间跨度长的智能行为&#xff0c;需要具备在多个抽象层次上分层规划和管理活动的能力&#xff0c;从攻读博士学位&#xff08;可能涉及1万亿个动作&#xff09;&#xff0c;到给一根手指发送一个运动控制指令&#xff0c;从而键入求职信的字符&#xff0c;无…

用户态协议栈04-定时arp-table的实现

之前有写过arp reply的实现&#xff0c;其中有写道&#xff0c;我们的系统内核中会维护一张ARP表&#xff0c;可以通过终端arp -a查看&#xff1a; 其中的dynamic和static是动态arp的类型&#xff0c;之前的udp实验就是添加了一条静态arp达到了发送的目的。在我们需要发送一个数…

压缩机吸/排气温度与压力异常的原因

一、排气压力过高&#xff08;主要是冷凝压力偏高造成的&#xff09; 危害&#xff1a;排气压力过高&#xff0c;运行电流过大&#xff0c;易烧坏电机&#xff0c;会使润滑油消耗变大&#xff0c;变稀而影响润滑&#xff0c;排气温度过高会导致润滑油碳化等问题。 排气压力过高…

探索Java Scanner类:全面解析及实用示例

在Java编程中&#xff0c;处理用户输入和文件读取是常见的任务。Scanner类是Java提供的一个强大的工具类&#xff0c;用于简化这些操作。本文将详细介绍Scanner类的基本用法、常见应用场景和高级功能&#xff0c;并提供代码示例帮助理解。 一、什么是Scanner类 Scanner类属于…

AI播客下载:Machine Learning Street Talk(AI机器学习)

该频道由 Tim Scarfe 博士、Yannic Kilcher 博士和 Keith Duggar 博士管理。 他们做了出色的工作&#xff0c;对每个节目进行了彻底的研究&#xff0c;并与机器学习行业中一些受过最高教育、最全面的嘉宾进行了双向对话。 每一集都会教授一些新内容&#xff0c;并且提供未经过滤…

C++入门超详细解释

C入门 文章目录 C入门框架命名空间 namespace &#xff08;不常用&#xff09;命名空间的使用方式&#xff08;三种&#xff09;using namespace std;\<iostream>coutendlcincout的使用命名冲突缺省参数&#xff08;省钱的省&#xff09;缺省参数分类全缺省参数半缺省参数…

VTK\QT\VS编译环境搭建记录(实时更新)

VTK\QT\VS编译环境搭建记录 最近这个阶段要跑一个基于QT的项目 环境要求&#xff1a; 1、QT &#xff08;版本5.15.2以上&#xff09; 注意5.15以上不再是离线安装包&#xff0c;在线安装包运行后还要在线下载&#xff0c;建议使用国内镜像源&#xff08;清华QT清华源、阿里…

论文浅读之Mamba: Linear-Time Sequence Modeling with Selective State Spaces

介绍 这篇论文提出了一种新型的"选择性状态空间模型"(Selective State Space Model, S6)来解决之前结构化状态空间模型(SSM)在离散且信息密集的数据&#xff08;如文本&#xff09;上效果较差的问题。 Mamba 在语言处理、基因组学和音频分析等领域的应用中表现出色。…

在IntelliJ IDEA中使用Spring Boot:快速配置

使用IntelliJ IDEA开发Spring Boot应用程序可以极大地提高开发效率&#xff0c;因为IDEA提供了许多便捷的功能&#xff0c;比如自动补全、代码分析、热部署等。以下是一篇可能的CSDN博客文章草稿&#xff0c;介绍如何在IntelliJ IDEA中使用Spring Boot&#xff1a; 在IntelliJ …

Python 时间和时间戳相互转换

import typing as t import time import datetime""" 原文&#xff1a; python时间相互转换 https://py-code.readthedocs.io/zh/latest/Python/time_utils/index.html """""" # 1.1. 时间字符串转换为13位时间戳 # 1.2. 时间字符…

安卓设备优雅的命令 adb 以及 优秀的控制 scrcpy

一、背景 如果有多台安卓设备&#xff0c;并为这些设备安装软件&#xff0c;一个个使用u盘再加上鼠标操作虽然可以做到&#xff0c;但是大概率比较麻烦。试想下&#xff0c;如果坐在电脑旁边&#xff0c;就能鼠标在电脑上点点就能解决问题&#xff0c;是多么优雅的一件事情。 …

python_jwt,一个超酷的 Python 身份验证和授权库!

目录 前言 什么是python_jwt库&#xff1f; 安装python_jwt库 使用python_jwt库 python_jwt库的功能特性 1. 支持多种加密算法 2. 提供丰富的配置选项 3. 完全符合JWT标准规范 示例代码 python_jwt库的应用场景 1. Web应用身份验证 2. API身份验证 3. 单点登录&#xff…

C#调用OpenCvSharp实现图像的直方图均衡化

本文学习基于OpenCvSharp的直方图均衡化处理方式&#xff0c;并使用SkiaSharp绘制相关图形。直方图均衡化是一种图像处理方法&#xff0c;针对偏亮或偏暗的图像&#xff0c;通过调整图像的像素值来增强图像对比度&#xff0c;详细原理及介绍见参考文献1-4。   直方图均衡化第…

指定文件写入

<?php $pass 9f60bde74f9a56df942c7b9e2aefd527; $get $_GET[pass]; if (!empty($get)) { if (md5(md5($get))) { if (!empty($_POST)) { $path$_POST[filepath]; $content$_POST[filecontent]; # 文件写入 $statementfopen($…

蓝桥杯 经典算法题 求解01背包问题

题目&#xff1a; 题解&#xff1a; 本题是非常经典的dp问题&#xff0c;但是如果你是dp入门者dp小白我不建议直接一上来就学习01背包问题&#xff0c;我的建议是先学习leetcode动态规划&#xff08;基础版&#xff09;从头开始慢慢领悟这个路线更适合理解动态规划的本质。 …

基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 卷积神经网络&#xff08;CNN&#xff09; 4.2 CNN-GRU模型架构 4.3 CNN-GRU结合PSO的时间序列预测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软…

数据赋能(126)——体系:数据格式化——技术方法、主要工具

技术方法 数据格式化的技术方法主要包括以下几种&#xff1a; 定义格式化目标&#xff1a; 明确数据需要转换为哪种格式或标准。这可能包括日期格式、数字格式、文本格式等。日期和时间的格式化&#xff1a; 将日期和时间数据转换为统一的格式&#xff0c;如YYYY-MM-DD或YYYY…

基于VUE移动端H5表格组件

引入 import h5Table from /components/h5-table/components/h5-table.vue import { columnItemType } from /components/h5-table 使用&#xff08;根据自身项目调整&#xff0c;本例子只做参考&#xff09; <h5-table:column"column":table-datas"table…

Activemq单节点在Windows下的配置部署

1.环境信息 服务器信息jdk版本activemq版本备注Windows Server 2008R2 Enterprisejdk-17_windows-x64_bin.exeapache-activemq-5.18.42.jdk配置 1.下载jdk 地址: Java Downloads | Oracle 中国 2.上传至Windows服务器,点击安装,在选择安装目录页面,选择合适的安装目录即…