前端面试
承蒙时光不弃1769203735
hello world!
展开
-
Promise为什么比setTimeout先执行?
基本概念为便于理解,在进入正题之前,不得不说以下一些基本的概念。进程与线程进程(process) 是操作系统结构的基础; 是系统进行资源分配和调度的基本单位; 在linux系统中可以使用ps-ef来查询进程列表(如下图)。比进程更小的单位叫做线程。 线程(thread) 是操作系统能够进行运算调度的最小单位; 它被包含在进程之中,是进...转载 2020-01-14 17:01:24 · 290 阅读 · 0 评论 -
prototype与__proto__区别
__proto__是每个对象都有的一个属性,而prototype是函数才会有的属性!!!使用Object.getPrototypeOf()代替__proto__!!!一、prototype几乎所有的函数(除了一些内建函数)都有一个名为prototype(原型)的属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以有特定类型的所有实例共享的属性和方法。prototype是通过调...转载 2019-10-12 10:16:50 · 206 阅读 · 0 评论 -
为什么要使用闭包和如何使用闭包
闭包JS中的闭包是一个我们经常遇到的名词,到底什么是闭包?为什么我们要使用闭包?又该如何使用闭包呢?为什么我们需要闭包首先来看一个例子,我们来实现一个计数器。var counter = 0;function add() { return counter += 1;}add();add();add();// 计数器现在为 3现在我们已经达到了目的,可是问题来了,...转载 2019-07-25 14:47:32 · 965 阅读 · 0 评论 -
浏览器的缓存机制
前言这是一篇基础型文章,日常工作除了用用新框架之外,还可以关注基础哈,不要被它们绑架了。今天早读文章由爱屋吉屋@陈江松分享,由 @ 墨白推荐。正文从这开始~浏览器缓存是前端开发中不可避免的问题,对于web应用来说,它是提升页面性能同时减少服务器压力的利器。本文将简单地描述总结下浏览器缓存的知识和应用,希望对自己和大家都有所帮助浏览器缓存类型有两种,强缓存和协商缓存1.强缓存...转载 2019-08-13 14:59:08 · 159 阅读 · 0 评论 -
React 16新特性简介
React 16新特性简介1.render支持Array和String渲染render() { return [ <li key="A">First item</li>, <li key="B">Second item</li>, <li key="C">Third item</li>,...原创 2019-08-13 15:39:19 · 560 阅读 · 0 评论 -
cookie属性详解
https://www.cnblogs.com/tzyy/p/4151291.html在chrome控制台中的resources选项卡中可以看到cookie的信息。一个域名下面可能存在着很多个cookie对象。name 字段为一个cookie的名称。value 字段为一个cookie的值。domain 字段为可以访问此cookie的域名。非顶级域名,如二级域...转载 2019-08-13 15:54:12 · 337 阅读 · 0 评论 -
react-router 路由的实现原理
React Router 是一个基于 React 之上的强大路由库,它可以让你向应用中快速地添加视图和数据流,同时保持页面与 URL 间的同步。本文从两个方便来解析 react-router 实现原理。一:介绍 react-router 的依赖库history;二:使用 history 库,实现一个简单的 react-router 路由。history 介绍history 是一个 Java...转载 2019-08-14 07:43:03 · 292 阅读 · 0 评论 -
小程序与H5的区别
小程序由于刚推出来时开放的能力十分有限,所以在功能展示上会让普通用户感觉和H5一样,并没有什么特别之处,导致了部分人把两者混为一谈。实际上,小程序和H5是两种不同的东西。通过百度词条可以知道,HTML英文全称为Hyper Text Markup Language,即超文本标记语言。而HTML5是超文本标记语言的第五次修订版本。简单来说,小程序是一种应用,运行的环境是微信(App);H5是一...转载 2019-08-14 07:56:40 · 12772 阅读 · 1 评论 -
js中的数据类型
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。typeof 操作符由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof关键字.typeof 123 //Numbertypeof 'abc' //Stringtype...转载 2019-08-14 08:03:05 · 113 阅读 · 0 评论 -
var a=1的过程中js做了什么
又是一年临近年底了,年底制定下了许多计划,正在一点一点实现,最近在开始读《你不知道的Javascript》了,也会慢慢把读书笔记通过博客的形式输出出来,让自己印象更深刻,今天就来聊聊JS中的var a = 2;这行代码发生了什么?编译对于编程语言来说都会有一个编译的过程,一段代码在执行前大多都会经历下面几个步骤:(具体的细节会根据语言特性而异)分词/词法分析(Tokenizing/Le...转载 2019-08-14 08:13:59 · 523 阅读 · 0 评论 -
React.js解决setState的异步问题
由于react中把setState设置为异步操作函数,这有时候会给我们带来以一些问题,下面介绍一下怎么解决这个问题。1. 在setState完成的回调里执行需要的操作setState函数的第二个参数允许传入回调函数,在状态更新完毕后进行调用,譬如:this.setState({ load: !this.state.load, count: this.sta...原创 2019-08-14 17:50:28 · 2115 阅读 · 0 评论 -
react笔记--手动实现一个react-router(简易版)
前言从vue转入到react技术栈有两月了,两个月来一直断断续续学习react的知识。自己也很久没有写过总结了(恐怖的加班),趁元旦假期抽空总结一波(还是要学习地)。习惯了vue简洁的语法和api,再回过来写react组件化,不习惯有木有(怪自己太菜)。文中若有错误点,欢迎各位大佬指正react-router路由的模式选择用过react-router的会比较熟悉react路由...转载 2019-09-01 23:11:47 · 479 阅读 · 0 评论 -
10、TCP和UDP属于计算机网络中的哪一层
传输层协议:TCP协议、UDP协议应用层协议:FTP、HTTP、SMTP网络层协议:IP协议转载 2019-07-19 22:44:29 · 20425 阅读 · 0 评论 -
9、TCP和UDP的区别
TCP:面向连接、传输可靠、用于传输大量数据,传输速度慢,建立连接耗时长。UDP: 面向非连接、传输不可靠、用于传输少量数据,传输速度快。应用:(1)TCP:用于文件传输(FTP HTTP),发送或接收邮件(POP IMAP SMTP),远程登录等。(2)UDP: 即使通信,在线视频,在线语音通话...转载 2019-07-19 22:40:36 · 136 阅读 · 0 评论 -
8、计算机网络中的七层
应用层、表示层、会话层、传输层、网路层、数据链路层、物理层转载 2019-07-19 22:34:51 · 92 阅读 · 0 评论 -
数据结构和算法——Huffman树和Huffman编码
Huffman树是一种特殊结构的二叉树,由Huffman树设计的二进制前缀编码,也称为Huffman编码在通信领域有着广泛的应用。在word2vec模型中,在构建层次Softmax的过程中,也使用到了Huffman树的知识。在通信中,需要将传输的文字转换成二进制的字符串,假设传输的报文为:“AFTERDATAEARAREARTAREA”,现在需要对该报文进行编码。一、Huffman树的基本...转载 2019-03-02 11:36:56 · 197 阅读 · 0 评论 -
TCP的三次握手与四次挥手理解及面试题(很全面)
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数...转载 2019-03-05 21:59:02 · 323 阅读 · 0 评论 -
JS编程——合并两个有序数组
问题描述:已知有两个升序排序的数组arr1,arr2,现要求将其合并为一个单调非递减的数组,并将其输出。解决思路:归并排序时间复杂度:O(n)代码:function mergeArray(arr1,arr2){ var ind1=0; //标记arr1的对比元素的初始索引值 var ind2=0; //标记arr2的对比元素的初始索引值 var arr=[]; //作为输出...转载 2019-03-10 15:24:03 · 421 阅读 · 0 评论 -
关于二叉树的前序、中序、后序三种遍历
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右);中序顺序是BAC(先左后根最后右);后序顺序是BCA(先左后右最后根)。比如上图二叉树遍历结果前序遍历:ABCDEFGHK中序遍历:BDCAEHG...转载 2019-04-14 21:44:03 · 134 阅读 · 0 评论 -
1、谈谈对MVVM开发模式的理解
MVVM分别是:Model View ViewModal该开发模式主要体现在vue.js中M层:模型V层:视图VM层:VM是MVVM思想的核心,因为VM是V和M的调度者。// VM层var vm = new Vue({ el: '#app', data:{ // M层 msg: '你好,vue.js' }})//V层&...原创 2019-07-19 22:04:10 · 813 阅读 · 0 评论 -
2、vue中有哪些指令
1、v-text2、v-html3、v-if4、v-show5、v-for6、v-bing(:)7、v-on(@)转载 2019-07-19 22:06:19 · 219 阅读 · 0 评论 -
3、v-if和v-show的区别
v-show仅仅控制元素的显示方式,将display属性在block和none之间来回切换;而v-if会控制这个dom节点的存在与否。当我们需要经常切换某个元素的显示与隐藏时,使用v-show回更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。...转载 2019-07-19 22:09:17 · 153 阅读 · 0 评论 -
4、简述vue的响应式原理
这里的响应式指的是,当你的数据有变化,vue能够做出响应,然后去重新渲染页面,它采用数据劫持结合发布者---订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter getter,在数据变动时发布消息给订阅者,触发响应的监听回调。...转载 2019-07-19 22:12:13 · 819 阅读 · 0 评论 -
5、前端性能优化
一、减少http请求数量1、使用css精灵图 将多张图片合并成一张图片达到减少http请求,可以通过css的background-image和backgound-position来访问图片内容。2、合并css和js,并进行压缩3、图片采用懒加载二、控制资源文件的加载优先级 一般将css放在头部,js放在底部三、利用浏览器缓存四、减少重排(Reflow) 比...转载 2019-07-19 22:17:51 · 154 阅读 · 0 评论 -
6、网页从输入网址到渲染完成经历了哪些过程
大致可分为七步:1、输入网址2、发送到DNS服务器,并获取域名对应的web服务器对应的ip地址3、与web服务器建立tcp连接4、浏览器向web服务器发送http请求5、web服务器响应请求,并返回指定url的数据6、浏览器下载web服务器返回的数据并解析html源文件7、生成Dom树,解析js和css,渲染页面...转载 2019-07-19 22:21:21 · 1468 阅读 · 0 评论 -
7、用css2和css3分别实现垂直居中和水平居中
css2:水平居中:text-align: center;(水平)margin: 0 auto;(水平)垂直居中:单行内容垂直居中设置相同的height和line-height多行内容垂直居中通过设置上下的paddingvertical-align:center;(垂直居中)绝对定位实现水平垂直居中:top:50%;left:50%;transform: transl...转载 2019-07-19 22:29:26 · 946 阅读 · 2 评论