随笔分类 - 前端面试题!
interview
摘要:在实际的开发中 Vue 中的 计算属性 和 监听器应该使用哪一个?! -1 计算属性有缓存性,计算所得的值如果没有变化不会重复执行 【也就是说:能用计算属性的地方就用计算属性!】【这个也是从简洁性和易用性上面来说!】 计算属性适合一个数据受多个数据影响 【一个值由其他值得来,这些值变了我也要变,适合
阅读全文
摘要:一些有趣的JS测试题! console.log(true + false); console.log([, , ,].length); console.log([1, 2, 3] + [4, 5, 6]); console.log(10, 2); console.log(!!"lvhanghmm")
阅读全文
摘要:sCSS3 被拆分为"模块"。旧规范已拆分成小块,还增加了新的。 一些最重要 CSS3 模块如下: 选择器 CSS3框大小 也就是display: flex;和他的朋友们!最好的两个朋友应该是justify-content和align-items 使用 CSS3 box-sizing 属性 CSS3
阅读全文
摘要:JS手写面试题 比较字符大小 function sort2(str) { return str // split 作用是将字符串转换成数组! .split("") .sort((a, b) => { return b.charCodeAt(0) - a.charCodeAt(0); }) // jo
阅读全文
摘要:JS手写面试题 字符串拼接 function toString(map) { return Object.keys(map).map((item, index) => { return (item = `${item}=${map[item]}`); }) .join("&"); } // 原来的函
阅读全文
摘要:JS手写面试题 利用 XMLHttpRequest 手写 AJAX 实现 题目描述:利用 XMLHttpRequest 手写 AJAX 实现 实现代码如下: const getJSON = function (url) { return new Promise((resolve, reject) =
阅读全文
摘要:JS手写面试题 类数组转化为数组的方法 题目描述: 类数组拥有 length 属性 可以使用下标来访问元素 但是不能使用数组的方法 如何把类数组转化为数组? 实现代码如下: const arrayLike = document.querySelectorAll("div"); // 1、扩展运算符
阅读全文
摘要:JS手写面试题 Promise 以及相关方法的实现 题目描述: 手写 Promise 以及 Promise.all Promise.race 的实现 实现代码如下: class MyPromise { constructor(fn) { // 表示状态 this.state = "pendings"
阅读全文
摘要:JS手写面试题 防抖、节流 题目描述:手写防抖节流 实现代码如下: 防抖: 防抖是指在一定的时间内再次触发此事件,会清空上次的事件重新开始,如果制定的时间内没有再次触发,那么这个事件才会执行 例如: input输入信息,不可能每次按下都发起一个ajax请求,可以等一段时间内不输入了之后在发起请求 /
阅读全文
摘要:手写JS面试题 冒泡排序 -- 时间复杂度 n^2 题目描述:实现一个冒泡排序 实现代码如下: 最佳实践应该是在函数中加上类型判断传入的参数是否为一个数组! function bubbleSort(arr) { // 缓存数组长度 const len = arr.length; // 外层循环用于控
阅读全文
摘要:JS手写面试题 深拷贝(考虑到复制 Symbol 类型) 题目描述:手写实现 深拷贝 实现代码如下: function isObject(val) { return typeof val 'object' && val !== null; } function deepClone(obj, hash
阅读全文
摘要:手写JS面试题 call apply bind 实现 题目描述:手写 call apply bind 实现 实现代码如下: Function.prototype.myCall = function (context, ...args) { if (!context || context null)
阅读全文
摘要:JS手写面试题 寄生组合继承 题目描述:实现一个你认为不错的 js 继承方式 实现代码如下: function Parent(){ this.name = name; this.say = () => { console.log(111); }; } Parent.prototype.play =
阅读全文
摘要:JS手写面试题 数组扁平化 题目描述:实现一个方法使多维数组变成一维数组 最常见的递归版本如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <s
阅读全文
摘要:手写JS面试题 数组去重! function uniqueArr(arr) { return [...new Set(arr)] } console.log(uniqueArr([1, 1, 1, 1, 2])); 请忽略下面的内容! 【投稿说明】 博客园是面向开发者的知识分享社区,不允许发布任何推
阅读全文
摘要:你怎么理解vue中的diff算法? 源码分析1:必要性,lifecycle.js-mountComponent() 源码分析2:执行方式,patch.js-patchVnode() 源码分析3:高效性,patch.js-updateChildren() 测试代码: <!DOCTYPE html> <
阅读全文
摘要:你知道vue中key的作用和工作原理吗?说说你对它的理解。 原码中找答案:src\corelvdom\patch.js-updateChildren() 测试代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me
阅读全文
摘要:2. Vue组件data为什么必须是个函数而Vue的根实例则没有此限制? 源码中找答案:src\core\instance\state.js - initData() 函数每次执行都会返回全新data对象实例 测试代码如下 <!DOCTYPE html> <html lang="en"> <head
阅读全文
摘要:v-if和v-for哪个优先级更高?如果两个同时出现,应该怎么优化得到更好的性能? 示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue事件处理</title> </head> <body> <
阅读全文