自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 采用javascript编写排序算法及其时间复杂和空间复杂度(冒泡、快排、直接插入、归并排序等)

正值秋招季,对排序算法进行了总结。冒泡排序基本思想:对相邻的元素进行两两比较,顺序相反则交换。冒泡排序的平均时间复杂度为 O(n²) ,最坏时间复杂度为 O(n²) ,最好的时间复杂度是O(n),空间复杂度为 O(1) ,是稳定排序。function swap(arr, index1, index2) { var temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp;}function bubb

2020-08-25 21:57:09 703

原创 关于ES6中for...of和for..in得问题

整理了一下关于ES6中for…in和for…of得笔记for…in…循环读取键名,for…of…循环读取键值。如果要通过for…of…循环,获取数组索引,可以借助数据实例的entries方法和keys方法。set 、map也可使用for…of…循环。首先,遍历的顺序是按照各个成员被添加进数据结构的顺序。其次,Set 结构遍历时,返回的是一个值,而 **Map 结构遍历时,返回的是一个数组,**该数组的两个成员分别为当前 Map 成员的键名和键值。计算生成的数据结构:ES6 的数组、Set、Map

2020-08-04 23:22:41 523

原创 浏览器缓存cookie、session、localstorage、sessionstorage的区别

0前言Cookie是服务器保存再浏览器的一小段文本信息,一般来说,单个域名设置的 Cookie 不应超过30个,每个 Cookie 的大小不能超过4KB。浏览器的同源策略规定,两个网址只要域名相同,就可以共享cookie。(不要求协议相同)cookie不是理想的客户端存储机制,容量很小,缺乏操作接口,影响性能。客户端存储应该使用web storage API和IndexedDB。只有那些每次请求都需要让服务器知道的信息才放cookie里面。cookie的设置客户端发送请求到服务端;当服务端收到

2020-08-03 22:05:54 598

原创 浏览器渲染、重流、重绘等操作

0前言javascript:协议的常见用途是书签脚本 Bookmarklet。由于浏览器的书签保存的是一个网址,所以javascript:网址也可以保存在里面,用户选择这个书签的时候,就会在当前页面执行这个脚本。为了防止书签替换掉当前文档,可以在脚本前加上void,或者在脚本最后加上void 0。<a href="javascript: void new Date().toLocaleTimeString();">点击</a><a href="javascript: ne

2020-08-03 12:17:43 322

原创 关于节流和防抖

前几天面试虾皮信息科技的秋招面试,让我明白了,任何东西都不能靠死记硬背,一定要加以理解,这样背出来来的东西没有意义不说,而且也不会记得深刻。其中,面试问了我一个关于节流和防抖的问题,其实这个问题在面试之前我也有准备,但是在面试的时候,回答的总是模糊不清,就像是在背答案一样。所以我决定做任何事情一定要明白其原理。在前端开发中,经常需要绑定一些持续触发的事件,如resize、scroll、mousemove等等,但有些时候并不希望在事件持续触发的过程中那么频繁地去执行函数。此时我们可以用防抖和节流来解决此

2020-07-29 17:09:11 603

原创 JavaScript中闭包概念以及应用分析

在《你所不知道的javaScript》中闭包的定义:闭包是指有权访问另一个函数作用域中变量的函数。我理解的:预先定义一个环境,使得表达式中的每一个自由变量都得到了一个绑定值,开放表达式变成了一个闭合表达式,构建了一个闭包。进一步:闭包=函数+使得函数中每一个自由变量都获得绑定值的一个环境。函数是包含自由变量的函数,环境是使所有自由变量都获得绑定值的环境。所以得出闭包就是:函数和对其周围状态(词法环境)的引用捆绑在一起构成闭包。(function fout(){const a=1;func

2020-07-29 14:38:49 308 1

转载 分布概率分布

分布概率分布

2020-10-10 08:22:24 162

原创 总结:js数组常用API操作,并且哪些可以改变原数组,哪些不可以改变

数组常用API操作arr.reduce()var arr = [1,2,3,4,5];var reduceArr = arr.reduce(function(pre,cur,index,array){return prev + cur;})arr.filter(callback)数组过滤,返回满足条件的元素组成的一个新数组arr.map(callback)对数组每一项进行计算处理,返回一个新数组。arr.some(function(item,index,array){})依次执行数组元素,如

2020-09-09 09:39:58 1641 1

原创 总结javascript加减乘除精度计算实现(已测试,保证正确)

加减乘除精度计算问题加法精度function add(...val) { let max = 0 let count = 0 for (let i = 0; i < val.length; i++) { const strVal = val[i].toString() const index = strVal.indexOf('.') let num = 0

2020-09-09 08:41:20 743 1

原创 从输入URL到页面展示的详细过程(面试必考)

这是常考点,仔细理理发现里面涉及到的知识点还是非常的多。这个问题在我秋招已经遇到过无数次了。下面我就来个大概的总结。1)首先在地址栏输入一个url,查找一下有没有历史记录,有没有缓存,如果有就展示页面。2)DNS解析。首先浏览器会查看本地硬盘的hosts文件,看看其中有没有和这个域名对应的规则,如果有就直接使用Hosts文件里面的Ip地址。如果没有找到对应的IP地址,浏览器会发出一个DNS请求到本地DNS服务器。本地DNS服务器会首先查询缓存记录,如果有就直接返回结果,此过程是递归查询,如果没有,本

2020-09-09 00:14:14 1156

转载 HTTP状态码200、400、403、500等

1XX:通知1XX系列响应代码仅在与HTTP服务器沟通时使用。• 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)• 101 - Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)2XX 成功· 200 OK,表示从客户端发来的请求在服务器端被正确处理· 204 No content,表示请求成功,但响应报文不含实体的主体部分· 206 Partial Content,进行范围请求3X

