// flatern 是摊平数组 function flat(arr) { const isDeep = arr.some(item => item instanceof Array) if(!isDeep){ return arr } const result = Array.prototype.concat.apply([],arr) return flat(result) } const res = flat([1, 2, [3, 4], 5, [6, 7, [8, 9]]]) conso…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>手写ajax</title> </head> <body> <script> const xhr = new XMLHttpRequest(); xhr.open('GET', '/api', false); xhr.on…
//拆分字符串形式 function queryToObj() { const res = {} const search = location.search.substr(1);//去掉前面的"?" search.split('&').forEach(paramStr => { const arr = paramStr.split('=') const key = arr[0] const val = arr[1] res[key] = val }) return re…
class jQuery { constructor(selector) { const result = document.querySelectorAll(selector) console.log(result) const length = result.length for (let i = 0; i < length; i++) { this[i] = result[i] } this.length = length } get(index) { return this[index]…
var arr = [1,2,3,4,5] console.log(arr.slice(1,4)) console.log(arr) Function.prototype.bind1 = function(){ // arguments是个列表不是数组,将参数拆解为数组 const args = Array.prototype.slice.call(arguments) // 获取this(数组第一项),shift方法是删除第一项返回第一项值 const t = args.shift() //…
前端面试题之Promise问题 前言 在我们日常开发中会遇到很多异步的情况,比如涉及到 网络请求(ajax,axios等),定时器这些,对于这些异步操作我们如果需要拿到他们操作后的结果,就需要使用到回调函数.拿请求来说,如果我们需要拿到请求回来的数据我们就需要利用回调函数(见代码片段1),以下所有的请求都是使用jQuery的ajax模拟. 点击查看代码片段1 // 代码片段1 $.ajax({ url: 'url', type: 'post', data: { 参数1: 值1, 参数2: 值2…
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 JavaScript编程题1.实现输出document对象中所有成员的名称和类型:2.如何获得一个DOM元素的绝对位置?(获得元素位置,不依赖框架)3.如何利用JS生成一个table?4.实现预加载一张图片,加载完成后显示在网页中并设定其高度为50px,宽度为50px:5.假设有一个4行td的table,…
前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因为其他方面的面试题不少,但是前端还真不多. 当然最后还是为了自己以后面试时候可以得心应手一点,整理时候有些会解答,有些可能就不解答了,好了,开始正题吧. 这家公司在成都来说还是不错的,因为2个月前拒了3个offer,现在找工作有点囧....发现就那么几家公司了,我都不敢乱投简历了. 一来怕面试不过,…
1.JS的基本数据类型和引用数据类型有哪些,两者区别 基本数据类型->string.number.Boolean.null.undefined.symbol 引用数据类型->array.object.function 基本数据类型是保存在栈内存中,操作的是值,改变源数据不会影响新的变量 引用数据类型保存在堆内存中,操作的是地址,改变其中一个会影响另一个 2.数据类型中为假的有哪些? false (布尔型) 0(数值型) null(定义空的或者不存在,现在没有,将来可能有) undefined(…
(1)typeof 和 instanceof 1.typeof 对于基本数据类型(boolean.null.undefined.number.string.symbol)来说,除了 null 都可以显示正确的类型:对于对象来说,除了函数都会显示 object. 2.instanceof 是通过原型链来判断的.可以判断一个对象的正确类型,但是对于基本数据类型的无法判断. 3.instanceof能正确判断对象的原理: 通过判断对象的原型链中是不是能找到类型的原型 [].__proto__ == A…