![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端面试题
遇见小美好
爱生活、爱运动、爱学习、喜欢尝试探索行业新技术的前端妹子(*^▽^*)
展开
-
用promise实现批量请求数据,同时支持控制请求的并发数
用promise实现批量请求数据,同时支持控制请求的并发数,支持取消请求。原创 2024-06-28 00:30:49 · 522 阅读 · 0 评论 -
【React篇】useMemo和useCallback的区别
【React篇】useMemo和useCallback的区别原创 2024-06-21 11:45:18 · 248 阅读 · 0 评论 -
常用的几种异步实现方式
前端异步实现方式原创 2024-06-05 15:27:58 · 412 阅读 · 0 评论 -
防抖(debounce)和节流(throttle)的优化方法
防抖(debounce)和节流(throttle)是两种常用的优化方法,用于减少高频事件(如滚动、输入、鼠标移动等)触发的函数执行次数,从而提高页面性能。原创 2024-06-04 23:45:03 · 503 阅读 · 0 评论 -
【算法篇】选择排序算法JavaScript版
选择排序算法JavaScript版原创 2024-06-02 16:57:58 · 219 阅读 · 0 评论 -
【算法篇】插入排序算法JavaScript版
插入排序算法JavaScript版原创 2024-06-02 18:07:47 · 296 阅读 · 0 评论 -
【算法篇】归并排序算法JavaScript版
归并排序JavaScript版本原创 2024-06-02 22:24:32 · 394 阅读 · 0 评论 -
【算法篇】冒泡排序算法JavaScript版
冒泡排序算法原创 2024-06-02 15:15:53 · 326 阅读 · 0 评论 -
Web Workers使用场景
Web Workers使用场景.原创 2024-05-31 15:41:47 · 236 阅读 · 0 评论 -
在浏览器里面输入 url,到浏览器显示页面中间发生了什么?
在浏览器里面输入 url,到浏览器显示页面中间发生了什么?这个过程涵盖了从用户输入URL到浏览器显示页面的整个过程。在实际应用中,还可能涉及到其他因素,如缓存、重定向、安全性(如HTTPS)等。原创 2024-05-31 08:53:20 · 380 阅读 · 0 评论 -
【React篇】简述React-Router 的实现原理及工作方式
简述React-Router 的实现原理及工作方式原创 2024-05-30 16:03:07 · 485 阅读 · 0 评论 -
【算法篇】LeetCode算法题:两数之和
给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。双指针解题思路。原创 2024-05-22 11:38:24 · 156 阅读 · 0 评论 -
【算法篇】LeetCode算法题:三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a + b + c = 0?请找出所有和为0且不重复的三元组。原创 2024-05-22 11:20:59 · 836 阅读 · 0 评论 -
一道高频面试题:TCP 协议为什么握手是 3 次,挥手却是 4 次?
TCP(传输控制协议)连接的建立和断开采用三次握手(Three-Way Handshake)和四次挥手(Four-Way Handshake)的机制,主要是为了防止旧的重复连接初始化造成混乱。原创 2024-05-22 11:00:11 · 501 阅读 · 0 评论 -
一道前端面试题:商家优惠券折扣
JavaScript面试题,商家优惠券折扣原创 2024-05-21 15:23:43 · 66 阅读 · 0 评论 -
Flex弹性布局常用的属性分类
Flex布局是一种用于创建弹性布局的CSS模型。以下是Flex布局中常用的属性分类:1. 容器属性(应用于flex容器):2. 子元素属性(应用于flex子元素):原创 2024-05-19 23:21:17 · 151 阅读 · 0 评论 -
css 文本超过一行省略号显示、文本超过两行省略号显示
请注意,文本最多显示两行的这种处理方法目前仅在支持Webkit盒子模型的浏览器中有效,例如Chrome和Safari。对于其他浏览器如果不生效,您可能需要使用其他方法,例如使用JavaScript来实现类似的功能。-webkit-line-clamp是控制显示的行数,比如您想显示3行,改为3即可。原创 2024-05-19 23:05:56 · 468 阅读 · 0 评论 -
Web前端安全——XSS攻击与防御
跨站脚本攻击简称 XSS (Cross-Site Scriptting),是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。本文简单地介绍了XSS攻击的危害、攻击示例与防御措施原创 2017-05-02 19:11:47 · 2505 阅读 · 1 评论 -
正则表达式面试题:过滤所有数字
b)将字符串中的数字乘以2,并且将字母用中括号括起来,类似246[a][b][c]81012[d][e][f]a)用正则过滤出所有的数字,结果变成类似123456。原创 2024-05-19 13:24:52 · 108 阅读 · 0 评论 -
LeetCode算法题226. 翻转二叉树 JavaScript版
LeetCode算法题226. 翻转二叉树 JavaScript版。原创 2022-08-08 12:37:00 · 253 阅读 · 0 评论 -
leetcood 算法题102. 二叉树的层序遍历
即逐层地,从左到右访问所有节点)。原创 2022-08-07 23:13:53 · 111 阅读 · 0 评论 -
letcood 199算法题. 二叉树的右视图
letcood 199. 二叉树的右视图原创 2022-08-07 22:51:24 · 267 阅读 · 0 评论 -
leetcode算法题:反转链表JavaScript版
算法题:反转链表JavaScript版原创 2022-08-02 11:52:25 · 197 阅读 · 0 评论 -
LeetCode 1556. 整数每隔3位数字添加千位分隔符
LeetCode 1556. 千位分隔数 JavaScript版本题目要求:给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。原创 2022-07-12 19:44:17 · 174 阅读 · 0 评论 -
经典面试题:判断有效的括号——javascript版本
面试题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true解题思路:使用栈“后进先出”这个规原创 2021-07-08 18:42:50 · 1047 阅读 · 0 评论 -
js实现数组扁平化的几种方式
数组偏平化数组的扁平化就是将一个嵌套多层的数组转换为只有一层的数组,扁平化也是面试中常见的考题。举个简单的例子,假设有个名为 flatDeep 的函数能实现数组扁平化效果,代码运行效果如下面:var array = [1, [2, [3, [4, 5]]]];console.log(flatDeep(array)); // [1, 2, 3, 4,5]像上述能实现偏平化的flatDeep函数实现方式有好几种,下面就尝试这几种方式实现一个flatDeep函数吧。方法一:递归通过循环递归的方式,一原创 2021-03-02 18:28:51 · 8313 阅读 · 2 评论 -
JavaScript设计模式——惰性单例模式
我们知道单例模式的核心是确保只有一个实例,并提供全局访问。而惰性单例只在需要的时候才创建对象实例并且只创建唯一的一个。创建对象和管理单例的职责被分布在两个不同的方法中,在实际开发中非常有用。惰性单例技术中创建单例的逻辑:用一个变量来标志是否创建过对象,如果是,则在下次直接返回这个已经创建好的对象:var object;if(!object){ object = xxx;}可以封装一个创建单例的getSingle函数,把创建对象的方法fn作为参数动态传入该getSingle函数:// 创原创 2021-01-30 18:53:12 · 170 阅读 · 0 评论 -
js判断数据类型(对象类型、字符串类型、函数类型、数组类型、数字类型等)
js判断是否为对象类型、字符串类型、函数类型的方法JavaScript封装几个简单的判断数值类型的工具方法,工作中还是挺实用的。判断数据是否为对象类型const isObject = (data) => { return Object.prototype.toString.call(data) === '[object Object]';}// 调用方法示例isObject...原创 2020-01-13 11:49:50 · 4566 阅读 · 0 评论 -
JavaScript计算传入参数的乘积以及优化方案
遇到求几个参数乘积的问题(例如求(1,2,3,4)的乘积得24),我们可能会毫不犹豫地写出如下代码:原始版本var multiply = function () { var a = 1; for (let i = 0; i < arguments.length; i++) { a = a * arguments[i]; } return a;}console.log('11:',multiply(1,2,3,4)); // 输出:24multiply 函数接受一些原创 2021-01-27 18:59:52 · 589 阅读 · 0 评论 -
js高频面试题:new的过程发生了什么?手写new的实现代码
今天我们来看一个js高频面试题:new的过程发生了什么?然后可能还会让现场手写new的实现代码。我们知道,new 运算符可以创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。举例用new创建一个有year, color, model属性的汽车对象Car:function Car(year, color, model) { this.year = year; this.color = color; this.model = model;}const myCar = new Car原创 2021-01-26 11:59:37 · 825 阅读 · 0 评论 -
javascript数组常用到的核心方法
concat: 连接 2 个或更多数组,并返回结果every: 对数组中的每个元素运行给定函数,如果该函数对每个元素都返回 true,则返回 truesome 对数组中的每个元素运行给定函数,如果任一元素返回 true,则返回 truefilter:对数组中的每个元素运行给定函数,返回该函数会返回 true 的元素组成的数组forEach: 对数组中的每个元素运行给定函数。这个方法没有返回值map: 对数组中的每个元素运行给定函数,返回每次函数调用的结果组成的数组join: 将所有的数组元素连接原创 2020-09-03 12:34:15 · 106 阅读 · 0 评论 -
js 将多层嵌套的数组转换为一层数组
js将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。例如 输入:[1,2,[3,4,[5,6],‘7’],‘a,b]cd’]期望输出:[1,2,3,4,5,6,‘7’,‘a,b]cd’]var newArr = []; // 用于存放转换后的数组function arrOfOneDimension(arr) { for (let key of arr) { if (Array.isArray(key)) { arrOfOneDimension(原创 2020-08-22 18:42:52 · 4054 阅读 · 0 评论 -
前端开发经典面试题之一:将2个有序数组排序
实现2个有序数组的排序比如将如下两个有序数组 [1, 3, 5, 7, 9, 12, 15, 18] 和 [2, 8, 11, 16, 19] 排序后,我们希望得到新数组[ 1, 2, 3, 5, 7, 8, 9, 11, 12, 15, 16, 18, 19 ]。可通过以下两种方法实现。方法一思路:把两个数组合并起来再排序function concatArr(data1, data...原创 2018-05-24 09:48:52 · 3450 阅读 · 0 评论 -
js实现数组浅拷贝和深拷贝
JavaScript实现数组的深拷贝、浅拷贝var arr = ['old', 1, true, null, undefined];var new_arr = arr.concat(); // 或者var new_arr = arr.slice()也是一样的效果;new_arr[0] = 'new';console.log(arr); // ["ol......原创 2018-05-25 10:58:54 · 38819 阅读 · 5 评论