2020-08-31 08:55:17 1363

原创 Ajax实现原理及步骤

Ajax实现原理及步骤Ajax有别于传统web开发服务器请求的区别所在:Ajax是异步请求数据。(我当时面试商汤科技竟然没有想到这点,害)ajax所包含的技术1.使用CSS和XHTML来表示。2. 使用DOM模型来交互和动态显示。3.使用XMLHttpRequest来和服务器进行异步通信。(最重要)4.使用javascript来绑定和调用。Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。(

2020-08-24 22:14:02 279

转载 几种常见的CSS布局

转自:https://juejin.im/post/6844903710070407182#heading-12

2020-08-19 20:25:21 116

转载 面试必备:2020 Vue经典面试题总结(含答案)

前端真的是要学习的太多了觉得不错,转载zi:https://blog.csdn.net/sunhuaqiang1/article/details/89450535?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2alltop_click~default-3-89450535.nonecase&utm_term=vue%E9%9D%A2%E8%AF%95...

2020-08-18 11:25:14 1230

转载 58道Vue常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度

58道Vue常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度:现在正在秋招,看到一篇不错的文章。文章来源:https://mp.weixin.qq.com/s/TegETQjdrvbzu1rV0a4QKg

2020-08-17 09:36:35 134

原创 关于几种异步编程的方法

异步所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。连续的执行就叫做同步。异步编程的方法ES6之前的回调函数(会出现回调地狱)事件监听发布/订阅Promise 对象(代码冗余)ES6新增:Generator函数async/await协程有点像函数,又有点像线程。它的运行流程大致如下:第一步,协程A开始执行。第二步,协程A执行到一半,进入暂停,执行权转移到协程B。第三步,(

2020-08-05 12:22:28 180

原创 什么是模块化开发?模块化开发有哪些方法

前几天面试虾皮问了什么是模块化,没有解答清除。1.什么是模块化?简单地说,模块化就是有组织地把一个大程序拆分成独立并互相依赖的多个小文件(模块)。模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等)2.为什么要模块化?ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件有组织地划分成小块,并管理之间地依赖。但是模块化的思想一直存在。因为用Javascript写的代码越来越庞大,而网页也越来越像桌面APP。如此庞杂的代码,如果不进行模块化,就

2020-08-04 16:20:13 5660

原创 用友集团前端面经整理及答案

用友集团前端面经1.==和===的区别==用于一般比较,"==="用于严格比较。“==”在比较的时候会进行强制类型转换,“===”严格比较,不会进行强制类型转换,只要类型不匹配就返回false。2.float和定位有什么区别1.float定位关键词是margin/padding,position定位关键词是left/right/top/bottom。2.float脱离文档流,在文中不占位置。3.float是相对定位,会随着浏览器的大小和分辨率的变化而改变,而position就不行。最大的区别

2020-08-04 15:49:10 1517 1

原创 关于前端VUE的一些常见面试题

token机制前端向后端发送请求时,后端随机生成一个token字符串,服务端把这个token发送给前端,前端找一个位置存储起来,前端再次发送登录请求时,携带这个token发送给后端,后端对携带过来的token进行校验,根据校验结果,选择是否响应前端请求的数据WebPack和Grunt以及Gulp相比有什么特性Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack可以替代Gulp/Grunt类的工具。Grunt和Gul

2020-08-04 09:18:53 289

原创 javaScript事件任务

javaScript是一个单线程执行的语言。指同时只能运行一个任务。程序里面所有的任务,可以分成两类:同步任务(synchronous)和异步任务(asynchronous)。同步任务:指那些没有被引擎挂起,在主线程上排队执行的任务,执行完毕,才能执行后一个任务。异步任务:是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。(一般是以回调函数的形式)事件循环:首先,主线程会去执行所有的同步任务。等到同步任务全部执行完,就会去看任务队列里面的异步任务。如果满足条件,那么异步任务就重新进入主线程

2020-08-03 09:43:55 257

转载 Object对象的相关操作方法

总结一下Object对象的相关操作方法。1.Object.getPrototypeOf()Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法。// 空对象的原型是 Object.prototypeObject.getPrototypeOf({}) === Object.prototype // true// Object.prototype 的原型是 nullObject.getPrototypeOf(Object.prototype) === nul

2020-08-02 15:23:26 457

转载 javascript原型、继承

通过构造函数为实例对象定义属性,虽然很方便,但是有一个缺点:就是同一个构造函数的多个实例之间,无法共享属性,从而造成资源浪费。可以通过Javascript的原型对象(prototype)解决。1.prototype属性的作用JavaScript 继承机制的设计思想就是,原型对象的所有属性和方法,都能被实例对象共享。也就是说,如果属性和方法定义在原型上,那么所有实例对象就能共享,不仅节省了内存,还体现了实例对象之间的联系。JavaScript 规定,每个函数都有一个prototype属性,指向一个对象

2020-08-02 14:49:34 186

转载 javascript中的this关键字

前言在Javascript中,一切皆对象,运行环境也是对象,所以函数都是在某个对象之中运行,this就是函数运行时所在的对象(环境)。this的使用场景1.全局环境。全局环境中使用this,它指的就是顶层对象window。this === window // truefunction f() { console.log(this === window);}f() // true不管是不是在函数内部,只要是在全局环境下运行,this就是指顶层对象window。2.构造函数构造函数

2020-08-02 11:12:09 210

转载 构造函数和New之间的操作

前言Javscript是一门面向对象编程的语言,将负责的关系抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。面向对象的优点:具有灵活、代码可复用、高度模块化等特点,容易维护开发,比起由一系列函数或指令组成的传统的过程式编程,OOP更适合多人合作的大型软件项目。**1.对象:**对象是单个实物的抽象对象是一个容器,封装了属性(状态)和方法(行为)。构造函数对象通常需要一个模板(构造函数)生成。Javascript语言的对象体系,不是基于“类”的,而是基于构造函数和

2020-08-01 12:05:41 452

原创 深入理解ES6之Set集合和Map集合

前言Set集合是一种无重复元素的列表,不会像访问数组元素那样逐一访问每个元素,通常时是用于检测给定值在某个集合中是否存在。Map集合内含多组键值对,集合中每个元素分别存放着可访问的键名和对应的值,Map经常用于缓存频繁取用的数据。ES6中的Set集合和Map集合Set集合和Weak Set集合创建set集合并添加元素set集合forEach()方法将set集合转换为数组Weak Set集合Map集合和Weak Map集合Map集合支持的方法Map集合初始化方法Map集合forEach()方法Weak

2020-07-31 16:12:46 271

原创 深入理解ES6之函数的箭头函数、不定参数、尾调用等

函数是所有编程语言的重要组成部分。深入理解ES6之函数章节函数形参的默认值处理无命名参数明确函数的多重用途箭头函数尾调用优化函数形参的默认值在ES5中模拟默认参数。<script> function makeRequest(url,timeout,callback){ timeout = timeout || 2000; callback = callback || function(){} // 函数其余部分 }</script>这

2020-07-30 16:14:19 1332

转载 js之防抖

写的很棒的一篇博文,转给大家一起学习js之防抖

2020-07-30 14:22:12 205

原创 深入理解ES6之块级作用域绑定

块级作用域绑定var声明及变量提升机制在函数作用域或者全局作用域中通过关键字var声明的变量,无论在哪里声明,都会被当成在当前作用域顶部声明的变量,这就是提升(hosting)机制。看一段代码:<script> function getValue(condition){ if(condition){ var value = "blue"; // 其他代码 return value; }else{ // 此处可访问变量value

2020-07-29 16:17:13 210

空空如也

空空如也

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

TA关注的人

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