自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 史上最全常见前端大厂面试知识点汇总【已过字节, 腾讯teg,华为,网易】

文章目录网络,浏览器篇tcp/ip协议有几层网络七层协议内容浏览器进程和线程进程通信的方式https加密过程url到页面过程http2和http1的区别如何实现有状态的http协议强缓存和协商缓存(浏览器缓存机制)强缓存协商缓存浏览器缓存过程跨域请求js原理篇js执行机制单线程执行宿主执行栈Event Loop宏任务和微任务js为什么设计成单线程语言手写newES6中class是语法还是语法糖原型的终点手写实现promise,promise. all,promise. racepromisepromise.

2021-05-29 11:00:06 4701 6

原创 mac安装oh-my-zsh出现command not found: npm问题解决

        在安装完oh-my-zsh以后新建终端输入node或是npm会出现command not found:npm的情况,原因是因为不能够找到npm的环境,一开始我参考了一下网上的一些博客的方法,有点醉,完全被带偏,配置文件改的不忍直视,所以还是从原理上说一下这个问题的原因,别人的方法不一定照搬有用,但是只要原因知道,稍微微调一下即可,希望对大家有帮助     &nb

2021-08-14 13:04:25 12542 2

原创 React Router学习笔记

文章目录路由配置基本配置添加首页嵌套路径的非嵌套路由兼容其余路由进入和离开的HookHistoriesbrowserHistoryhashHistorycreateMemoryHistoryIndexRoute与IndexLinkIndexRoute默认路由indexLink        React Router是基于React之上的路由库,一开始在官网没找到对应的API,着实费了一点劲,本文将就React Router的内

2021-08-14 12:42:38 254

原创 React Hooks的学习与自我理解

存在的意义        Hooks的作用在于完美过渡React中的类写法到函数式表示,因为我们知道React的函数式表示是不能使用生命周期的,Hooks可以代替React中的生命周期写法,这样就可以帮助完美过渡到函数式表示。这么做的意义是,类和生命周期的写法,不得不将不同的类互相联系起来,导致其中的业务逻辑会因为生命周期交错在一起而使得业务逻辑复杂难以维护     &nbs

2021-08-14 11:15:42 268

原创 全面剖析javascript原型

文章目录前言正文Prototypeprototype的尽头属性设置属性屏蔽“类”"类"函数构造函数js中模拟类的方式“构造函数”的真相原型继承对象关联创建关联关联关系是备用小结前言      javascript原型在javascript的继承机制上起到重要的作用,前几章我们也一直提到prototype,但没有说它到底是什么,这一章我们将围绕这个全面解析javascript中的继承魔法正文Prototype  &nbs

2021-07-13 16:36:51 282 1

原创 深入理解javascript混合对象“类“(二)

文章目录前言正文显式混入隐式混入小结前言      上一章我们介绍了有关传统面向类的设计模式,实例化,多态,继承,我们了解到这些并没在js中得到应用,js有自己的方式来实现上面的内容,这一章我们将细致地展开js是怎么实现自己的混合对象“类“的正文      在继承或者实例化时,JavaScript 的对象机制并不会自动执行复制行为。简单来说,JavaScript 中只有对象,并不存

2021-07-09 11:01:01 105 1

原创 深入理解javascript混合对象“类”(一)

文章目录前言正文类“类”设计模式javascript中的类类的机制构造函数类的继承多态多重继承小结前言      javascript是一门面向对象语言,但是与传统面向对象语言不同,javascript原理上并没有类的说法,学习过传统面向对象语言的同学们可能知道,面向类的设计模式有三种:实例化(instantiation)、继承(inheritance)和(相对)多态(polymorphism)。但是这些设计模式无法对应到javascript的

2021-07-08 14:58:21 191

原创 深入javascript对象语法和应用场景(二)

文章目录前言正文复制对象不变性对象常量禁止扩展密封冻结存在性遍历小结前言      上一章我们介绍了javascript对象的一些基本用法,这一章我们将继续上一章的内容,讲一些关于javascript进阶的内容正文复制对象      这个就是一个老生常谈的问题了,javascript对象的复制场景分为浅拷贝和深拷贝。浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用(地址),深拷贝

2021-07-07 11:12:37 119

