随笔分类 -  js面试题

摘要:继承在前端逻辑操作中是比较常见的,今天我们就从零开始写一个js的继承方式 在es5中继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上Parent.call(this),在es6中则是先创建父类的实例对象this调用父类的super(),然后再用子类的构造函数修改this,所以无论 阅读全文
posted @ 2020-08-11 21:55 大牛半路出家 阅读(619) 评论(0) 推荐(0)
摘要:前端路由与后端路由的区别 1.什么是路由 路由是根据不同的 url 地址展示不同的内容或页面; 2、什么是前端路由? 很重要的一点是页面不刷新,前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,每跳转到不同的URL都是使用前端的锚点路由. 随着(SPA)单页应用的不断普及,前后端开发分离 阅读全文
posted @ 2020-08-11 21:54 大牛半路出家 阅读(717) 评论(0) 推荐(0)
摘要:$(document).ready和window.onload的区别 $(document).ready和window.onload都是在都是在页面加载完执行的函数,大多数情况下差别不大,但也是有区别的。 $(document).ready:是DOM结构绘制完毕后就执行,不必等到加载完毕。 意思就是 阅读全文
posted @ 2020-08-11 21:52 大牛半路出家 阅读(329) 评论(0) 推荐(0)
摘要:浏览器渲染页面的原理及流程 浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html文件构建DOM树和CSSOM树。构建DOM树期间,如果遇到JS,阻塞DOM树及CSSOM树的构建,优先加载JS文件,加载完毕,再继续构建DOM树及CSSOM树 阅读全文
posted @ 2020-08-11 21:51 大牛半路出家 阅读(255) 评论(0) 推荐(0)
摘要:拖拽事件是js原生的事件,使用时在div上添加 draggable="true" 即可拖动该div 在拖动过程中,将激发多个事件,从而完成拖动 注意: 1.浏览器块(div等)默认禁止拖拽事件的拖放操作,所以若想监听drop操作,需要在dragover中阻止元素发生默认的行为,然后就可以监听到dro 阅读全文
posted @ 2020-08-11 21:36 大牛半路出家 阅读(444) 评论(0) 推荐(0)
摘要:json和jsonp的使用区别 一. 跨域请求的概念 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。 二. json和jsonp JSON是一种基于文本的数据交换方式(不支持跨域),而JSONP是一种非官方跨域数据交互协议。 使用json格式传递数据的客户端代码如下: 1 $ 阅读全文
posted @ 2020-08-11 21:29 大牛半路出家 阅读(315) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/coldfishdt/articles/6117260.html 这个更为详细 阅读全文
posted @ 2020-08-11 21:27 大牛半路出家 阅读(292) 评论(0) 推荐(0)
摘要:在JS中经常需要阻止元素的默认事件。而阻止默认事件的方法都是使用事件对象的preventDefault()方法或者在函数中return false。在最近一次开发中使用preventDefault()方法的时候遇到一个问题,现在才想/猜明白原因,场景是这样的: <a href="https://ww 阅读全文
posted @ 2020-08-11 21:06 大牛半路出家 阅读(835) 评论(0) 推荐(0)
摘要:JS阻止事件冒泡的3种方法 什么是JS事件冒泡? 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类 阅读全文
posted @ 2020-08-11 20:25 大牛半路出家 阅读(674) 评论(0) 推荐(0)
摘要:在做移动app开发的时候,需要每次发送请求,都会有‘菊花’提示,请求发送完毕,就需要关闭loading提示框,不然界面就无法被点击。但是请求有的是成功、有的失败、有的超时,为了不影响整个系统的正常使用,就需要强制关闭提示框,正好利用promise的finally来关闭提示框 案例 var promi 阅读全文
posted @ 2020-08-11 20:23 大牛半路出家 阅读(906) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-08-11 19:37 大牛半路出家 阅读(205) 评论(0) 推荐(0)
摘要:setTimeout与Promise的区别 1,4,3,2 Promise是一个micro task 主线程是一个task micro task queue会在task后面执行 setTimeout返回的函数是一个新的task macro task queue 所以Promise会先于新task执行 阅读全文
posted @ 2020-08-11 19:23 大牛半路出家 阅读(1505) 评论(0) 推荐(0)
摘要:Promise 构造函数是同步执行还是异步执行,那么 then 方法呢? 解题: promise构造函数是同步执行的,then方法是异步执行的 欢迎大佬们补充!! 直接上代码 const promise = new Promise((resolve, reject) => { console.log 阅读全文
posted @ 2020-08-11 19:18 大牛半路出家 阅读(2077) 评论(0) 推荐(0)
摘要:https://www.jianshu.com/p/dc61ea153874 https://blog.csdn.net/endeavor_no1/article/details/83416949 promise出现的目的一为处理JavaScript里的异步,再就是避免回调地狱。 一、promise 阅读全文
posted @ 2020-08-11 19:15 大牛半路出家 阅读(578) 评论(0) 推荐(0)
摘要:1.新增了块级作用域(let,const) 2.提供了定义类的语法糖(class) 3.新增了一种基本数据类型(Symbol) 4.新增了变量的解构赋值 5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。 6.数组新增了一些API,如isArray / from / of 方法;数组实 阅读全文
posted @ 2020-08-10 23:30 大牛半路出家 阅读(247) 评论(0) 推荐(0)
摘要:js取数组最大值的四种方式 var arr = [7,2,0,-3,5]; 1.apply()应用某一对象的一个方法,用另一个对象替换当前对象 var max = Math.max.apply(null,arr); console.log(max) 由于max()里面参数不能为数组,所以借助appl 阅读全文
posted @ 2020-08-10 23:29 大牛半路出家 阅读(278) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/myfirstboke/p/10449272.html 阅读全文
posted @ 2020-08-10 23:27 大牛半路出家 阅读(223) 评论(0) 推荐(0)
摘要:new的原理https://blog.csdn.net/m0_37686205/article/details/89194248 new: 创建一个新对象。 这个新对象会被执行[[原型]]连接。 将构造函数的作用域赋值给新对象,即this指向这个新对象. 如果函数没有返回其他对象,那么new表达式中 阅读全文
posted @ 2020-08-10 23:18 大牛半路出家 阅读(480) 评论(0) 推荐(1)
摘要:JS倒计时setTimeout为什么会出现误差 单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。这与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。 任务队列 单 阅读全文
posted @ 2020-08-10 23:05 大牛半路出家 阅读(1480) 评论(0) 推荐(0)
摘要:call, apply, bind的内部实现原理 https://www.cnblogs.com/renzhiwei2017/p/10364760.html call, apply, bind都是改变函数执行的上下文,说的直白点就是改变了函数this的指向。不同的是:call和apply改变了函数的 阅读全文
posted @ 2020-08-10 22:50 大牛半路出家 阅读(547) 评论(0) 推荐(0)