js技术
文章平均质量分 84
伊泽瑞尔灬
静静写点东西,和大家一起学习。
展开
-
刷题小程序上线啦
作为一个前端老开发了,我一直在想能否自己做一个能上线的应用,奈何种种原因,好多想法都夭折了,一直没做成。直到前段时间,我发现我的公众号已经攒了500+道面试题及答案,但它缺少一个统一管理和检索的功能,不方便查看。于是就想着做一个小程序,统一收集整理这些学习资料,方便大家检索,收藏分享等。下面是主要的几个界面截图。首页,主要是问题分类,和2个快捷入口:首页刷题页面,所有问题列表,这里可以筛选和排序问...原创 2023-09-29 08:30:07 · 71 阅读 · 0 评论 -
当promise遇上generator该如何应对?记一次工作中遇到的问题
generator是es6(2015年)增加的,一直知道这个特性,奈何一直没有用武之地,这次虽然有点牵强,但总数用到实战中了,还是挺开心的。很多时候我们学到一个知识点,然后用到项目中才算真正学以致用,但前提是你要知道有这个知识点,像这样的知识点公众号已经收录了500+。程序员每日三问。原创 2023-09-12 11:11:24 · 81 阅读 · 0 评论 -
requestIdleCallback让你的页面变丝滑
当浏览器中执行一些计算密集型或耗时的任务时,这可能会导致页面响应变慢,因为当前窗口的JS线程和渲染线程(GUI)同一时间只能执行一个,如果JS线程一直在执行,那么页面就不能渲染和响应了,意味着动画停止、用户事件无法响应,详细的可以查看这篇文章,用户体验下降。可以帮助你在主线程空闲时执行一些任务,以避免阻塞用户界面。在具体讲解之前,我们先看一个运行效果:我们的任务是向框中 1.7万+个,来记录任务的完成情况。核心逻辑如下:可以看到,我们的任务需要渲染的特别多。如果不做优化,即任务2的运行情况,直接往节点原创 2023-07-13 23:20:19 · 764 阅读 · 0 评论 -
js Symbol类型讲解
需要注意的是,Symbol 值并不是完全无法访问的,可以使用 Object.getOwnPropertySymbols() 或 Reflect.ownKeys() 来获取对象上的 Symbol 属性。但是对于一般的对象遍历和操作,这些 Symbol 属性是不可见的。Symbol.species 是一个内置的 Symbol 值,在对象上定义该属性可以影响该对象在执行衍生对象操作时的行为。这在需要创建与原始对象类型不同的衍生对象时非常有用,例如在实现类的继承和衍生时,希望衍生对象使用不同的构造函数来创建。原创 2023-06-22 23:35:14 · 511 阅读 · 0 评论 -
看完这个再不懂什么是闭包,准备卷铺盖走人吧
在上面的例子中,我们在 obj 对象中定义了一个 clear 方法,用于清除闭包变量 a 和 inner 函数,推荐使用第三种方式。上面的例子就是一个经典的防抖函数。在闭包内部,我们使用 setTimeout 延迟执行函数,并使用 clearTimeout 取消前一个定时器,从而避免在短时间内频繁执行同一个函数。需要注意的是,在使用闭包时,我们需要避免滥用闭包,避免创建过多的闭包,从而造成内存泄漏和性能问题。闭包会引用外部函数中的变量和函数,如果这些变量和函数没有及时释放,就可能导致内存泄漏的问题。原创 2023-05-11 22:01:41 · 184 阅读 · 0 评论 -
`vue3`+`ts`+`setup`语法糖实现一个无限嵌套的`tree`组件
今天用`vue3`+`ts`+`setup`语法糖实现一个无限嵌套的`tree`组件原创 2022-02-07 09:30:49 · 1870 阅读 · 1 评论 -
promise经典面试题
几道经典promise面试题,助你深入了解promise技术。原创 2020-06-19 09:27:43 · 3611 阅读 · 1 评论 -
promise讲解
promise是前端开发的必备技能,本期讲解基础用法,下期配合经典面试题深入讲解。原创 2020-06-16 09:21:52 · 381 阅读 · 0 评论 -
vue的keep-alive讲解
vue的缓存组件keep-alive原创 2020-06-03 20:23:30 · 422 阅读 · 0 评论 -
electron打包你的h5应用成桌面应用
使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序。原创 2020-06-02 20:03:19 · 1066 阅读 · 0 评论 -
websocket实现一个聊天室
本文介绍一个使用`websocket`实现的一个在线聊天室程序。原创 2020-05-29 19:14:48 · 2941 阅读 · 1 评论 -
一文看懂websocket
本文讲解`websocket`的基本定义,下一期讲聊天室的实现。原创 2020-05-26 22:39:56 · 428 阅读 · 0 评论 -
bind、call、apply的区别与用法?
这个一个高频面试题,本文讲讲apply,call和bind的一些常见用途和区别。原创 2020-05-21 09:22:30 · 201 阅读 · 0 评论 -
js中如何准确的判断一个变量的类型?
这个一个高频面试题,本文实现一个getVarType 函数来准确判断一个变量的类型。原创 2020-05-20 09:21:04 · 699 阅读 · 0 评论 -
知道html5 Web Worker标准吗?能实现JavaScript的多线程?
利用web worker开启js子线程,帮助计算复杂的运算。原创 2020-05-19 09:20:24 · 441 阅读 · 0 评论 -
reduce函数的用法
这是一个考察面试者对`reduce`函数用途的js面试题。原创 2020-05-14 09:18:59 · 1917 阅读 · 0 评论 -
一个vue全家桶搭建的SPA应用框架
讲解一个vue全家桶集成的SAP框架。1. 采用了vue-cli4搭建。2. 使用了vue-router来实现路由,实现单页面应用。3. 使用vuex做状态管理工具。4. axios做请求工具,5. element-ui做ui框架。6. 项目实现了动态路由,跨域配置,请求拦截,路由拦截,状态本地存储等。7. 项目加入了`px2rem,lib-flexible`实现的移动端适配方案。原创 2020-05-08 21:42:52 · 477 阅读 · 0 评论 -
知道nodejs吗?和web端js区别和共性?
知道nodejs吗?和web端js区别和共性?这题考察的是面试者对nodejs的了解和对js标准的了解。共同点都尊选ECMAScript语法标准,最新版本是ECMAScript 8(ES2017)该语法包含了变量定义、 循环、判断、 函数、 原型、 原型链、作用域、 闭包、异步等,ECMAScript只定义语法,但是它不能操作DOM,不能监听click事件,不能发送ajax请求,不能处理...原创 2020-05-06 20:10:22 · 646 阅读 · 0 评论 -
前端异步是什么?哪些情况下会发生异步?
异步是什么?这里就不拿官方的解释来解答了,只以个人理解来回答问题,轻喷。我们知道JavaScript是单线程的,不像java等语言是多线程的,所以一般情况下,js代码是一行一行的执行的。但是某些时候需要用异步来提升性能,比如说一个网络请求需要服务端返回数据30s,js不可能一直等待服务器返回再执行其他代码,这时候js就会跳过这个过程,继续往下执行,直到没有代码要执行了,这时候后端返回数据了,j...原创 2020-05-02 09:28:25 · 2487 阅读 · 0 评论 -
ES6 class类的用法
es6 class基础用法以前的JavaScript没有类的概念,它是基于原型的面相对象的语言。原型对象的特点就是将自身属性共享给新对象。我们先看一下下面的代码实现。 //常规写法 function Person(name,age) { this.name = name; ...原创 2019-02-27 16:32:09 · 554 阅读 · 4 评论 -
sass的安装与使用
今天主要研究了一下sass,sass是什么呢? sass其实是css的另一种写法,最终编译成css文件,应用到项目中。 sass的诞生是因为css的写法比较死板,使用sass语法可以使我们在写样式的时候采用函数式的编程。意思是说,我们可以定义变量,可以自定义函数,可以继承。有了这些东西。我们写样式的速度就可以提升一个档次。 下面说一下安装。 sass是基于ruby的,所以首先安装ruby,这原创 2016-10-19 10:33:53 · 531 阅读 · 0 评论 -
js技巧,数组去重
两个数组去掉重复的部分巧用对象的原理//定义了2个数组var a = ['a','b','c','d'];var b = ['b','c']; //目的去掉a数组的元素在b中出现的部分 function removeRepeatArray(a,b) { var temp1 = []; var temp2 = []; for(var i = 0 ; i <b.原创 2016-10-15 20:18:46 · 326 阅读 · 0 评论 -
js prototype
1.获取、添加、修改对象的属性。function person(){ this.age = 10; this.height = 11;}var perA = new person();person.prototype.sex = "男";console.log(perA.sex); //男//只有对象才有prototype属性,实例perA是没有prototype的。2原创 2017-06-12 11:27:31 · 306 阅读 · 0 评论 -
浅谈vue.js的computed
浅谈vue.js的computed computed意为计算属性,官方称任何复杂逻辑,你都可以使用计算属性。 下面就购物车的小例子对computed进行讲解。 下面看2张运行截图: 首先我们看js代码:var vm = new Vue({ el:"#materialTest", data:{ //allMat原创 2017-10-09 15:35:29 · 5421 阅读 · 0 评论 -
多个下拉选项自动去重适应的js插件
自动适应的下拉js插件原创 2017-12-23 15:59:43 · 907 阅读 · 0 评论 -
babel-cli本地环境搭建
babel本地编辑环境搭建 今天讲的是babel搭建本地环境,众所周知,现如今,javascript已经发布了es7版本,但是目前环境大多数只能支持到es5,连nodejs也不能完全支持es6,es7。今天将的babel能将我们写的es6,es7的代码转换成es5,从而让现有环境能好好运行我们的js。1.babel安装 babel是通过npm安装的,npm是node上的一个模...原创 2018-08-26 22:12:59 · 3460 阅读 · 0 评论 -
javascript数组操作
javascript数组操作 今天针对javascript的数组的一些常见操作进行一些讲解,希望对给为开发者有帮助。 先看下面常见的三种循环。for循环var arr =[1, 3, 8, 4]for (var i = 0,j = arr.length; i &amp;amp;lt; j; i++) { console.log(arr[i], i)}// Prints...原创 2018-08-25 09:41:46 · 179 阅读 · 0 评论 -
Vue系列基础篇(一)
Vue基础篇Vue是什么? vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。Vue环境搭建这里我们引用官方推荐的开发库,下面是一个基础的vue开发...原创 2018-08-29 19:17:02 · 500 阅读 · 0 评论 -
vue系列自定义指令(三)
说明今天介绍vue自定义指令。vue指令功能是提供给用户操作dome的,虽然很多时候,我们可以通过选择器是操作dome,但是当dome状态改变是,我们很难捕获,所以vue不建议用户之间操作dome,而是使用指令的形式。 vue内置了很多指令,v-model,v-if,v-show,v-text,v-html等。某些时候这些指令不能满足我们,我们可以通过自定义指令来实现我们想要的指令。指令...原创 2018-09-08 18:26:11 · 255 阅读 · 0 评论 -
vue系列组件篇(二)
本文通过一个实例来介绍vue组件的用法,有父子组件传参,函数调用,组件插槽等。原创 2020-05-22 17:19:31 · 682 阅读 · 0 评论 -
vue系列生命周期(四)
vue生命周期,是指vue实例从创建到销毁的一个过程,掌握了这个过程中各个阶段的状态,就能合理使用,是我们的程序性能更高,开发更合理,减少bug。...原创 2018-10-18 16:08:51 · 193 阅读 · 0 评论 -
vue-devtools下载与使用
vue-devtools原创 2018-11-06 15:29:35 · 463 阅读 · 0 评论 -
js技巧用Map集合代替Array遍历
使用map代替数组原创 2018-11-07 15:54:46 · 2921 阅读 · 0 评论 -
js技巧 console.log使用
js技巧 console.log使用原创 2018-11-05 16:22:04 · 24003 阅读 · 0 评论 -
100行代码实现一个vue分页组件
用vue实现一个分页组件原创 2018-11-05 19:28:44 · 311 阅读 · 0 评论 -
vue实现多个下拉去重
vue实现多个下拉去重原创 2018-11-08 16:48:20 · 1588 阅读 · 3 评论 -
js中的递归遍历讲解
JavaScript的递归遍历会经常遇到,适当的运用递归遍历,可以提高代码性质量。1.某些时候递归能替换for循环我们先看一下下面2个例子。var arrList = [1,2,3,5,100,500,10000,10000,1000,10000002] //for循环测试 function forTest(){ console.time(&amp;quot;for循环&amp;quot;) for(l...原创 2018-12-19 17:47:42 · 762 阅读 · 0 评论 -
巧用对象,生成不重复随机数
有的时候我们需要一组不重复的随机数,我们可以用下面的方式来实现。 下面的场景是随机打乱一个数组。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>排名</title&a原创 2016-11-07 19:45:59 · 362 阅读 · 0 评论