原创 深入javascript对象语法及应用场景(一)

文章目录前言正文语法类型内置对象可计算属性名数组小结前言      对象是javascript中的一个重要的概念,甚至有“JavaScript 中万物皆是对象”的说法,可以说对于熟悉javascript而言,精通对象的应用场景至关重要,那么到底什么是对象,对象在哪些地方又有怎样的用途呢,这一系列我将带大家深入javascript对象的语法及应用场景正文语法      对象可以通过

2021-07-06 17:43:17 154 1

原创 深度解析javascript中的this(四)

文章目录前言正文被忽略的this间接引用箭头函数小结前言      昨天看nodejs很有感触,所以就写了nodejs的文章,抱歉,今天接着之前的部分,我们之前谈到this的四种绑定规则和他们的优先级,但是既然是规则,总有规则的例外,这一章我们就来谈谈this的绑定规则的例外正文被忽略的this      如果你把 null 或者 undefined 作为 this 的绑定对象传

2021-07-02 17:57:01 102 1

原创 Node.js 中的阻塞和非阻塞io

文章目录前言正文共享状态的并发前言      Node.js 是运行在服务端的 JavaScript,它具备可以处理高并发的能力,这一章作为nodejs系列文章的第一章,我们将介绍nodejs之所以性能好的原因正文共享状态的并发      node为javascript引入了一个复杂的概念,共享状态的并发,通俗讲,node中你需要对回调函数如何修改当前内存中的变量特别小心,除此之

2021-07-01 11:30:58 762

原创 深度解析javascript中的this(三)

文章目录前言正文优先级从bind源码看为什么new绑定优先级更高new绑定和显式绑定在函数柯里化的应用小结前言      上一章我们说到,this绑定的四种规则,默认绑定,隐式绑定,显式绑定和new绑定,并且我们抛出了一个问题,如果当这几个绑定一起使用的时候,优先级又是怎样的,这一章我们将就这个问题进一步展开解释正文优先级      毫无疑问,默认绑定的优先级是四条规则中最低的,

2021-06-30 13:36:18 126

原创 深度解析javascript中的this(二)

文章目录前言正文调用位置绑定规则默认绑定隐式绑定隐式丢失显式绑定硬绑定API调用的“上下文”new绑定小结前言      上篇文章我们初步了解了有关this的知识,在不考虑箭头函数的情况下,this指向函数的调用者,这一章我们将进一步学习了解this正文调用位置      在理解 this 的绑定过程之前,首先要理解调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的位置

2021-06-29 13:37:36 110 2

原创 深度解析javascript中的this(一)

文章目录前言正文为什么需要使用this对this的错误认知指向函数自身指向函数的作用域this指向函数调用者小结前言      this 关键字是 JavaScript 中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。我记得自己从开始学习javascript开始就开始不停地被人问到关于this的知识,自己也从来不敢保证自己回答的是对的。毫无疑问,在缺乏清晰认识的情况下,this 对开发者来说完全就是一种魔法,这系列文

2021-06-28 10:45:10 100

原创 一篇文章帮你真正理解javascsript作用域闭包

文章目录前言正文javascript闭包无处不在闭包的实质闭包的真正意义循环和闭包模块小结前言      关于javascript闭包其实已经是老生常谈了,我很久以前也写过有关闭包的文章,前段时间面试字节跳动的时候,面试官笑着和我说,闭包的内容可以再看看,以前我对闭包的认识和理解也是狭隘的,闭包是这门语言中极其难以掌握又非常重要的概念,这一篇文章的意义旨在帮大家真正理解javascript闭包正文javascript闭包无处不在&nbsp

2021-06-25 15:46:29 122 2

原创 深入理解javascript变量提升机制

文章目录前言正文变量提升变量提升的作用域函数优先小结前言      经过前几章的学习,相信大家已经很熟悉作用域的概念了,前几章我们介绍了关于函数作用域的相关概念,这一章我们将进一步来学习javascript编译执行过程中的特殊机制,变量提升机制正文变量提升      包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。当你看到 var a = 2; 时,可能会认为这是

2021-06-24 13:51:34 119

原创 深入理解javascript块作用域

