Web前端最全JavaScript常用事件集合,前端小白必备(写的很详细,建议收藏),CSS标准文档流

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

<button

id=“dbBtn”

οndblclick=“dbFn()”

οnclick=“clickFn()”>双击事件

鼠标悬浮事件

悬浮显示div

原有文字

键盘事件

2.1 鼠标悬浮事件

let btn= $my(“btn”);

let div2 = $my(“div2”);

// 鼠标悬浮事件

btn.onmouseover = function(){

div2.style.display = “block”;

}

// 鼠标离开事件

btn.onmouseout = function(){

div2.style.display = “none”;

}

此处的 $my() 已经进行过封装,这样很方便,代码如下:

function $my(id){

return document.getElementById(id);

}

2.2 点击事件

let timeId = null;

// 单击事件

function clickFn(){

clearTimeout(timeId);

timeId = window.setTimeout(function(){

console.log(“单击事件”);

}, 500)

}

// 双击事件

function dbFn(){

clearTimeout(timeId)

console.log(“双击事件”)

}

2.3 常用的回车事件

// 键盘事件

function keyFn(event){

console.dir(event);

}

// 监听窗口回车事件

document.onkeyup = function(event){

console.log(event.keyCode);

if(event.keyCode === 13){

alert(“回车事件”)

}

}

在这里插入图片描述

3. 获取浏览器类型,手机机型(容易出问题的地方)


3.1 获取浏览器类型

let userAgent= navigator.userAgent;

console.log(userAgent);

if (userAgent.indexOf(“Opera”) > -1) { // 判断是否是Opera浏览器

console.log(“Opera”);

};

if (userAgent.indexOf(“Firefox”) > -1) { // 判断是否是Firefox浏览器

console.log(“Firefox”);

}

if (userAgent.indexOf(“Chrome”) > -1) { // 判断是否是Chrome浏览器

console.log(“Chrome”);

}

if (userAgent.indexOf(“Safari”) > -1) { // 判断是否是Safari浏览器

console.log(“Safari”);

}

if (userAgent.indexOf(“compatible”) > -1 && userAgent.indexOf(“MSIE”) > -1) {

console.log(“IE”); // 判断是否是IE浏览器

};

3.2 判断手机机型(移动端解决兼容问题常用)

// 检测机型 安卓还是苹果

function getAdr(){

//获取机型信息

let type = navigator.userAgent;

let isAndroid = type.indexOf(“Android”) > -1 ||

type.indexOf(“Adr”) > -1;

return isAndroid;

}

console.log(getAdr()); // true为安卓 false为苹果

4. 事件冒泡与事件委托(面试重点)


HTML文件代码如下(记得先复制这个

事件冒泡

div的文本

我是段落标签

事件委托

    • 1
    • 2
    • 3
    • 4
    • 增加一个li

      4.1 阻止事件冒泡

      • 事件冒泡:当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window

      • 显然,这是错误的,需要做处理(就像儿子都成年了,做错了事,凭什么找老子?

      // 如果不做处理,点击p标签时会触发div的点击事件

      function divFn(e){

      console.log(“div被点击了”);

      }

      function pFn(e){

      console.log(“段落被点击了”);

      window.event ?

      window.event.cancelBubble = true :

      // 阻止事件冒泡

      e.stopPropagation();

      }

      在这里插入图片描述

      4.2 事件委托

      • 事件委托:把一个元素响应事件(点击事件、悬浮事件等等)的函数委托给另一个元素

      • 举两个例子:

      • 隔壁老王和老婆分手了,所以只能委托我去爱她老婆(好坏哦~)

      • 放公司的快递到了,因为我请假爱老王老婆去了,所以只能委托前台签收一下

      • 在JS中,这是一种好的处理方式:大大的减少dom操作,提升性能

      数据结构与算法

      这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

      开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

      • 二叉树层序遍历
      • B 树的特性,B 树和 B+树的区别
      • 尾递归
      • 如何写一个大数阶乘?递归的方法会出现什么问题?
      • 把多维数组变成一维数组的方法
      • 知道的排序算法 说一下冒泡快排的原理
      • Heap 排序方法的原理?复杂度?
      • 几种常见的排序算法,手写
      • 数组的去重,尽可能写出多个方法
      • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
      • 知道数据结构里面的常见的数据结构
      • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
      • 合并两个有序数组
      • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

      法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

      • 二叉树层序遍历
      • B 树的特性,B 树和 B+树的区别
      • 尾递归
      • 如何写一个大数阶乘?递归的方法会出现什么问题?
      • 把多维数组变成一维数组的方法
      • 知道的排序算法 说一下冒泡快排的原理
      • Heap 排序方法的原理?复杂度?
      • 几种常见的排序算法,手写
      • 数组的去重,尽可能写出多个方法
      • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
      • 知道数据结构里面的常见的数据结构
      • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
      • 合并两个有序数组
      • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

      [外链图片转存中…(img-VtRzLD2H-1715172043544)]

    • 21
      点赞
    • 28
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    Web前端开发技术是指通过使用HTML、CSSJavaScript等技术,构建和开发网站的前端部分。 HTML(超文本标记语言)是一种标记语言,用于描述网页的结构和内容。通过使用标签和属性,可以进行文本、图片、链接等的定义和排版,实现页面的基本布局。 CSS(层叠样式表)是一种用于描述网页样式的语言。通过使用选择器和属性,可以定义页面元素的样式,包括颜色、字体、边框、背景等。CSS可以使网页实现更好的外观和可读性。 JavaScript是一种基于对象和事件驱动的脚本语言,用于实现网页的动态和交互效果。通过JavaScript,可以对页面元素进行操作、响应用户事件、进行表单验证等,增强用户体验和交互性。 作为Web前端开发者,需要熟练掌握HTML、CSSJavaScript等技术。首先,使用HTML构建页面的骨架和内容,确定页面的结构和布局。接着,使用CSS对页面进行美化和样式定义,增加页面的吸引力和可读性。最后,借助JavaScript实现页面的动态效果和交互功能,提高用户体验。 当然,Web前端开发技术不仅仅限于HTML、CSSJavaScript,还涉及到其他技术和框架,例如响应式设计、前端框架(如React、Vue.js)、跨平台开发等。随着互联网和移动互联网的快速发展,Web前端开发也在不断进化,因此持续学习和掌握最新的前端技术是非常重要的。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值