自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

记录学习过程

  • 博客(107)
  • 收藏
  • 关注

原创 阿里秋招前端面经

写在前面在面本地生活前面过阿里的CRO… 但在总监面挂了,然后9.3那天突然接到本地生活的电话…于是…9.3 一二面 -> 9.4 总监面 -> 9.7早上交叉面 -> 9.7下午hr面一二面(1h10min)没怎么聊技术… 聊学习、实习和家常聊了30-40min…自我介绍怎么对一个数字进行三位一分割(说了自己的想法,问能否优化。提示用正则)304和302分别有什么意义什么时候用代理模式?(在前面聊实习的时候提到了自己用到了代理模式…)怎么在DOM中找前一个和后一个结点

2020-09-10 11:18:42 656 2

原创 网易有道秋招前端面经

很久之前面的,可能很多已经忘记了。想起来再来补充写在前面时间线:8.03投递简历 -> 8.08笔试 -> 8.18一面(业务面) -> 8.24二面(业务面) -> 8.28三面(早上,总监面) -> 8.28hr面(下午)-> 9.1收到意向书一面(50min,无先后顺序)自我介绍实习期间做了什么?遇到了什么难点?怎么解决的?看你实习期间看了很多书并解决了一些问题,你解决了什么问题?举几个例子说一下vue的底层原理知道吗?说一下。看过什么框架的源.

2020-09-10 10:47:37 1027 1

原创 腾讯csig前端暑期实习面经(已录用)

问题顺序可能不对一面自我介绍vue的数据双向绑定原理(Object.defineProperty)jQuery如何实现事件捕获?原理是什么?前端安全问题(xss攻击/sql注入/cfrs攻击)git操作了解多少?如果需要回退代码,如何操作?在浏览器上输入一个网址发生了什么?cookie和session的区别以及应用场景?闭包说一下。什么情况下会出现闭包。…还有其他的忘记了,...

2020-08-07 16:03:09 2980 3

原创 Ajax

说在前面:传统方法的缺点:传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。什么是ajax?aj

2020-07-27 21:53:14 452 1

原创 运行 npm run publish 发生了什么以及有什么注意点?

"publish": "cross-env-shell CDN_ENV=development \"npm run build && node ./upload.js\"",运行 npm run publish 发生了什么以及有什么注意点?注意点:cross-env : 使用 cross-env 解决了跨平台设置 NODE_ENV 的问题:使用cross-env解决跨平台设置NODE_ENV的问题cross-env-shell :当需要在整个嵌入式命令行脚本中而不是仅在一个命令中

2020-07-15 16:11:30 3062

原创 h5踩坑记录

IOS 上滑底部会漏出白边,效果不佳,故需要在 IOS 中有蒙层出现时禁止上滑,从而能够提高用户体验性。通过给 body 标签加样式 style="overflow: hidden;" 即可解决该问题。理解是将页面多余部分隐藏后即不可滑动。当需要从微信相关页面返回到自己开发的页面时,微信隐藏了正确的referer,即无法通过判断是否有referer来确定进入当前页面是从外部进入还是从其他页面返回。故当需要判断所在页面的进入前的状态时可用缓存的方式来解决。3.ios 中无法长按识别页面中的二维码。原因:.

2020-07-14 15:36:04 450 1

原创 node设计模式 - 异步控制流模式之回调函数

异步控制流模式之回调函数以下内容是对《Node.js设计模式》第三章的理解,例子都是采用的书上的内容。未将书中整章内容摘取出来,只提取出部分内容。全部内容可查看 (《Node.js设计模式》基于回调的异步控制流)异步编程的困难在JavaScript中,我们可以通过闭包和匿名函数的定义为我们提供平滑的异步变成体验,但牺牲 的是质量,如模块化、可重用性和可维护性,很有可能会出现嵌套失控、函数体积的增长并会导致糟糕的代码结构。首先从一个例子开始理解异步编程的困难:我们首先创建一个简单的Web爬虫,其

2020-07-13 22:00:35 394

原创 node设计模式 - 简介