文章目录前言正文块作用域withtry/catchlet/const块作用域的作用垃圾收集let循环小结前言      上一章我们介绍到,javascript中的作用域就像一个个小“气泡”,而函数作用域就是其中的一种产生方式,每声明一个函数都会为其自身创建一个气泡,属于这个函数的全部变量都可以在整个函数的范围内使用及复用,这一章我们将介绍javascript作用域的另一种小“气泡”,块作用域正文块作用域   

2021-06-23 15:42:56 228 2

原创 深入理解javascript函数作用域

文章目录前言正文函数作用域隐藏内部实现前言      上一章我们介绍了有关javascript词法作用域的相关知识,之前我们是概述地把作用域描绘成一个个小“气泡”, 但是并没有过多解释“气泡”的形成,究竟哪些情况下会形成上述的“气泡”呢,这一章我们将就这个问题详细展开正文函数作用域      JavaScript 具有基于函数的作用域,意味着每声明一个函数都会为其自身创建一个气泡

2021-06-22 22:10:52 96 3

原创 一篇文章带你彻底理解javascript词法作用域

文章目录前言正文词法阶段词法作用域的查找欺骗词法evalwitheval和with在性能上的损耗小结前言      上篇文章我们了解到“作用域”是一套规则,这套规则用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找。      作用域共有两种主要的工作模型。第一种是最为普遍的,被大多数编程语言所采用的词法作用域,我们会对这种作用域进行深入讨论。另外一种叫作动态

2021-06-21 13:40:26 131

原创 由LHS和RHS深入理解javascript引擎与作用域的交互

文章目录前言前言       几乎所有编程语言最基本的功能之一,就是能够储存变量当中的值,并且能在之后对这个值进行访问或修改。事实上,正是这种储存和访问变量的值的能力将状态带给了程序。一套设计良好的规则来存储变量,并且之后可以方便地找到这些变量。这套规则被称为作用域。       对于javascript而言,与传统编译语言不同,我们常称它为“动态解释性“语言,因

2021-06-18 16:28:43 246

原创 字节抖音前端社招一年经验offer有感

       今天想了很多,转眼间工作就已经一年有余了,正式收到字节offer的那刻,眼泪不由自主地流了下来,出乎我意料地,涌上心头的更多的是怀念,马上要离开广州,有很多值得怀念的人和事情       说实话,毕业这一年,真的很坎坷,被校招的企业莫名劝退,迷茫,再重新站起来,重新去面试,那段时间,我可能是最熟悉广州的人之一,两三点醒来,彻夜彻夜地睡不着,焦虑地看着bo

2021-06-17 10:21:33 893 1

转载 摩尔投票法

提问: 给定一个int型数组,找出该数组中出现次数大于数组长度一半的int值。解决方案: 遍历该数组,统计每个int值出现次数,再遍历该数组,找出出现次数大于数组长度一半的int值。同样的,该解决办法也要求使用Map,否则无法达到线性的时间复杂度。那么对于这个问题,有没有什么不使用Map的线性算法呢?答案就是今天我们要提到的摩尔投票法。利用该算法来解决这个问题,我们可以达到线性的时间复杂度以及常量级的空间复杂度。首先我们注意到这样一个现象: 在任何数组中,出现次数大于该数组长度一半的值只能有一个。

2021-05-13 16:38:51 77

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(九)

