
JavaScript
文章平均质量分 82
fltenwall
数据科学与人工智能硕士
展开
-
[javascript核心-10] 解析params参数的多种方案
前端实现参数解析的多种方式。大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士。原创 2023-07-19 17:09:58 · 1772 阅读 · 0 评论 -
[javascript核心-09] 彻底解决js中的类型检测方案
全部类型值进行细分检测。大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士。原创 2023-07-19 17:07:52 · 1172 阅读 · 0 评论 -
[javascript核心-08] V8 内存管理机制及性能优化
栈用于存放JS 中的基本类型和引用类型指针栈空间是连续的,增加删除只需要移动指针,操作速度很快栈空间是有限的,若超出栈空间内存,会抛出栈空间溢出错误栈是在执行函数时创建的,函数执行完毕后,栈销毁。原创 2023-07-19 17:05:04 · 1356 阅读 · 0 评论 -
[javascript核心-07] 带你彻底弄懂事件循环机制、宏任务、微任务
带你彻底弄懂事件循环机制、宏任务、微任务,大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士原创 2023-06-06 10:14:45 · 739 阅读 · 1 评论 -
[javascript核心-06] 带你彻底弄懂 js 中的变量提升和作用域链
带你彻底弄懂 js 中的变量提升和作用域链,大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士原创 2023-06-06 10:10:05 · 371 阅读 · 0 评论 -
[javascript核心-05] 全面梳理 ES6+,从 ES6~ES12(一定有你不知道的一款)
全面梳理 ES6+,从 ES6~ES12(一定有你不知道的一款),大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士原创 2023-06-06 10:10:18 · 541 阅读 · 0 评论 -
[javascript核心-04]彻底弄懂Promise异步编程
彻底弄懂Promise异步编程,大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士原创 2023-06-06 10:08:23 · 682 阅读 · 0 评论 -
[javascript核心-02]彻底弄清Vue3响应式原理及手写实现
彻底弄清Vue3响应式原理及手写实现,大前端知识体系与面试宝典,从前端到后端,全栈工程师,六边形战士原创 2023-06-06 10:05:14 · 326 阅读 · 0 评论 -
[javascript核心-03]彻底弄清this的指向问题
彻底弄清this的指向问题,大前端知识体系与面试宝典,从前端到后端,全栈工程师,成为六边形战士原创 2023-06-06 10:06:37 · 316 阅读 · 0 评论 -
[javascript核心-01]彻底梳理清楚Proxy 代理与Reflect反射
彻底梳理清楚Proxy 代理与Reflect反射,大前端知识体系与面试宝典,从前端到后端,全栈工程师,六边形战士原创 2023-06-06 10:03:24 · 417 阅读 · 0 评论 -
javascript面向对象完全指北
js中的面向对象其实是基于原型的,构造函数其实充当了“类”的角色,因为构造函数可以创建实例。而构造函数其实与普通函数没有区别,只是一个普通函数用new进行调用的时候我们称它为构造函数。如果在构造函数中显示return,若返回值是一个对象,则该对象会代替新创建的对象实例返回,但如果返回值是一个原始类型,则会被忽略。应该始终确保使用new调用构造函数,否则构造函数中的指向的是全局对象。此时就是在改变全局对象,而不是创建一个新的对象。构造函数模式的问题:没有消除代码冗余,方法不共享查看/判断对象的原型对象原创 2022-12-03 15:14:13 · 375 阅读 · 1 评论 -
写给前端程序员的C语言
这篇文章的顺序不会按教科书的形式来讲,而是站在前端程序员与JavaScript语言和C语言对比的角度来讲。先从数组说起。我们知道数组在内存里是连续的空间,但是我们如何知道它是连续的呢?例如下面这个例子:我们如何知道在内存中 和 的地址是相连的呢?我们可以C语言来看:注: 是C语言里面取地址的操作符。我们看到地址是以十六进制的形式打印出来的,数组 里的第0个元素和第一个元素之间相差了 个字节,那么是不是原创 2022-12-03 15:06:21 · 3766 阅读 · 0 评论 -
JavascriptBestCode 给你最好的javascript代码
JavascriptBestCode 给你最好的javascript代码Javascript最佳实践1.通过条件判断给变量赋布尔值// badif (a === 'a') { b = true;} else { b = false;}// goodb = a === 'a';// bestb = (a === 'a');2.使用三元表达式代替if判断// badif (a === 'a') { b = a;} else { b = c;}// goodb =原创 2021-11-05 11:01:40 · 766 阅读 · 0 评论 -
(翻译)现代JavasScript:ES6+
ECMAScript 2015,也就是我们所知道的ES6,介绍了许多JavaScript的新特性。从那以后,每年都会增加一些新的特性。ES6及以后的扩展通常被称为现代JavaScript,因为有着这些重要的变化。这篇文章主要探索的是ES6, ES7, ES8, ES9以及ES10的新特性。什么是ECMAScriptECMAScript是一门脚本语言的标准。JavaScript是一门实现了ECMAScript标准的编程语言。ECMA国际是制定ES标准的协会。TC39是ECMA国际下的一个委员会,它决定Ja翻译 2020-12-13 19:41:16 · 474 阅读 · 0 评论 -
(翻译)九个项目助你成为前端高手
简介无论你是一个编程的新手还是你已经是一个有经验的开发者,在这个行业中,学习新的概念和语言/框架都是必须的,这样才能跟上快速的变化。举个例子来说,Facebook出的开源框架React只用了4年时间就成为了全球Javascript开发者的第一选择。当然,Vue和Angular也有可观的追随者数量。类似的还有Svelte,还有通用框架Next.js和Nuxt.js,以及Gatsby,Gastsby,Quasar,还有更多其他的。如果你想成为一个专业的Javascript开发者,你至少应该在不同框架和库方面有翻译 2020-12-13 16:07:44 · 500 阅读 · 0 评论 -
(翻译)使用javascript中的proxy(代理)
(翻译)使用javascript中的proxy(代理)我最近一直在研究javascript中的proxy,我对它的能力感到惊讶。Proxy允许你改变语言的基本结构(像object,arrays,functions…)下面是使用javascript代理的几个例子。对象冻结我们可以使用几行简单的代码来阻止对对象的改变操作,这本质上是冻结对象 const hero = { name: 'Saitama', age: 25, class: 'B', race: 'Human',翻译 2020-12-12 09:31:41 · 376 阅读 · 0 评论 -
(翻译)Weakmap详解
先看一个例子let obj = { name: 'toto' }// { name: 'toto' }这个对象能够被读取到,因为obj这个变量名有对它的引用// 将引用覆盖掉obj = null// 这个对象将会被从内存中移除,因为我们已经失去了对它所有的引用再来看另外一个例子let obj = { name: 'toto' }let arr = [ obj ]obj = null在这个例子中,对象{name:'toto'}不会被从内存中移除,因为数组arr保存了对它的引用翻译 2020-12-11 16:58:31 · 9201 阅读 · 11 评论 -
javascript一行代码实现数组降维并排序
降维并排序var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];代码Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{return a-b})结果优点:拍平,去重,转数组,排序,行云流水,一气呵成,充分运用新特性????...原创 2020-07-01 15:18:16 · 252 阅读 · 0 评论 -
前端MVC、MVP、MVVM三种架构模式对比(限前端范畴)
MVC问题:View不能独立处理用户事件一个View对应一个Model,复用性差适合无界面、多业务处理的后端使用模式主要使用的是策略模式MVP改良:用户事件由View处理Model与View完全解耦,View可抽离为接口提供给上层使用View可抽离为独立组件,适合事件处理问题Model与View的数据同步需要Presenter手动绑定,Presenter过重模式主要使用的是观察者模式MVVM改良View与Model自动同步,只需要指定View要显示的数据对应原创 2020-06-10 09:09:35 · 390 阅读 · 0 评论 -
linux环境下安装node及环境变量配置
linux环境下安装node及环境变量配置下载$ wget https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-x64.tar.xz 解压$ tar xf node-v12.17.0-linux-x64.tar.xz$ tar xf node-v12.17.0-linux-x64.tar.xz$ tar xf node-v12.17.0-linux-x64.tar.xzv12.17.0配置环境变量$ sudo原创 2020-06-01 17:46:15 · 1761 阅读 · 0 评论 -
javascript实现函数防抖与节流
github地址:JavaScript各种手写防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时function debounce(fn, delay) { var timer; return function () { var _this = this; // 保存函数的this指向 var args = arguments; //每次触发事件时都取消之前的延时调用方法 if (timer) {原创 2020-05-27 09:28:49 · 300 阅读 · 0 评论 -
手写Jsonp
github地址:JavaScript各种手写jsonp /** * jsonp获取请求数据 * @param {object}options */ function jsonp(options) { // console.log(options); // 1. 产生不同的函数名(函数名随机) let callBackName = 'itLike' + Math.random().toString().subst原创 2020-05-27 09:26:55 · 511 阅读 · 2 评论 -
js完美深拷贝
github地址:JavaScript各种手写实现//判断是否为复杂数据类型const isComplexDataType = obj => (typeof obj === 'object' || typeof obj === 'function') && (obj !== null);//利用 WeekMap() 的键对自己所引用对象的引用都是弱引用的特性,在没有其他引用和该键引用同一对象的情况下,这个对象将会被垃圾回收//为了解决循环引用的问题,设置一个哈希表存储已拷贝过原创 2020-05-27 09:20:42 · 904 阅读 · 0 评论 -
一天接收了131份前端面试简历......(面试总结)
简述:前段时间面试前端同学,只周四一天收到了131份简历,而且基本都是已离职状态(估计是公司倒闭或者被裁了),到了第二天boss直聘上还是不停闪烁求职者的消息,非常能够感受到大家求职的迫切感。由于周五要进行面试,我需要当天四点前选出大约十份简历,然后约第二天的面试,因此我需要三个小时看完这131份简历,平均一分半钟就要看完一份,像上学时候老师判卷子一样,一开始我是一份一份认真去看,从自我介绍,到个人技能,再到项目经历,我专门整理了一个excle表格了,统计年龄、性别、学历、工作时间、核心技能、项目经验、简原创 2020-05-27 09:02:21 · 2369 阅读 · 1 评论 -
对技术路线的思考(共勉)
对技术路线的思考精读《为什么专家不再关心技术细节》地址:https://juejin.im/post/5ce2055f5188251cf708b3d2感悟:(1)技术深度对于技术人的重要程度随着年龄是变化的作为一个新人,尽可能的了解更多的技术细节是很重要的,因为在没有足够的工程项目沉淀的情况下,技术细节和深度往往是评价一个技术人能力的重要标准。而除了深入技术以后,随着年龄的增长,软能力成为了评价一个技术人主要的方面。一个人不可能永远在代码一线,身体状况不允许,公司制度也不会允许,就算不转向管理岗位原创 2020-05-27 08:58:26 · 453 阅读 · 0 评论 -
大前端常用技术(持续更新)
大前端常用技术Vue系列Vue全家桶:Vue+vuex+vue-router+veu-cliVue服务端渲染SSR:vue-nuxtVue组件库:vant,element,iView…Vue全栈:Express(koa,egg)+monogdb(mysql)+vue+vue-cli+vuex+vuex-router+vant+less(sass)+webpack+babeltypescript+express+vue+…React系列React全家桶:react+redux+rea原创 2020-05-27 08:54:37 · 1237 阅读 · 0 评论 -
Deno探索
Deno探索:目标:利用deno创建一个web服务器,比较deno与node的区别安装(mac):curl -fsSL https://deno.land/x/install/install.sh | sh安装之后根据提示,设置环境变量:export DENO_INSTALL="/Users/fltenwall/.deno"export PATH="$DENO_INSTALL/bin:$PATH"其他操作系统安装方式参见官网:https://deno.land/manual/gettin原创 2020-05-27 08:52:54 · 362 阅读 · 0 评论 -
从有限状态机看现代前端开发
有限状态机与现代前端开发有限状态机是可计算理论中的一种数学模型,前端开发可以看成是在维护各种状态机的状态。有限状态机的特征:状态总数有限任一时刻,只处在一种状态之中某种条件触发后,会从一种状态转变到另一种状态有限状态机与前端(一)当前MVVM与有限状态机当下MVVM框架都是用状态来描述界面(state=>view),前端本质上就是在维护各种状态前端代码编写的核心在于:使用最合理的状态管理界面,用最合理的动作实现状态变更前端开发时需要考虑:(1)页面有几种状态(初始化?成功?失原创 2020-05-27 08:44:50 · 358 阅读 · 0 评论 -
手写call和apply方法实现
call var name = 'flten'; var obj = { name: '轩灵' }; function fn(a, b, c) { console.log(a + b + c + this.name); }; Function.prototype.mycall = function(obj){ //判断是否为null或者un...原创 2020-03-11 11:42:18 · 915 阅读 · 0 评论 -
js递归实现深拷贝
function deepCopy(obj,newObj) { for(var key in obj){ if(obj.hasOwnProperty(key)){ var objValue = obj[key]; if(!(objValue instanceof Object)){ ...原创 2020-03-10 17:09:25 · 454 阅读 · 0 评论 -
Vue丐版数据双向绑定
HTML<div id="app"> <form> <input type="text" v-model="number"> <input type="text" v-model="number"> </form></div>创建VM实例window.onload = fu...原创 2020-03-10 16:47:39 · 131 阅读 · 0 评论 -
JS利用闭包实现缓存器策略
作用:以空间换时间,重复的计算将从缓存中取数而不是计算,提高效率。代码: /** * 缓存器策略计算阶乘 * @param val * @returns {factorial2} */ function factorial(val){ let arr = []; return function factorial2(val){ let re...原创 2020-03-10 12:58:14 · 476 阅读 · 0 评论 -
理解闭包
一、闭包的概念很多书籍上都将嵌套函数中内部函数使用外部函数中定义的局部变量,返回内部函数实现对外部函数局部变量的使用作为闭包的定义,但实际上我们可以将嵌套函数中这种闭包的情况作为闭包的一种特殊情况。我们可以将闭包理解为是由函数和函数所声明的词法环境的结合。即一个函数引用了自由变量,且这个被引用的自由变量将和这个函数一同存在,即使是在该变量已经离开了创造它的环境时也不例外。二、闭包示例<...原创 2019-04-23 22:23:53 · 436 阅读 · 0 评论