Reactor模式简介Reactor模式结构图:使用Reactor模式时发生的操作:首先应用程序接收到I/O请求时,会将其提交至Event Demultiplexer(事件多路分解器),让其生成新的I/O操作。应用程序还会为新的I/O请求指定一个处理程序,当操作完成时将调用该处理程序。当向Event Demultiplexer提交新请求后,Event Demultiplexer会立即将控制权返回给应用程序。当一组I/O操作完成时,事件多路分解器将该I/O操作对应的事件推入Event Queue(事件

2020-07-10 09:56:39 667

原创 javaScript设计模式 -- 工厂模式与抽象工厂模式

一、工厂模式工厂模式是用来创建对象的一种常用的设计模式。在使用该模式时,我们不去暴露创建对象的具体逻辑,而是将逻辑封装到一个函数中,那么该函数就会被视为一个工厂,从而能够解决创建相似对象的问题。工厂模式可以分为:简单工厂、工厂方法、抽象工厂。1. 简单工厂模式简单工厂模式又叫静态工厂模式。它是由一个工厂对象决定某一种产品对象类的实例。主要是用来创建同一类对象。在实际中的例子中,我们常常需要根据用户的权限来渲染不同的页面。譬如低权限的用户无法看到高权限用户能看到内容。我们可以用一个User类,通过传

2020-07-08 15:47:02 979

原创 vue变化侦测

一、Object的变化侦测1. 什么是变化侦测Vue.js会自动通过状态生成DOM,并将其输出到页面上显示出来,这个过程叫做渲染。Vue.js的渲染过程是声明式的,我们通过模板来描述状态与DOM之间的映射关系。通常,在运行时应用内部的状态会不断发生变化,此时需要不停地重新渲染,如果确认状态中发生了什么呢?这时候变化侦测的作用便显示出来了。变化侦测分为推和拉,Angular和React中的变化侦测属于拉,即当状态发生改变时,并不知道哪个状态变了,只知道状态有可能变了,然后发送一个信号告诉框架,框架内部

2020-06-30 20:09:45 678

原创 es6 Class内容略解(详略得当,包含extends关键字的理解

提前声明:以下的内容是基于阮一峰大大的es6教程进行说明自己的理解的,当然主题内容还是以阮一峰大大的教程作为参考(下面部分只说明自己之前遗漏或者不太懂的地方,不会全部将文档照搬过来,详细内容见阮一峰大大文档es6入门)一、 Class基本内容Class是语法糖,实际上其绝大部分功能,es5都可以实现在Class中定义的所有方法实际上都定义在了该类的原型上,在constructor内定义的方法和属性是定义在对象本身。class Person { constructor(name.

2020-06-19 19:33:50 1986

原创 Object.create和new创建对象

Object.create和new先看一个例子: function Animal(name,sex) { this.name = name; this.sex = sex; } Animal.prototype.getName = function (){ return this.name; } let obj1 = new Animal("zyy","male"); let obj2 = Object.c

2020-06-19 14:53:59 1619 2

原创 JavaScript执行环境、作用域链

JavaScript执行环境、作用域链EC的组成当js代码执行时,会进入不同的执行上下文,这些执行上下文会形成一个执行上下文栈(Execution context stack,ECS)js中,执行环境分为三种:全局执行环境 - 一旦代码被载入,全局执行环境被创建,在任何地方都可以访问到全局执行环境中的内容局部执行环境 - 当执行某一个函数时,局部执行环境被创建,当函数执行完毕时,该局部执行环境被销毁,其中的所有内容也被销毁Eval- 在Eval函数内运行时会被创建变量对象和活动对象

2020-06-10 21:27:52 296

原创 js高级程序设计第一章(本章后记才是干货~)

js高级程序设计第一章:`JavaScript`简介从了解`JavaScript`开始1. `ECMAScript`:提供核心语言功能规定的内容`ECMAScript`兼容2. `DOM(Document Object Model)`:提供访问和操作网页内容的方法和接口`DOM`级别3. `BOM(Browser Object Model)`:提供与浏览器交互的方法和接口本章后记说在前面重绘和重排(未完)1. 重排什么时候发生2. 渲染队列3. 如何减少重排和重绘改变样式批量修改`DOM`缓存布局信息让元素

2020-06-02 11:10:25 521

原创 vue钩子函数

vue钩子函数虽然文档已经很详细啦,但是总结一下加深一下理解与记忆(以官方文档为参考整理的~)1. 路由导航守卫有时候,我们需要通过路由来进行一些操作:比如最常见的登陆权限验证,如果用户权限足够则允许让其进入导航,否则取消跳转,即返回登陆页面让用户重新登陆。再比如在用户进入导航前需要对携带参数进行一些处理或者添加上默认的参数再比如在用户离开某个页面前,需要对其做一些处理,在处理完毕后才允许离开该页面进入导航,否则不允许离开我们可以在进入路由或离开路由时,需要在进入路由导航或离开路由

2020-05-29 22:20:27 623 1

原创 最近看到的几篇好的文章

css权重css权重计算你对css权重真的了解吗VuexVuex详解

2020-05-06 09:31:29 356

原创 js内存泄漏

从变量开始1. 变量分类基本数据类型指简单的数据段存储在栈中,栈为自动分配的内存,由系统自动释放。栈中每个变量的大小是一样的。不能为基本数据类型添加属性基本数据类型不可变在进行赋值运算时,实际上是在内存中新开辟了一段栈内存,故若存在var a = 3;a = 4的操作时,并不是改变了a的值,而是为a重新进行赋值,即在内存中新开辟了一段栈内存,然后将值赋值到新的空间中。va...

2020-04-07 23:50:56 1149 1

原创 HTTP状态码304详解

图和代码来源理解HTTP缓存和304状态码下图是使用express启动了一个服务,启动之后浏览器访问两次localhost:8080所得请求、响应头var express = require('express');var app = express();app.get('/', function(req, res) { res.send('hello world');});a...

2020-04-07 16:07:10 24154 4

原创 js类型检测方法

一、js类型1. 分类基本数据类型和引用数据类型2. 基本数据类型NumberBooleanUndefinedNullStringSymbol特点:① 存放在栈区:原始数据类型直接存储在栈中的简单数据段,其占据空间小、大小固定,属于被频繁使用的数据。② 值的比较:==只进行值的比较,在比较时会进行数据类型的隐式转换。===不仅进行值的比较,还要进行数据类型的比较。...

2020-03-25 23:14:28 1422

原创 webpack(持续更新)

说在前面npm和npx的区别npm:包管理器npx:包执行器1. npmnpm本身实际上不能运行任何包的,如果想要运行哪个包,必须要在package.json中定义。使用本地安装(npm install 包名),则会将包安装到当前目录下的node_modules下,且该包只能在该项目下使用。如果使用全局安装(npm install 包名 -g),则会将包安装到/AppData/np...

2020-03-22 23:14:06 247

原创 剑指offer —— javaScript解(持续更新)

1. 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从最后一个一维数组的第一个元素开始向上/向右进行遍历,若整数比数组中该位置的元素小,则向上遍历,否则向右遍历该一维数组。 function Find(target, array) ...

2020-03-21 20:24:42 331

原创 常见服务器返回状态码

常见服务器返回状态码1. 200服务器正确处理请求,并将请求的资源放在响应体中返回给客户。2. 204若服务器拒绝对PUT、POST或者DELETE请求返回任何状态信息或表示,那么通常采用此响应代码。服务器也可以对GET请求返回此响应代码,这表明“客户端请求的资源存在,但其表示是空的”3. 301永久重定向。服务器知道客户端试图访问的是哪个资源,但它不喜欢客户端用当...

2020-03-15 23:49:57 2292

原创 几种常见排序

1. 归并排序【图来自归并排序】function merge(leftArr,rightArr) { let resultArr = []; let left=0; let right = 0; while(left!=leftArr.length && right!=rightArr.length){ ...

2020-03-14 21:49:55 676

原创 JS练习篇2

1. 用var定义的变量,在二次声明却未赋值时,该变量的值还是第一个定义的值var a=3;var a;console.log(a);//32. valueOf方法的使用undefined和null没有valueOf方法,使用会报错。布尔类型会返回原值:true/false字符串类型会返回原值数字:① 如果是整数,则需要用小括号将数字包起来再使用valueOf方法,直接在数...

2020-03-06 21:08:01 330

原创 BFC

BFCBFC(Block formatting context):“块级格式化上下文”。它是一个独立的渲染区域,是用于布局块级盒子的一块渲染区域。并且与这个区域的外部毫无关系。...

2020-03-05 20:55:27 307 2

原创 Trie ——前缀树、字典树

说在前面:Map映射数据结构和Trie的异同:相同:都能够根据key进行映射得到对应的值。不同:① Trie中查询/添加的算法复杂度为O(len),即插入/查询的字符串的长度,而Map查询/添加的算法复杂度为O(logn),n为输入的查询元素个数。② Trie是用多叉树实现的,而Map一般是用二叉树实现的。Trie:专门为了处理(存储/查询)字符串而设计的Trie是以时间换空...

2020-03-02 21:26:31 377

原创 线段树

线段树:创建时实际做的是后序遍历线段树不是完全二叉树线段树是平衡二叉树堆也是平衡二叉树,故完全二叉树是平衡二叉树,平衡二叉树不一定是完全二叉树。引入的意义:对区间进行操作(区间染色、区间计算…)线段树中的结点是保存的一个区间的计算值/一个区间。相关点:1. 平衡二叉树最小深度和最大深度相差为12. 如果用数组创建线段树,则需要4n个空间。由于线段树每个结点都保存的...

2020-03-02 14:37:05 173

原创

一、优先队列出队顺序与入队顺序无关,和优先级相关队首元素永远是优先级最高的元素,而非最早进来的元素可用不同的数据结构进行底层实现。1. 为什么使用优先队列?任务是动态添加的且其优先级是不可确定的。2. 优先队列的常用方法1.enqueue(E)2.dequedu()3. getFront()4. getSize()5. isEmpty()3. 几种底层实现优先队列的...

2020-02-27 22:53:18 308

原创 springBoot学习笔记

第一讲1. mavenmaven是管理依赖的中央仓库,maven项目提供了管理依赖的方式,我们在创建maven项目时要按照其规定格式导入依赖。在创建springBoot项目时,IDEA本身已经封装了maven,我们也可以手动在maven官网下载一个maven到本地,然后在IDEA中进行配置maven位置。两者不同在于:手动下载的maven的版本可以受我们自己控制,而IDEA中封装好的ma...

2020-02-21 16:56:32 334

原创 JS中的四种模块化规范 —— CMD、AMD、CommonJS与ES6

AMD规范CMD规范CommonJS规范

2020-02-20 23:06:48 861

原创 JavaScript练习篇(持续更新)

1. call和apply的异同① call和apply都属于Function.prototype的一个方法,故每个方法都有call、apply属性。② call和apply第一个参数都是传入给当前对象的对象。③ call第二个以后的参数都是传入的参数列表,而apply的第二个参数则是参数数组,即将多个参数组合成一个数组传入。④//② ③function add(...a){ ...

2020-02-19 22:37:06 623

原创 详解cookie 与 session

零碎知识点obj的hasOwnProperty(arg)方法:查找对象中是否含有arg属性。这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。css3中的 calc()函数用于动态计算值① 运算符前后都需要保留一个空格,例如:width:calc(100% - 10px)② 任何长度值都可以使用calc函数进行计算③ calc()函数支持+、-、*、/运算④ ...

2020-02-19 22:36:16 831

原创 node 模块引入与加载机制

说在前面在Node.js中,以模块为单位划分功能,通过一个完整的模块加载机制使得开发人员可以将应用程序划分为多个不同的部分。模块的使用可以提高代码重用率,提高应用程序的开发效率,而且开发人员可以根据具体的需求引入第三方模块或者自定义模块到应用程序中。node模块node模块分为核心模块和文件模块模块文件后缀名为.js的javascript脚本文件后缀名为.json的json文...

2020-02-18 19:11:36 1351

原创 大数据技术基础与应用

大数据时代第三次信息化浪潮 :大数据+云计算+物联网大数据时代:大数据时代来临的重要因素一、 技术支撑存储:存储设备容量不断增加,价格不断降低CPU处理能力大幅提升:单核->多核网络带宽不断增加二、 数据产生方式的变革 (重要因素)运营式系统阶段 -> 用户原创内容阶段-> 感知式系统阶段(物联网的兴起(重要因素):摄像头、传感器、气象温、湿度传感器都在...

2020-02-18 14:10:14 4604

原创 模块化 —— 以vue和node分别为例

vue1. export① 可以使用多个export暴露文件中的函数、变量、对象等② 在import导入时必须要将{}将变量括起来且变量必须与暴露的模块中export后的变量名称相同。③ export和export default可以同时使用,但在import时有所不同//test.jsfunction a(){ console.log("123");}function...

2020-02-17 21:20:06 383

原创 js中的小细节~

1. js中null undefined “” false 0的区别null undefined "" false 0所属什么类型console.log(typeof null);//objectconsole.log(typeof undefined);//undefinedconsole.log(typeof "");//stringconsole.log(typeof 0);//n...

2020-01-28 22:02:30 238

原创 node —— express

express使用express框架来搭建服务器无需再配置过多服务器端内容,其底层已经将其为我们配置。express框架的中间件、基本路由的底层实现了路由代码封装,根据不同的写法去实现不同的功能在express框架的路由使用中,若想让页面正常显示,必须要在中间件/路由的回调函数中调用res.send(...),否则页面会一直加载一、 使用express创建一个工程创建app.j...

2019-12-06 20:51:03 648

原创 node —— get/post传值 + 路由封装

一、get/post传值1. get传值直接通过路径传值取值:引入url模块:let url = require("url")解析路径:let queryStr = url.parse(req.url,true)(第二个参数为true会将query中的值解析成json类型)获取query中的数据:let params = queryStr.query(params为路径上所传的参...

2019-11-29 15:01:47 540

原创 node —— stream & EventEmitter & ejs

一、 stream流1. Node.js Stream中的四种流类型Readable:可读操作Writable:可写操作Duplex:可读可写操作Transform:操作被写入数据,然后读出结果2. Stream对象的常用事件注意: 所有Stream对象都是EventEmitter的实例。data:当有数据可读时触发end:没有更多的数据可读时触发error:在接收和...

2019-11-28 22:38:40 412

原创 Node —— 基本使用

1. 构建服务端步骤:引入http模块(内置模块):const http = require("http")创建服务并监听端口号:http.createServer((req,res)=>{}).llisten(port,hostname,()=>{})(如果不填写主机名,则会监听任何IPV4地址的连接。如果在本地,则包括本地IP、localhost、127.0.0.1。如果...

2019-11-22 15:57:49 1999 1

空空如也

空空如也

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

TA关注的人

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