文章目录题1(箭头函数返回值)题2(async)题3(false)题6(String.prototype.padStart)题8(箭头函数的原型)题1(箭头函数返回值)下面输出的是const getList = ([x, ...y]) => [x, y]const getUser = user => { name: user.name, age: user.age}const list = [1, 2, 3, 4]const user = {name: 'Lydia', age: 2

2021-05-11 09:37:42 195

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(八)

文章目录题1(模版字符串)题2(引用复制)题3(Delete)题4(yield)题8(扩展运算符)题10(箭头函数)题1(模版字符串)下面代码输出的是function getPersonInfo(one, two, three) { console.log(one); console.log(two); console.log(three);}const person = 'Lydia';const age = 21;getPersonInfo`${person} is ${age} y

2021-05-10 10:39:34 236

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(七)

文章目录题1(构造函数)题2(generator)题3(引用拷贝)题5(String.raw)题7(为构造函数添加原型方法,原型定义方法和构造函数定义方法的区别)题8(原型)题1(构造函数)下面输出的是function Car() { this.make = 'Lamborghini'; return {make: 'Maserati'}}const myCar = new Car();console.log(myCar.make)答案:‘Maserati’这道题主要考察:返回属性

2021-05-08 11:40:59 242 1

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(六)

文章目录题1(剩余参数)题2(NaN, Number.isNaN)题3(TypeError)题4(自动分号插入)题5(Symbol)题8(ReferenceError)题10(Array.prototype)题1(剩余参数)下面输出的是function getItems(fruitList, ...args, favoriteFruit) { return [...fruitList, ...args, favoriteFruit]}getItems(['banana', 'apple'], '

2021-05-07 10:34:25 221 2

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(五)

文章目录题1(eval)题2(yield)题5(变量提升)题8(import)题1(eval)下面输出的是const sum = eval('10*10+5')答案:105这道题主要考察:eval: eval会为字符串传递的代码求值。如果它是一个表达式,就像在这种情况下一样,它会计算表达式题2(yield)缺少的部分代码是什么const teams = [ {name: 'Team1', members: ['Paul', 'Lisa']}, {name: 'Team2', me

2021-05-06 10:21:36 142

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(四)

文章目录题1(sessionStorage)题2(yield)题3(import)题4(纯函数)题5(私有变量,SyntaxError)题8(引用类型比较)题1(sessionStorage)cool_secret可以访问多长时间sessionStorage.setItem('cool_secret', 123)答案:用户关闭选项卡时这道题主要考察:sessionStorage:sessionStorage 属性允许你访问一个,对应当前源的 session Storage 对象。它与 loc

2021-04-30 10:27:27 188 2

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(三)

文章目录题1 (块级作用域, Reference)题2 (扩展符,箭头函数)题3 (JSON.stringify)题4(Boolean)题6 (模版字符串)题8 (暂时性死区)题10 (yield)题1 (块级作用域, Reference)下面输出的是function checkAge(age) { if (age < 18) { const message = 'Sorry, you are too young'; } else { const message = 'Yay, yo

2021-04-29 11:30:38 202 3

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(二)

文章目录题1(Class私有变量, SyntaxError)题2(typeof, return ; )题1(Class私有变量, SyntaxError)下面的输出是什么Class Counter { #number = 10; increment() { this.#number++; } getNum() { return this.#number; }}const counter = new Counter();counter.increment();console.l

2021-04-28 11:04:55 278

原创 这些前端大厂面试题你会做吗?每日10题大厂面试题(一)

文章目录前言题1(全等/new/基础包装类型)题2(扩展符,函数参数默认值)题3(后置递增++)题4(const)题5(变量提升,严格模式,ReferenceError, TypeError)题7(类的静态函数)题8 (数组原型的相关方法)题10 (for...in)前言        今天是每日10题大厂面试题专栏的第一章,所以有一些地方需要和同学们啰嗦一下,以后每天一更,周末不更,题目都是题主前一天晚上亲自做过并且总结过

2021-04-27 15:00:46 491 6

原创 webpack中output中path和publicPath区别详解

文章目录前言正文path和publicPath的定义path和publicPath的区别利用publicPath区分不同环境资源路径小结前言        webpack是目前比较主流的前端打包工具,其中output属性中有两个类似的配置项,path和publicPath,这一章我们来看看他们之间的区别正文path和publicPath的定义path:所有输出文件的目标路径;打包后文件在硬盘中的存储位置。publi

2021-04-26 10:58:33 1557 1

转载 关于Vue3.0的Composition API 和 旧版本的Mixins

关于Vue3.0的Composition API 和 旧版本的Mixins【转载】原文:http://caibaojian.com/vue3-composition-api.html在过往,如果你想共享组件间的代码,一般使用的方式是利用 mixin 来实现。但是在Vue3.0 中提供了更好的解决方案 Composition API。下面我们将介绍 Mixins 的缺点,并且看看 Composition API 是如何克服这些缺点的。Mixins简述我们先来回顾以下Mixins的模式。以下的内容是

2021-04-15 18:43:10 582

原创 你不知道的javascript设计模式(十七) ----编程设计原则和设计规则

文章目录前言正文单一职责原则最少知识原则开放-封闭原则代码重构提炼函数合并重复的条件片段把条件分支语句提炼成函数合理使用循环提前让函数退出代替嵌套条件分支传递对象参数代替过长的参数列表尽量减少参数数量少用三目运算符合理使用链式调用用 return 退出多重循环小结前言        同学们,我们学习设计模式已经很长的时间了,今天将会是我们设计模式系列的最后一章节,编程设计原则和设计规则。设计模式对于一个开发工程师而言是一个很

2021-04-12 10:44:36 128 2

原创 你不知道的javascript设计模式(十六)----状态模式

文章目录前言正文状态模式的定义状态模式的实现状态模式的优缺点小结前言        同学们,上一章我们介绍了装饰者模式,装饰者模式可以在不影响原类的情况下,给对象新增额外的功能,并且我们也尝试了使用AOP面向切面去拓展function的原型来实现装饰者模式。这一章,我们将进一步学习一种新的设计模式,状态模式。正文状态模式的定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎改变了它的类 &nb

2021-04-09 13:58:16 79

原创 你不知道的javascript设计模式(十五)----装饰者模式

文章目录前言正文装饰者模式的定义装饰者模式的实现基于javascript的装饰者模式实现用AOP装饰函数小结前言        同学们,上一章节我们介绍了中介者模式,中介者模式应用于对象关系复杂的场景,将所有对象之间的交互集中到中介对象处,来降低对象之间的耦合性,这一章节,我们将进一步学习一种新的设计模式,装饰者模式正文装饰者模式的定义       

2021-04-08 11:32:51 153 4

原创 你不知道的javascript设计模式(十四) ----中介者模式

文章目录前言正文中介者模式的定义中介者模式的实现小结前言        不知不觉,我们学习设计模式已经很长的时间了,同学们有没有在代码设计上有一点自己的心得体会呢,上一章节我们介绍了职责链模式,职责链模式意义在于弱化发送者和接收者之间的关系,只要我们知道请求的节点,就可以将请求传下去,这一章我们将学习一章新的设计模式,中介者模式正文中介者模式的定义      

2021-04-07 14:37:10 81

原创 你不知道的javascript设计模式(十三) ----职责链模式

文章目录前言正文职责链模式的定义职责链模式的实现基于AOP实现职责链模式小结前言        清明节三天假期过去了,一直没有更新,这里先祝大家清明节安好!上一章节我们介绍了享元模式,享元模式分离了对象的内部和外部状态,实现了对象的复用,从而去减少资源上的消耗。这一章我们将继续学习一种新的设计模式,职责链模式。正文职责链模式的定义使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一

2021-04-06 11:42:51 103 2

原创 你不知道的javascript设计模式(十二) ----享元模式

文章目录前言正文享元模式的定义内部状态与外部状态享元模式的实现对象池前言        同学们,上一章我们介绍了模板方法模式,这是一种基于继承的设计模式,通过设计抽象类可以避免类似类的重复定义,并且因为js的特殊原型克隆,我们也就js的实现方式进一步说明了模板方法模式,今天我们将进一步介绍一种新的设计模式,享元模式。正文享元模式的定义       &

2021-04-02 11:54:28 129 2

原创 你不知道的javascript设计模式(十一) ---- 模板方法模式

文章目录前言正文模板方法的定义模板方法的实现javascript中实现模板方法的注意事项javascript中模板方法的实现小结前言        同学们,上一章我们介绍了组合模式,组合模式是一种基于树状结构的设计模式,组合模式中的对象是满足一致性的,这样可以让用户不再需要去考虑对象的特殊性,从而达到一种一视同仁的效果。这一章我们将继续介绍一种新的设计模式,模板方法模式正文模板方法的定义  &nbs

2021-04-01 11:18:46 232 3

css,jquery和bootstrap参考手册

css,jquery和bootstrap参考手册 多个版本,已经运行可以使用

2018-11-18

mysql-connector-java-5.08-bin.jar

mysql数据库连接jar包 mysql-connector-java-5.08-bin.jar

2018-11-18

bootstrap4 js,css和font-awesome

bootstrap4 js,css和font-awesome,bootstrap4流行框架

2018-11-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除