随笔分类 - 面试常见问题总结
作用域&变量提升&闭包&原型&继承__代码输出题
摘要:1. 局部作用域中的意外全局变量 (function(){ var x = y = 1; })(); var z; console.log(y); console.log(z); console.log(x); **答案:**1,undefined,报错 Uncaught ReferenceErro
this 代码输出题
摘要:1. 简单函数调用this问题 function foo() { console.log( this.a ); } function doFoo() { foo(); } var obj = { a: 1, doFoo: doFoo }; var a = 2; obj.doFoo() 答案: 2。
异步&事件循环____代码输出题
摘要:一、Promise 1. const promise1 = new Promise((resolve, reject) => { setTimeout(() => { resolve('success') }, 1000) }) const promise2 = promise1.then(() =
浏览器的缓存机制
摘要:1. 介绍 浏览器的缓存机制指的是通过在一段时间内保留已接收到的 web 资源的一个副本,如果在资源的有效时间内,发起了对这个资源的再一次请求,那么浏览器会直接使用缓存的副本,而不是向服务器发起请求。使用 web 缓存可以有效地提高页面的打开速度,减少不必要的网络带宽的消耗。 2. 缓存机制的分类
JS--继承,多种继承方式
摘要:1. 原型链继承 // 原型链继承 function Parent(){ this.name = ["原型链继承"]; } // 原型上挂载方法 Parent.prototype.getName = function(){ console.log(this.name); } function Chi
Vue的异步渲染和 nextTick
摘要:1. 什么是异步渲染? **环境补充:**当数据在同步变化的时候,页面订阅的响应操作为什么不会与数据变化完全对应,而是在所有的数据变化操作做完之后,页面才会得到响应,完成页面渲染。 从一个例子体验一下异步渲染机制: import Vue from 'Vue' new Vue({ el: '#app'
JS---节流和防抖的实现
摘要:1. 函数防抖(debounce) 概念: 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 实现: function debounce(fn, wait){ let timer = null; return function (){ let context = this;// 获
手写数组方法 reduce 和 map
摘要:1. 手写数组的 reduce 方法 Array.prototype.myReduce = function (fn, init) { if (typeof fn !== 'function') { throw new Error(`${fn} is not a function`) } // 当前
JS之深浅拷贝
摘要:1. 技巧性深浅拷贝 1.1 数组的浅拷贝 数组,我们可以利用数组的一些方法比如:slice、concat 返回一个新数组的特性来实现拷贝。 let arr = ['old', 1, true, null, undefined, { old: "old" }]; let new_arr = arr.
动态规划
摘要:动态规划 1. 爬楼梯问题 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法? 1.1 递归方法分析 由分析可知,假设我们只差最后一步就能走上第10级阶梯,这个时候一共有两种情况,因为每一步只允许走1级或2级阶梯, 因此分别为从8级阶梯和从
计算机网络--面试题
摘要:1. Post 和 Get 的区别? Post 和 Get 是 HTTP 请求的两种方法。 (1)从应用场景上来说,GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景,比如说请求一个网 页。而 Post 不是一个幂等的请求,一般用于对服务器资源会产生影响的情景。比如注
JS面试题⑥
摘要:1. 如何封装一个 javascript 的类型判断函数? function getType(value) { // 判断数据是 null 的情况 if (value null) { return value + ""; } // 判断数据是引用类型的情况 if (typeof value "obj
JS面试⑤
摘要:1. js 中的深浅拷贝实现? 相关资料: // 浅拷贝的实现; function shallowCopy(object) { // 只拷贝对象 if (!object || typeof object !== "object") return; // 根据 object 的类型判断是新建一个数组还
JS面试④
摘要:1.谈一谈浏览器的缓存机制? 浏览器的缓存机制指的是通过在一段时间内保留已接收到的 web 资源的一个副本,如果在资源的有效时间内,发起了对这个资源的再一次请求,那么浏览器会直接使用缓存的副本,而不是向服务器发起请求。使用 web 缓存可以有效地提高页面的打开速度,减少不必要的网络带宽的消耗。 we
JS面试③正则表达式
摘要:1.简单入门 //正则表达式 let reg1=/abc/; let reg2=new RegExp("abc"); let str="cdadabcjh"; let str1="h"; let str2="cdadacjh"; console.log(reg1.test(str)); //true
JS面试---类型转换②
摘要:类型转换 1. 其他值到字符串的转换规则? 规范中定义了抽象操作 ToString ,它负责处理非字符串到字符串的强制类型转换。 (1)Null 和 Undefined 类型 ,null 转换为 "null",undefined 转换为 "undefined", (2)Boolean 类型,true
JS面试题①
摘要:1. 介绍 js 的基本数据类型。 js 一共有六种基本数据类型,分别是 Undefined、Null、Boolean、Number、String,还有在 ES6 中新增的 Symbol 和 ES10 中新增的 BigInt 类型。 Symbol 代表创建后独一无二且不可变的数据类型,它的出现我认为
面试题②
摘要:1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型(怪异盒模型)有什么不同的? 两者盒模型都是由四个部分组成的,分别是margin、border、padding和content。 标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同。标准盒模型的width和
面试总结①
摘要:1. 前端如何进行性能优化? 答: 前端性能优化主要是为了提高页面的加载速度,优化用户的访问体验。我认为可以从这些方面来进行优化。 第一个方面是页面的内容方面 (1)通过文件合并、css 雪碧图、使用 base64 等方式来减少 HTTP 请求数,避免过多的请求造成等待的情况。 (2)通过 DNS
JS中隐式转换面试问题总结
摘要:隐式转换 1.题目: //1. console.log(1 + "true"); console.log(1 + true); console.log(1 + undefined); console.log(1 + null); //2. console.log("2" > 10); console
1