前端面试JS手写篇
前端面试JS手写篇
叫我阿东就行
前端的那块砖
展开
-
JS手写判断对象是否相等
Object.is()是js内置的一个api,但是和===基本上没有区别,只是对一些特殊情况做出了特殊处理,所以并不能用来比较两个对象是否相等。所以必须得手写一个判断对象是否相等的方法。原创 2024-05-29 11:36:42 · 349 阅读 · 0 评论 -
20.JS判断一个元素进入可视区域
HTML结构及CSS样式。原创 2024-03-06 21:14:36 · 462 阅读 · 0 评论 -
19.JS手写判断类型函数
非常精确,对于null,function,undefined判断十分准确。原创 2024-02-26 17:05:09 · 554 阅读 · 0 评论 -
18.JS红绿灯
循环打印红黄绿,这是一道非常经典的场景应用题。这道题复杂的地方在于,而不是“亮完一次”就结束了。原创 2024-02-10 18:42:53 · 761 阅读 · 0 评论 -
17.解析URL Params为对象格式
【代码】17.解析URL Params为对象格式。原创 2024-02-10 18:13:57 · 336 阅读 · 0 评论 -
16.JS实现非负大整数相加
【代码】16.JS实现非负大整数相加。原创 2024-02-10 17:47:55 · 405 阅读 · 0 评论 -
15.实现数组的扁平化
可以通过 split 和 toString 两个方法来共同实现数组扁平化,由于数组会默认带一个 toString 的方法,所以可以把数组直接转换成逗号分隔的字符串,然后再用 split 方法把字符串重新转换为数组。其中 depth 是 flat 的参数,depth 是可以传递数组的展开深度(默认不填、数值是 1),即展开一层数组。这个方法的实现,采用了扩展运算符和 some 的方法,两者共同使用,达到数组扁平化的目的,我们还可以直接调用 ES6 中的 flat 方法来实现数组扁平化。原创 2024-02-10 12:42:47 · 776 阅读 · 0 评论 -
14.JS实现数组的乱序输出
【代码】14.JS实现数组的乱序输出。原创 2024-02-08 22:30:06 · 404 阅读 · 0 评论 -
13.JS实现深拷贝的方式
实现方式2(函数库lodash的_.cloneDeep方法)该函数库也有提供_.cloneDeep用来做 Deep Copy实现方式3(手写)实现步骤 1.如果复制的对象非对象或为空,直接返回 2.数组和对象分类初始化 3.对键进行递归拷贝原创 2024-02-08 21:42:40 · 912 阅读 · 0 评论 -
12.使用Promise封装Ajax
步骤都差不多,只是新创建了一个Promise对象,成功时调用resolve函数,失败时调用reject函数,然后再将这个promise返回出去。原创 2024-02-08 10:53:01 · 1377 阅读 · 0 评论 -
11.手写封装Ajax请求
AJAX是 Asynchronous JavaScript and XML 的缩写,指的是通过 JavaScript 的 异步通信,从服务器获取 XML 文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。原创 2024-02-08 10:43:46 · 401 阅读 · 0 评论 -
10.JS函数柯里化的实现
函数柯里化指的是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。原创 2024-02-08 10:22:14 · 356 阅读 · 0 评论 -
9.手写bind
【代码】9.手写bind。原创 2024-02-07 19:59:50 · 412 阅读 · 0 评论 -
8.手写apply
【代码】8.手写apply。原创 2024-02-07 19:56:53 · 308 阅读 · 0 评论 -
7.手写call函数
【代码】7.手写call函数。原创 2024-02-07 19:53:54 · 348 阅读 · 0 评论 -
6.手写JS判断类型函数
手写JS判断类型函数主要是分类讨论,分为null值,基本数据类型函数类型,引用类型三种情况。原创 2024-02-07 19:46:17 · 385 阅读 · 0 评论 -
5.节流函数
函数节流是指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。节流可以使用在 scroll 函数的事件监听上,通过事件节流来降低事件调用的频率。原创 2024-02-07 19:32:16 · 340 阅读 · 0 评论 -
4.防抖函数
函数防抖是指在事件被触发 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。这可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。原创 2024-02-07 19:28:13 · 370 阅读 · 0 评论 -
3.手写JS中的new操作
(4)判断函数的返回值类型,如果是值类型,返回创建的对象。如果是引用类型,就返回这个引用类型的对象。(3)让函数的 this 指向这个对象,执行构造函数的代码(为这个新对象添加属性)(2)设置原型,将对象的原型设置为函数的 prototype 对象。(1)首先创建了一个新的空对象。原创 2024-02-07 19:24:32 · 317 阅读 · 0 评论 -
2.手写instanceof函数
【代码】2.手写instanceof函数。原创 2024-02-07 19:16:51 · 315 阅读 · 0 评论 -
1.JS手写Object.create
Object.create函数接受一个参数,返回值为一个新的对象,将该对象的原型设置为该参数对象。原创 2024-02-07 19:15:04 · 381 阅读 · 0 评论