自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小菜鸡的菜园子

想到哪儿写到哪儿

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

原创 面试手写方法

数组//mapArray.prototype._map = function(fn){ return this.reduce((result,item)=>[...result,item],[])}//filterArray.prototype._filter = function(fn){ return this.reduce((result,item)=...

2019-06-11 18:08:19 188

原创 JS的事件循环

Web Workers为了使浏览器这执行js代码时,不阻塞进程,所以HTML5制定了Web Workers标准,允许js创建多个线程,但子线程收到主线程的控制,并且不能对DOM进行操作,以防止多个线程同时对一处DOM进行不同操作,这样可以避免“一核有难,七核围观”。为什么JS需要异步其根本原因在于计算机对不同硬件访问速度的差异,其速度快到慢依次排序为:寄存器、L1高速缓存、L2高速缓存...

2018-12-30 20:22:39 382

原创 js实现一个任务队列

functionEventQueue(delayTime){this._delayTime=delayTime||20;this._queue=[];this._canRun=true}EventQueue.prototype={add:function(fn,params){this._queue.push...

2019-10-21 22:14:15 1635 1

原创 从零开始学React(3)——简单介绍JSX语法糖

简单介绍jsx语法糖JSX不能直接运行,是被babel-loader中的react这个preset翻译的翻译前class App extends React.Component{ render(){ return <h1>Hello World!</h1> }}翻译后需注意事项:①需要被一个单独的元素

2019-03-15 14:53:40 377

原创 从零开始学React(2)——编写Hello World!

创建组件在已有的项目文件夹中,打开app文件夹,创建app.js文件作为一个组件,输入以下内容import React from 'react'//此处我们定义了一个名为App的组件//React 要求自定义组件必须是字母开头!//React 要求自定义组件的类必须继承于React.Component类class App extends React.Component{ //组件...

2019-03-14 21:06:19 186

原创 从零开始学React(1)——配置webpack

webpack配置基本配置新建文件夹,起名react1打开终端,打开至文件夹,输入命令:npm init一路回车,直至完成创建webpack.config.js文件,并在其中书写以下内容(摘自官网)const path = require('path');module.exports = { entry: './app/main.js', output: { file...

2019-03-14 18:15:56 159

原创 JavaScript高级面试

异步一、什么是单线程,和异步有什么关系单线程:只有一个线程,同一时间只能做一件事原因:避免DOM渲染的冲突解决方案:异步为什么js只有一个线程:避免DOM渲染冲突浏览器需要渲染DOM JS可以修改DOM结构 JS执行的时候,浏览器DOM渲染会暂停 两端JS也不能同时执行(都修改DOM就冲突了) webworker支持多线程,但是不能访问DOM解决方案存在的问题...

2019-01-08 20:37:49 268

原创 HTTPS工作原理

一、什么是 HTTPSHTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。经常会在Web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不再用http://,而是改用https://。另外,当浏览器访问HTT...

2019-01-08 20:37:26 156

原创 web开发的跨域问题

做过 web 开发的同学,应该都遇到过跨域的问题,当我们从一个域名向另一个域名发送 Ajax 请求的时候,打开浏览器控制台就会看到跨域错误,今天我们就来聊聊跨域的问题。1. 浏览器的同源策略同源的定义是:如果两个页面的*协议,*端口(如果有指定)和*域名*都相同,则两个页面具有相同的源。同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的...

2019-01-08 20:37:09 107

原创 JavaScript自定义构造函数

自定义构造函数自定义构造函数,可以快速创建多个对象,并且代码复用性高。 // 一般为了区分构造函数与普通函数,构造函数名首字母大写 function Student(name,score,code){      this.name = name;     this.score = score;     this.code = code; ...

2018-12-30 22:58:16 304

原创 如何理解import、require、export、module.export

ES6的模块设计模块设计的思想是尽量静态化,使得编译的时候就可以确定模块的一来关系,以及输入和输出的变量。CommonJS和AMD都只能在运行时确定这些东西,commonJS模块就是对象,输入时需要查找对象属性 // CommonJS模块 let { stat, exists, readFile } = require('fs');   // 等同于...

2018-12-30 22:55:00 183

原创 前端性能优化方案

1.原则多使用内存,缓存或者其他方法减少CPU计算,减少网络请求减少IO操作(硬盘读写)2.加载资源优化静态资源的合并和压缩。静态资源缓存(浏览器缓存策略)。使用CDN让静态资源加载更快。3. 渲染优化CSS放head中,JS放body后图片懒加载减少DOM操作,对DOM操作做缓存减少DOM操作,多个操作尽量合并在一起执行事件节流尽早执行操作...

2018-12-30 22:53:16 87

原创 使用webpack来生成多页面应用MPA

使用webpack配置MPA为什么需要使用 webpack 构建多页应用呢?因为某些项目使用 SPA 不太合适(大多是 SEO 的原因),或者您在做项目时有其他的需求。如果你有如下需求:使用 ES6 进行开发 期望使用面向对象开发(class) 自动压缩合并 CSS 和 JS 文件 使用 ESLint 进行代码检查 自动生成 HTML 文件 自动抽取 CSS 文件 …有了这些...

2018-12-30 22:47:00 828 2

翻译 js实用方法

数组arrayMax返回数组中的最大值。将Math.max()与扩展运算符 (…) 结合使用以获取数组中的最大值。 const arrayMax = arr => Math.max(...arr); // arrayMax([10, 1, 5]) -> 10 arrayMin返回数组中的最小值。将Math.min()与扩展运算符 (…)...

2018-12-30 22:44:12 299

原创 vue数据双向绑定原理

vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,我们可以先来看一下通过控制台输出一个定义在vue初始化数据上的对象是什么。var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(...

2018-12-30 22:28:32 179

原创 理解JavaScript中的instanceof

理解JavaScript中的instanceofinstanceof原理我们先写这样一个例子function Girl(){} Girl.prototype = {} function Boy(){} Boy.prototype ={} var boy1 = new Boy(); alert(boy1 instanceof Boy);//true alert(boy1 inst...

2018-12-30 22:06:33 104

原创 JavaScript在new的过程中经历了什么

举一个栗子:function(name,age){ this.name = name; this.age = age;}let person = new Person('yy',18)像上面这么new 一个对象可以分成四个阶段:1、创建了一个空对象var obj = new Object();2、让Person中的this指向obj,并执行Person...

2018-12-30 21:28:10 291

空空如也

空空如也

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

TA关注的人

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