12 2018 档案
摘要:1、DNS预解析 可以通过预解析的方式来预先获取域名所对应的IP。 2、浏览器缓存 强缓存与协商缓存。 强缓存表示在缓存期间不需要请求。 如果缓存过期了,我们就可以使用协商缓存来解决问题。协商缓存需要请求,如果缓存有效会返回 304。 协商缓存需要客户端和服务端共同实现。 3、预加载 有些资源不需要
阅读全文
摘要:含义:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。 因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。 柯里化一个求和函数 var add = function (a, b,
阅读全文
摘要:React 和 Vue 有许多相似之处,它们都有: * 使用 Virtual DOM * 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。 * 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。 不同点: 优化: React当某个组件的状态发
阅读全文
摘要:1.什么是事件循环? JavaScript为单线程执行的,所以是从上到下依次执行,js分为两个任务,宏任务和微任务 首先执行宏任务(第一次就是执行所有的同步代码),再执行所有的微任务,执行完毕之后再次执行 宏任务,执行完毕再次执行所有的微任务,也就是: 宏任务 --> 微任务 --> 宏任务 -->
阅读全文
摘要:工作原理:客户机与服务器建立连接之后,发送一个请求给服务器,请求格式为统一资源标识符、协议版本号。(请求行、请求头、请求体),服务器接收请求后给予相应,包括相应行,响应头,响应体。 信息交换分为四个过程:建立连接,发送请求信息,发送相应信息,关闭连接。
阅读全文
摘要:1、什么是闭包? 能够访问其他函数内部的变量或者方法 2、闭包的作用 能够访问局部变量或者方法 能够在for循环中保留i值 3、闭包的危害 会占用内存空间,会在IE浏览器造成内存的泄露。 解决方法:当不用时销毁 =null 4、什么是垃圾回收机制 当一个函数内部的一些方法或者属性在没有全局调用的时候
阅读全文
摘要:101、请简述prototype、__proto__ constructor三者的关系 1、prototype: 每一个函数都有一个prototype这个属性,而这个属性指向一个对象,这个对象我们叫做原型对象 作用: a、节约内存 b、扩展属性和方法 c、可以实现类之间的继承 2、__proto__
阅读全文
摘要:1、jquery中attr与prop的区别 attr:是通过setAttribute 和 getAttribute来设置的使用的是DOM属性节点 prop:是通过document.getElementById()[name] = value 来实现的,通常用来设置checked selected a
阅读全文
摘要:81、ES6的Symbol的作用是什么? ES6引入了一种新的原始数据类型Symbol,表示独一无二的值 82、ES6中字符串和数组新增了那些方法 字符串 1、字符串模板 2、includes 3、startswith 4、endsWith 等 数组 1、Array.of 2、Array.from
阅读全文
摘要:91、ajax的优点 a、提高运行效率 b、提高用户体验,让多件事情同时发生 c、在不刷新页面的情况下可以对局部数据进行加载和刷新 a、提高运行效率 b、提高用户体验,让多件事情同时发生 c、在不刷新页面的情况下可以对局部数据进行加载和刷新 92、ajax请求的流程 1、创建通信对象 a、IE7及其
阅读全文
摘要:071、如何组织事件冒泡 利用事件对象属性:stopPropagation 和 cancelBubble stopPropagetion是一个方法:e.stopPropagetion(); cancelBubble的值是一个常量:e.cancelBubble = true; 利用事件对象属性:sto
阅读全文
摘要:051、如何打印当前浏览器的版本等信息 navigator.userAgent 返回包含浏览器版本等信息的字符串 ,常用于判断浏览器版本及使用设备(PC或者移动端 navigator.userAgent 返回包含浏览器版本等信息的字符串 ,常用于判断浏览器版本及使用设备(PC或者移动端 052 、在
阅读全文
摘要:061、如何获取父级节点、上一个子级节点、下一个子级节点 nextElementSibling 后一个兄弟元素 (如果没有是null) previousElementSibling 前一个兄弟元素 (如果没有就是null) parentNode 获取当前节点的父节点 nextElementSibli
阅读全文
摘要:031、数组常用的一些方法 1、push: 在数组最后添加一个或者多个元素,返回添加后数组的长度 2、pop: 从数组最后取出一个元素,返回的是数组的最后一个元素(取出的元素) 3、unshift: 和push相反,从数组的第一位的前面开始添加 4、shift: 和pop相反从数组的第一位开始取,返
阅读全文
摘要:041、在js中如何用方法将10进制的字符转换成16进制和8进制 数字.toString(16) 数字.toString(8) 数字.toString(16) 数字.toString(8) 042、如何创建时间对象 new Date() 043、如何创建未来或者过去的时间对象 var d = new
阅读全文
摘要:021、定义函数的几种方式 1、关键字函数:function fnName(){}; 2、字面量函数:var fn = function(){}; 3、构造函数:var fn = new Function() 1、关键字函数:function fnName(){}; 2、字面量函数:var fn =
阅读全文
摘要:011、if语句的优化 1、把次数多的条件和执行结果放到最前面 2、减少第一次无用的判断,可以用嵌套判断 3、判断语句禁止出现三次嵌套 1、把次数多的条件和执行结果放到最前面 2、减少第一次无用的判断,可以用嵌套判断 3、判断语句禁止出现三次嵌套 012、谈谈你对switch的理解 1、switch
阅读全文
摘要:001、浅谈堆和栈的理解? js变量存储有栈存储和堆存储,基本数据类型的变量存储在栈中,引用数据类型的变量存储在堆中 引用类型数据的地址也存在栈中 当访问基础类型变量时,直接从栈中取值。当访问引用类型变量时,先从栈中读取地址,在根据地址到堆中取出数据 js变量存储有栈存储和堆存储,基本数据类型的变量
阅读全文