@c-Ku
2019-05-24T07:03:57.000000Z
字数 1912
阅读 885
面试
该面试为初级前端程序员水平
谈一谈 http 缓存
跨标签页访问 LocalStorage
// A 页面localStorage.setItem('target', 'val');window.addEventListener('storage', (e) => {console.log(e.newValue)})// B 页面localStorage.setItem('target', 'newVal')
<script type="text/javascript" src="path/fuck.js" async></script>
function newObj(obj) {var str, newobj = obj.constructor === Array ? [] : {};if (typeof obj !== 'object') {return;} else {for (var i in obj) {if (typeof obj[i] === 'object') {newobj[i] = newObj(obj[i]);} else {newobj[i] = obj[i];}}}return newobj;}
Promise.resolve(Promise.resolve(123)).then(console.log) 为什么会输出 “123”
内层的 Promise.resolve(123) 返回一个 resolved 的 Promise 对象
外侧 Promise.resolve 解析内侧返回的 Promise 对象会原封不动地返回,
最后一步的thenexecutes the console.log only after the promise has successfully resolved (requires one function call) and implicitly pass the result of the promise to to the console.log function. 相当于.then(val => console.log(val))
Promise.all 与 Promise.race
// Promise.all 方法会在所有 Promise 都 resolved 时返回一个 resolved Promise;// 参数中的 Promise 当有一个 rejected 则返回第一个 rejected Promise。let promise1 = Promise.resolve(3)let promise2 = 42let promise3 = new Promise((resolve, reject) => {setTimeout(resolve, 100, 'foo')})// [3, 42, 'foo']Promise.all([promise1, promise2, promise3]).then(console.log)// Promise.race 方法返回第一个 rejected 或 resolved Promise。let promise1 = new Promise((resolve, reject) => {setTimeout(resolve, 500, 'one');})let promise2 = new Promise((resolve, reject) => {setTimeout(resolve, 100, 'two');})// 'two'Promise.race([promise1, promise2]).then(console.log);
'13688886666'.replace(/^(\d{3})(\d{4})(\d{4})$/, (match, f, m, e) => `${f}xxxx${e}`)
// funcing(param).kidding(me)// 这道题不知道面试官想问什么 就随便答了interface IType {kidding(me: string): void}funcing(param: any): IType {return {kidding(me) {// TODO}}}
axios.get('https://api.coindesk.com/v1/bpi/currentprice.json').then(response => (this.info = response))