猿辅导前端一面面经
8/29
1.ES6的知识了解哪些;
2.const,let和var的区别,追问const声明对象,对象的属性还可修改吗?就是obj的name可以修改吗
const obj = {name: 'abc'} obj.name = 1233简介一下promise给代码写输出,解释:
Promise.reject(1) .then(() => console.log(1)) .catch(() => console.log(2)) .then(() => console.log(3)) .finally(() => console.log(4)) //结果 2,3,4
然后问了一首promise的API有哪些。
***循环,给代码写输出,解释:
const promise = new Promise((resolve, reject) => { console.log(1); resolve(); console.log(2); }) setTimeout(() => console.log(3)) promise.then(() => { console.log(4); }) console.log(5); //结果:1 2 5 4 35问箭头函数和普通函数的区别,给代码写输出,解释原理,问this指向:
var obj = { test: '123', f1: () => { console.log(this.test) }, f2: function () { console.log(this.test) }, } obj.f1() // undefined obj.f2() // 123 new obj.f1() // 报错 new obj.f2()6js的作用域链和原型链
7写一个简单的原型链继承
8最后就是代码题
实现一个函数给一个url添加参数,如果参数已经存在则替换,否则就是添加
function addParamToUrl(key, value, url)