js基础复习

74 阅读2分钟

1.如何中断ajax请求? 对于原生的xhr对象来说,取消ajax的关键是调用ajax的.abort方法。 let xhr = new XMLHttpRequest() xhr.open('GET','http://xxxx') xhr.send() xhr.onreadystatechange = function(){ if(xhr.readyState ==4 && xhr.status==200){ console.log(xhr.response) }else{ console.log(xhr.status) } } xhr.abort() 如果是axios的话,中断请求用的是axios.cacelToken()方法

2.什么是同步?什么是异步? 同步任务是指,在主线程上排队执行的任务,只有前一个任务执行完毕才能执行后一个任务 异步任务指的是,不进入主线程而进入任务队列的任务,只有等主线程执行完毕,任务队列开始通知主线程,请求执行任务,该任务才会进入主线程

3.什么是宏任务?什么是微任务? es6规范中,微任务称为jobs,宏任务称为task, 宏任务是由宿主发起的,而微任务是有js自身发起的 两者的区别 a. 谁发起的:宏任务是由宿主(node,浏览器)发起,而微任务是由js发起的 b. 具体事件:宏任务的具体事件:script,setTimeout/setInterval,postmessage等。微任务的事件有Promise,MutationObserve,process.nextTick c. 谁先运行:宏任务后运行,微任务先运行 d. 是否会触发新一轮的tick,宏任务会,微任务不会

4、js中基础数据类型有哪几种?了解包装对象么 js中的基础类型有六种,分别是简单数据类型:Number,String,Undefined,Boolean,Null,复杂数据类型:Object 为了便于操作基本类型的数值,还提供了三种特殊的引用类型:Boolean,String,Number Number的方法,toString(),valueOf(),toLocalString(),toFixed(),toPrecision(),toExponential() String的方法,CharAt(),charCodeAt(),concat(),slice(),substr(),substring(),indexOf(),lastIndexOf(),trim(),toLowerCase(),toUpperCase(),search(),replace() es6中新增了Symbol(用来表示独一无二的值)

5、如何判断this?箭头函数的this是什么? 对于普通函数: this的指向在函数定义的时候是确定不了的,只有在函数执行的时候才能确定this到底指向谁,实际上this指向的是离他最近的上一级调用他的对象 a. 方法调用中,谁调用this指向谁 b. 全局作用域或者普通函数中,this指向全局对象window,(在严格模式中是undefined) c. 在构造函数或者构造函数的原型对象中this指向构造函数的实例 d. call谁就是谁,apply谁就是谁,bind谁就是谁 对于箭头函数 箭头函数中的this是在定义函数的时候就绑定的,而不是在执行函数的时候绑定。他的this指向在定义的时候继承自外层第一个普通函数的this