自我介绍
项目
Vue nextTick 的作用
讲讲 js 的技术
prototype constructor
css 清除浮动
css 水平垂直居中
手撕代码:二分查找和快排
// 二分查找 function binarySearch(arr, target) { if (arr.length < 1) return false; let mid = arr.length >> 1; if (arr[mid] === target) { return true; } else if (arr[mid] < target) { return binarySearch(arr.slice(mid + 1), target); } else { return binarySearch(arr.slice(0, mid), target); } } // 快排 function quickSort(arr, l = 0, r = arr.length - 1) { if (l >= r) return; let baseId = l; let baseVal = arr[baseId]; let [i, j] = [l, r]; while (i < j) { while (j > i && arr[j] >= baseVal) { j--; } while (i < j && arr[i] <= baseVal) { i++; } [arr[i], arr[j]] = [arr[j], arr[i]]; } [arr[baseId], arr[i]] = [arr[i], arr[baseId]]; quickSort(arr, 0, i - 1); quickSort(arr, i + 1, r); return arr; } console.log(quickSort([3, 1, 5, 2, 6, 4]));
反问
自我介绍
聊项目
Vue 双向数据绑定原理
怎么监听数组呢 数组的 push 方法可以监听到,为什么通过下标的方法修改无法监听呢
vue 对数组的 7 个方法(push、pop、shift、unshift、splice、sort、reverse)实现了响应式
其实是可以监听到数组的变化的,根据尤大大的回答是性能代价和获得的用户体验收益不成正比
,参考文章 vue 为什么不能检测数组的变化
XSS 防御 对用户输入校验的时候需要对什么进行编码 那将< >
转码成什么呢
& 编码成 & < 编码成 < > 编码成 > " 编码成 " ' 编码成 '
CSRF 防御措施 token 是客户端还是服务端产生的 怎么传给客户端呢
手撕代码 冒泡排序 异步加载图片 在数组的 push 方法执行前打印 123,怎么实现
// 冒泡排序 function bubbleSort(arr) { for (let i = arr.length - 1; i >= 0; i--) { for (let j = 0; j < i; j++) { if(arr[j] > arr[j+1]) { [arr[j], arr[j+1]] = [arr[j+1], arr[j]]; } } } return arr; } console.log(bubbleSort([3,6,2,5,1,4])); // 异步加载图片 function loadImage(url) { return new Promise((resolve, reject) => { const image = new Image(); image.src = url; image.onload = function () { document.body.appendChild(image); resolve('ok'); } }) } let p = Promise.resolve(); const imgs = [url1, url2, url3, ..., urln]; for (let url of imgs) { p.then(() => loadImage(url)) } // 一直没理解意思,反正下面的代码能实现,但面试官的意思是要是我换成shift splice的话你还需要重新写 let flag = true; Array.prototype.push = function (...args) { if (flag) { flag = !flag; console.log(123); return this.push(...args); } } let arr = [1,2,3]; arr.push(4,5) console.log(arr);
反问
本文作者:前端小毛
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!