前端面试题
救救我的黑眼圈
迷茫之路
展开
-
说一下JavaScript事件流
关于JavaScript事件流是指浏览器中页面接收到事件的顺序. 事件流原理如下图所示: 由图中可以看出一个完整的JS事件是由window开始,再回到window. 事件流包括捕获过程(1-5),目标过程(5-6),冒泡过程(6-10),首先讲一下冒泡过程. 关于事件冒泡其实就是一个自内向外的过程.我们可以写下以下代码:...原创 2019-01-05 01:12:16 · 282 阅读 · 0 评论 -
JavaScript 实现a 可以同时 == 1 && == 2 && == 3
参考自 微信公众号 鱼头的Web海洋关于这道题目:var a = ?;if (a == 1 && b == 2 && c == 3) { console.log('yes');}学习了网上的几种解法,如下:首先,JS中类型转化只有三种情况:转换为布尔值转换为数字转换为字符串对象在转换类型的时候,会执行原生方法ToPrimiti...原创 2019-07-19 11:43:18 · 1220 阅读 · 0 评论 -
JS将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
题目:已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组实现:var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12...原创 2019-07-11 10:53:12 · 469 阅读 · 0 评论 -
JS实现一个new
实现一个new代码如下:var Dog = function(name) { this.name = name;}Dog.prototype.bark = function() { console.log('wang');}Dog.prototype.sayName = function() { console.log('my name is', this.name);}...原创 2019-07-13 10:12:30 · 274 阅读 · 0 评论 -
JS异步笔试题
参考自https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/7以下是一道异步的笔试题,写出运行结果:async function async1() { console.log('async1 start'); await async2(); console.log('async1 end...原创 2019-07-02 10:37:45 · 734 阅读 · 0 评论 -
JavaScript二叉树的序列化与反序列化
参考自ConardLi: 《对称的二叉树》 公众号: code秘密花园如下二叉树:按照前序遍历序列化出来的结果为: 8,6,5,#,#,7,#,#,6,7,#,#,5,#,#反序列化:按规定的字符串输出二叉树思路:1.如果二叉树是一颗完全二叉树,只需知道前序遍历即可重建2.在序列化二叉树时,可以将空节点使用特殊符号存储起来,这个就可以模拟一颗完全二叉树的前序遍历3.在重建二叉树时...原创 2019-06-25 11:07:07 · 729 阅读 · 0 评论 -
JavaScript判断对称二叉树
参考自ConardLi: 《对称的二叉树》 公众号: code秘密花园对称二叉树:非对称二叉树:实现思路:判断根节点相同左子树的右节点和右子树的左节点相同右子树的左节点和左子树的右节点相同步骤1: 模拟一个对称二叉树和非对称二叉树//对称二叉树const symmetricalTree = { val: 8, left: { val: 6, lef...原创 2019-06-25 10:50:38 · 903 阅读 · 0 评论 -
JavaScript 不使用循环,创建一个长度为m的数组,且数组的每一项都为n
输入createArr(3, 'abc')输出['abc', 'abc', 'abc']不使用循环,有以下方法:1.递归法思路如下:1.创建一个数组2.创建一个addEle函数用于给数组添加元素3.判断count是否为0,不为0时给数组尾部添加元素,使count - 14.调用addEle函数,把变化后的count传入,进行递归过程如下:结果如下:2.fill()...原创 2019-03-24 17:47:30 · 1331 阅读 · 0 评论 -
JavaScript原型链继承
首先创建一个父类创建一个子类当我们要通过原型链继承时子类可以调用父类在原型链上的方法但是子类的构造函数却指向父类正如下图(其中subClass为实例化过的对象)这时候可能会想,那我把子类的构造函数指向自身不就好了吗,于是添加下面代码子类构造函数真的指向了自身,但是我们检查一下父类父类的构造函数却指向了子类,如下图所示(其...原创 2019-03-11 23:54:53 · 164 阅读 · 0 评论 -
JavaScript判断字符串是否为回文字符
回文字符: 'abcba'第一种方法:运行结果:第二种方法:运行结果:第三种方法:运行结果如下:原创 2019-03-07 21:53:54 · 723 阅读 · 0 评论 -
JavaScript按指定格式输出时间
按所给的时间格式输出指定的时间格式说明对于 2014.09.05 13:14:20yyyy: 年份,2014yy: 年份,14MM: 月份,补满两位,09M: 月份, 9dd: 日期,补满两位,05d: 日期, 5HH: 24制小时,补满两位,13H: 24制小时,13hh: 12制小时,补满两位,01h: 12制小时,1mm: 分钟,补满两位,14m: 分钟,14s...原创 2019-03-15 09:37:36 · 2348 阅读 · 1 评论 -
浮动会造成什么样的后果?怎么清除浮动?
首先看一段代码:HTML:<div class="container"> <div id="div1"></div> <!--<div id="div2"></div>--></div>CSS:.container,原创 2019-03-07 15:40:11 · 848 阅读 · 0 评论 -
JavaScript判断单链表中是否存在环
如下图, 单链表中存在环:怎么判断单链表中存在环呢?先创造一下带环的单链表:代码如下:创建带环单链表:结果可见:判断单链表是否带环,以下有三种方法:第一种方法, 创建哈希表,不过会占用较大的空间,不是最佳方法.( 时间复杂度O(n) )遍历链表,将链表各节点添加至哈希表中,添加前判断此节点是否已存在哈希表中,存在的话说明链表中...原创 2019-03-08 20:47:28 · 2838 阅读 · 1 评论 -
JavaScript apply() call()的理解
1. //apply 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。 var obj = { name : 'linxin' } function func(firstName, lastName){ console.log(firstName + ' ' + this.name...原创 2019-02-26 23:53:38 · 214 阅读 · 0 评论 -
JavaScript 查找两个节点的最近的一个共同父节点, 可以包括节点自身
//oNode1 和 oNode2 在同一文档中,且不会为相同的节点function commonParentNode(oNode1, oNode2) { //oNode1为全局变量 //条件为oNode1.contains(oNode2) //每一次oNode1 = oNode1.parentNode for (;;oNode1 = oNode1...原创 2019-03-03 10:10:38 · 1161 阅读 · 0 评论 -
JavaScript 根据包名,在指定空间中创建对象
/输入 namespace({a: {test: 1, b: 2}}, 'a.b.c.d')//输出 {a: {test: 1, b: {c: {d: {}}}}}function namespace(oNamespace, sPackage) { var name = sPackage.split('.'); //将sPackage中的'键名'...原创 2019-03-03 10:00:01 · 488 阅读 · 0 评论 -
JavaScript数组去重
//输入: [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN] //输出:[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a'] Array.prototype.uniq = function() { ...原创 2019-03-03 09:37:34 · 186 阅读 · 0 评论 -
获取input节点的正确方法
获取 input 节点的正确方法 ()<form class="file" name="upload"><input id="file" name="file" /></form> A document.querySelectorAll('file')[0]B document.getElementById('fi原创 2019-01-08 23:56:17 · 4085 阅读 · 0 评论 -
每日打卡 编程题/算法题 (JavaScript)
每一天不停地修炼,为了全新的冒险链接: https://github.com/R-AS/everyday原创 2019-09-24 12:01:45 · 290 阅读 · 0 评论