js
文章平均质量分 65
CreatorRay
这个作者很懒,什么都没留下…
展开
-
GPT每日面试题—如何实现二分查找
充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:如何实现二分查找?原创 2024-03-25 12:00:08 · 417 阅读 · 0 评论 -
GPT每日面试题—防止接口重复调用的前端解决方案
充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:防止接口重复调用的前端解决方案。原创 2024-03-12 11:38:53 · 388 阅读 · 0 评论 -
GPT每日面试题—函数柯里化
充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:函数柯里化原创 2024-02-27 18:55:59 · 368 阅读 · 0 评论 -
GPT每日面试题—防抖和节流
充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:防抖和节流?原创 2024-02-27 14:41:37 · 371 阅读 · 0 评论 -
前端路由的hash模式和history模式
前端路由是现代单页面应用(SPA)中不可或缺的一部分,它允许用户在不重新加载整个页面的情况下,实现页面之间的切换。在前端路由的实现中,Hash模式和History模式是两种常见的技术。本文将深入探讨这两种模式的原理和区别。原创 2023-12-05 11:03:08 · 379 阅读 · 0 评论 -
JS实现基数排序
基数排序(Radix Sort)作为一种非比较性的排序算法,以其独特的思想和高效的性能而受到广泛关注。本文将深入研究基数排序的原理、实现方式等。原创 2023-12-04 15:10:10 · 108 阅读 · 0 评论 -
JS实现桶排序
桶排序(Bucket Sort)作为一种分布式排序算法,具有简单、直观且高效的特点。本文将深入研究桶排序的原理、实现方式等。原创 2023-12-04 15:02:23 · 87 阅读 · 0 评论 -
JS实现计数排序
计数排序(Counting Sort)作为一种非常特殊且有效的排序算法,具有线性时间复杂度的特点,适用于一定范围内的整数排序。本文将深入研究计数排序的原理、实现方式等。原创 2023-12-04 14:44:36 · 62 阅读 · 0 评论 -
JS实现希尔排序
希尔排序(Shell Sort)是一种插入排序的改进版本,旨在解决插入排序在处理大规模数据时性能较差的问题。原创 2023-12-04 14:24:01 · 96 阅读 · 0 评论 -
JS实现堆排序
堆排序(Heap Sort)作为一种高效的排序算法,具有稳定的性能和卓越的时间复杂度。本文将深入研究堆排序的原理、实现方式等。原创 2023-12-04 14:22:29 · 56 阅读 · 0 评论 -
JS实现归并排序
归并排序(Merge Sort)作为一种高效而稳定的排序算法,被广泛应用于实际场景。本文将深入研究归并排序的原理、实现方式等。原创 2023-12-01 17:04:30 · 127 阅读 · 0 评论 -
JS实现插入排序
插入排序(Insertion Sort)是一种简单直观的排序算法,其核心思想是逐步构建有序序列,对于每个未排序的元素,在已排序部分找到合适的位置插入。本文将深入研究插入排序的原理、实现方式等原创 2023-12-01 16:52:56 · 262 阅读 · 0 评论 -
JS实现选择排序
在计算机科学中,排序是一项基本而重要的任务,而排序算法的性能直接关系到数据处理的效率。选择排序(Selection Sort)虽然不如一些高级排序算法那样高效,但其简单易懂的实现方式使其在某些场景下仍然有其用武之地。本文将深入讨论选择排序的原理、实现方法等。原创 2023-12-01 16:36:14 · 40 阅读 · 0 评论 -
JS实现快速排序
排序算法是计算机科学中的一个基础问题,而快速排序(QuickSort)作为其中一种经典而高效的算法,一直备受推崇。其在平均情况下具有较好的性能,被广泛应用于实际场景中。本文将深入探讨快速排序的原理、实现方法以及其在排序算法领域的地位。原创 2023-11-30 02:32:49 · 195 阅读 · 0 评论 -
JS实现二分查找
最近在面试的时候被问到手写实现二分查找,虽然二分查找很早就听过,也知道实现原理,但是手撸起来,总是差点意思,正好复习一下。作为前端程序员,可能面试绝大部分公司不需要能写很复杂的算法问题,但是这些基本的数据结构和常见算法,还是得能手撸出来。原创 2023-11-23 00:32:27 · 113 阅读 · 0 评论 -
Map 和 WeakMap:JavaScript 中的键值对集合
JavaScript 是一种动态、弱类型的脚本语言,经常用于构建现代 Web 应用程序。在编写 JavaScript 代码时,我们经常需要使用各种数据结构来存储和管理数据。其中,Map 和 WeakMap 就是两个非常有用的数据结构,它们分别提供了用于存储键值对的容器。在本文中,我们将深入探讨这两个数据结构,了解它们的用途、基本使用方法以及区别。原创 2023-11-21 01:46:48 · 259 阅读 · 0 评论 -
Nodejs实现读写文件和文件流
在Nodejs中,文件操作是非常常见的任务之一。它允许我们读取和写入文件,以及处理大型文件而不会消耗太多内存。本篇博文将会首先介绍一下文件和文件流的区别,然后全面介绍如何在Nodejs中实现文件操作和读写,包括使用文件系统模块(fs)和文件流(streams)。原创 2023-08-06 04:27:11 · 2245 阅读 · 0 评论 -
CommonJS和ESM:JavaScript模块化规范对比
在现代的JavaScript开发中,模块化是一个至关重要的概念,它有助于将代码拆分为独立的、可维护的部分,使开发过程更加高效和可靠。在JavaScript社区中,有两种主要的模块化规范:CommonJS(通用模块化规范)和ESM(ECMAScript模块)规范。本文将深入探讨这两种规范的异同点、应用场景以及注意事项。原创 2023-08-05 01:08:52 · 807 阅读 · 0 评论 -
详解Nodejs中的模块化
Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者使用JavaScript在服务器端运行代码。在Nodejs中,模块化是一种组织和重用代码的重要方式。模块化允许我们将代码拆分成小块,使得代码结构更清晰、易于维护,并促进团队合作。原创 2023-08-05 00:26:02 · 243 阅读 · 0 评论 -
详解Nodejs中的Process对象
在Nodejs中,process是一个全局对象,它提供了与当前进程和运行时环境交互的方法和属性。通过process对象,我们可以访问进程的信息、控制流程和进行进程间通信,这些都是服务端语言应该具备的能力。本文将全面介绍process对象的使用场景,从基础概念到高级应用,带有代码示例,让您深入了解它的功能与用途。原创 2023-08-04 01:30:50 · 2237 阅读 · 0 评论 -
Nodejs中的全局对象
今天我们将探讨Nodejs中的全局对象,这是Nodejs中重要且有趣的知识点。我们将通过生动形象的例子和风趣的风格来深入理解这些概念,并比较Nodejs中的全局对象与前端JavaScript中的全局对象之间的异同点。原创 2023-08-02 23:48:54 · 747 阅读 · 0 评论 -
学习Node.js的基础知识和核心概念(全面)
Node.js,这个神奇的技术,融合了前端与后端的力量,让JavaScript在服务器端发挥了异乎寻常的魔力。本文将通过代码和文字解释,全面介绍Node.js的特点,从异步非阻塞I/O到强大的模块系统,再到丰富的包管理和事件驱动编程,一步步揭开Node.js的神秘面纱。原创 2023-08-02 03:49:37 · 140 阅读 · 0 评论 -
JS垃圾回收机制详解
本文介绍了JavaScript中的垃圾回收机制,包括它的原理,常用的算法,以及优化的方法。本文旨在帮助程序员理解和掌握JavaScript的内存管理,提高程序的性能和稳定性原创 2023-08-01 13:45:24 · 174 阅读 · 0 评论 -
用Node.js搭建一个简单Web服务器
Node.js是基于Chrome V8引擎的JavaScript运行时环境,它允许我们在服务器端运行JavaScript代码,这让我们可以用JavaScript构建Web服务器,处理请求和响应。我们一起探索了如何用Node.js搭建一个简单但强大的Web服务器!原创 2023-08-01 02:42:55 · 1672 阅读 · 0 评论 -
如何正确理解JavaScript中的函数和方法
你真的了解`JavaScript`的函数和方法吗?你知道它们有什么区别吗?你知道它们是如何定义和调用的吗?你知道它们是如何影响`this`值的吗?如果你对这些问题感到迷茫,那么本文就是为你准备的。本文将从基础开始,详细解释函数和方法的概念、特点、用法和联系,让你彻底弄清楚函数和方法的奥秘。原创 2023-07-28 00:29:00 · 122 阅读 · 0 评论 -
Map和Object:JS如何根据需求选择正确的键值对数据结构
Map和Object是JavaScript中常用的数据结构,它们都可以用来存储键值对。但是,它们之间也有一些重要的区别,了解这些区别可以帮助我们选择更合适的数据结构来满足我们的需求。Map是ES6中新增的一种数据结构,它更加强大和灵活,可以解决一些Object无法解决或者不方便解决的问题。Object是JavaScript中最基本的数据类型之一,它简单易用,灵活多变,可以用来模拟各种复杂的数据结构。我们应该根据不同的场景和需求来选择合适的数据结构,以提高我们的编码效率和质量。原创 2023-07-27 00:04:07 · 108 阅读 · 0 评论 -
微信小程序自定义tabbar底部导航栏
最近开始在某站更新一个零基础从0写一个失物招领小程序的系列视频,涉及到了自定义tabBar,也就是底部导航栏的内容。看了下我的博客似乎之前没更新过,所以给大家写一篇。原创 2022-10-07 02:14:42 · 3764 阅读 · 2 评论 -
前端实现csv文件的解析预览、上传、下载
最近遇到了一些新的需求,需要前端实现文件上传到OSS、文件下载、解析并预览csv文件,带着大家一些实现一下,丰富自己的业务经验原创 2022-09-18 20:13:15 · 2757 阅读 · 0 评论 -
关于微信小程序保存文件的最佳解决方案
最近在写微信小程序的时候,涉及了用户下载文件到本地的需求。去看了下文档,首先要先通过,将文件下载到本地。然后我记得有一个的,可以进行文件的保存,看了下文档,看到这个已经停止维护了。推荐使用的是,而这个是通过获取。经过一些列的操作之后,终于可以使用的方法了。然后,重要是在成功执行之后的返回值,会有一个,也就是这个文件被保存到了哪儿。但是,单纯看这个路径,是不容易找到这个文件。微信的解释是,想维护一个属于小程序自己的域,不想共享到外部,所以,这个文件地址是一个相对隐式的地址,不容易被直接找到。我查阅原创 2022-06-03 20:12:27 · 5799 阅读 · 7 评论 -
2022春招前端最新面试题分享(久尺网络)完结篇
久尺网络面经公司及岗位信息公司: 久尺网络岗位: 前端开发工程师地点: 上海薪资: 20k左右 15薪面试结果: 已发Offer一面(2022/4/2)自我介绍行内元素和块元素的区别, 分别有哪些常见元素JS如何区分数据类型, 说出你知道的所有方法Object.prototype.toString的用法手写实现bind箭头函数能获取arguments吗arguments是什么东西, 类数组和数组有什么区别防抖和节流的区别, 分别手写实现HTTP和HTTPS的区别, HT原创 2022-04-29 21:08:58 · 1119 阅读 · 5 评论 -
2022春招前端最新面试题分享(途牛旅游网)
途牛旅游网公司及岗位信息公司: 途牛旅游网岗位: 前端校招地点: 南京薪资: 16k 14薪面试结果: 通过一面(2022/04/26)自我介绍介绍一下实习做过的项目, 难点, 收获, 体会TCP和UDP的区别TCP如何保持可靠TCP的三次握手和四次挥手HTTP和WebSocket的区别JS的数据类型深拷贝和浅拷贝的区别如何实现深拷贝数组排序, 快排的原理原生的sort方法为什么还要传入构造函数数组去重在浏览器中输入url到页面显示, 经历了什么如何减少浏览器原创 2022-04-29 21:07:11 · 1238 阅读 · 0 评论 -
2022春招前端最新面试题分享(诺亚财富)
诺亚财富面经公司及岗位信息公司: 诺亚财富岗位: 前端开发工程师地点: 上海薪资: 10k-15k 14薪面试结果: 三轮技术面全部通过, 约了HR面了一面(2022/04/21)自我介绍为什么不在实习公司转正JS常见数据类型基本类型和引用类型在内存存储方面的区别防抖和节流, 防抖的实现JS如何实现多线程JS事件循环机制浏览器开多个Tab, 每个Tab都进入的后台管理系统, 如果让其中一个退出之后, 其它所有的Tab都退出浏览器开多个Tab, 是共用同一个线程吗前端性原创 2022-04-29 21:05:21 · 481 阅读 · 0 评论 -
2022春招前端最新面试题分享(牧原股份)
牧原股份公司及岗位信息公司: 牧原股份岗位: 前端开发工程师地点: 河南薪资: 12k-16k面试结果: 一面后暂时未接到通知一面HR技术群面(2022/04/19)自我介绍期望薪资, 你认为你为什么值这个钱JS常用的数据类型分辨引用类型的方式看代码说结果, 主要考察深浅拷贝还有扩展运算符前端性能优化方案介绍一下防抖节流, 实现原理Vue双向绑定原理发布订阅设计模式的实现EventBus的实现Vue组件通信的方式HTTP缓存、浏览器缓存在浏览器地址栏输入URL后原创 2022-04-29 20:54:55 · 1850 阅读 · 1 评论 -
2022春招前端最新面试题分享(航天宏图)
航天宏图面经公司及岗位信息公司: 航天宏图岗位: 前端校招地点: 北京薪资: 10k - 15k面试结果: 二面必须让线下面试, 去不了一面(2022/04/21)自我介绍为什么没有在实习公司转正实习对于你最大的收获WebSocket在项目中的应用场景, 为什么选择WebSocket, WebSocket与HTTP对比的优缺点WebSocket常用的事件, 不同环境下前端使用WebSocket的区别, 比如原生JS、Vue、小程序等介绍一下你对于Vue的理解Vue双向绑定的原创 2022-04-29 20:53:30 · 1039 阅读 · 0 评论 -
2022春招前端最新面试题分享(多益网络)
多益网络公司及岗位信息公司: 多益网络岗位: 前端校招地点: 广州薪资: 11k - 16k面试结果: 技术面挂HR面(2022/04/12)自我介绍乌拉乌拉一堆问题, 问的特别多, 还问家庭, 各种东西, 有一小时技术面(2022/04/20)自我介绍介绍一下在实习公司做的项目是如何进行代码管理的介绍一下进行项目版本迭代的完整流程为什么JS是单线程的, 有办法多线程吗HTML中行内元素和块元素的区别, 分别有哪些标签ES6你常用的特性有哪些扩展运算符是深拷贝还原创 2022-04-22 22:38:31 · 4377 阅读 · 2 评论 -
2022春招前端最新面试题分享(蓝信移动)
蓝信移动面经今年春招,总结下来就是钱少,岗位少公司及岗位信息公司: 蓝信移动岗位: 前端开发工程师地点: 北京薪资: 14k 14薪面试结果: offer已发一面(2022/03/12)自我介绍实习经历, 遇到过的困难, 如果解决的移动端项目是如何适配的, CSS常用单位及作用常用的布局方式, flex常用属性有哪些, 如何实现水平垂直居中, 如何实现三列布局, 如何倒序排列CSS隐藏元素的方式, display: none 和 visibility: hidden 的区别原创 2022-03-20 21:46:00 · 1659 阅读 · 1 评论 -
JS手写实现instanceof
在JS中,我们如果想知道一个变量的数据类型,常规的方式就是,typeof和instanceof。typeof有一定局限性,不能有效的分辨引用类型。所有的引用类型typeof之后都是object。但是instanceof可以有效的分辨所有的数据类型。[1, 2, 3] instanceof Array; // trueinstanceof的实现原理,其实就是递归当前查询的变量的原型链,找到与右边的一致的原型就返回true,没查到的话,一直查到原型链的尽头null,就返回false。知道它的实现原原创 2022-03-08 15:46:15 · 834 阅读 · 0 评论 -
深度解析Promise.all的核心功能并手写实现
在之前的文章中,已经手写实现了Promise的核心功能,包括resolve,reject,then。Promise还有一些拓展方法,比如Promise.all在手写实现一些原生提供的方法时,第一步要做的事情就是先了解这个方法的使用过程和基本原理。所以我们先了解一下Promise.all做的事情。原生Promise.all的使用以下是MDN文档的简述:Promise.all() 方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输原创 2022-03-06 01:33:51 · 422 阅读 · 0 评论 -
JS手写实现深拷贝(考虑循环引用)
作为一个前端,一定对深拷贝这个名词不陌生,深拷贝是非常重要的。为什么存在深拷贝?深拷贝这个名词的诞生也是有由来的,在JS里,所有的变量类型都可以简单分为基本类型和应用类型。比如 123, 'aaa' 数值和字符串,属于基本类型,它们在进行赋值的时候,可以直接赋值,比如let a = 123, b = a;这个是没有问题的,a和b互不影响。但是[1, 2, 3] { a: 1 },像数组和对象这种引用类型,在进行赋值拷贝的时候,简单的=并不足够,如果你依然像对待基本类型一样对待引用类型的拷贝。你拷贝的原创 2022-03-03 02:03:35 · 1950 阅读 · 1 评论 -
bcrypt.js实现对登录注册中密码的加密存储和验证
大部分的项目中都存在登录注册这个模块,除了常规的操作之外,比较重要的一点,我们需要对用户的密码进行加密之后再存储。除了考虑数据库被黑掉的情况,作为一个程序员来说,职业操守也要求我们要做密码的加密,这属于用户的隐私,不加密的话,几乎所有的技术人员都可以知道用户的密码,这是不合理的。作为一个前端,可能在正式项目中,不需要由前端来考虑密码的加密,但是前端多了解一些后端的知识,对你自己肯定是有帮助的。因为我本身是做前端的,所以本文章中,关于后端的技术选型以Nodejs的Express框架为例,数据库选择M.原创 2022-02-28 20:48:00 · 2042 阅读 · 0 评论