js面试
I-AM-Yang
a lucky dog
展开
-
树与数组之间的转换
又是一年离职季,我也从之前的公司离职了,目前正在找工作中,在最近的面试过程中,遇到了两道之前没有遇到的题,1.把一个数组转换为一棵树。2.把一棵树转换为数组。这是我之前都没有写过的题目,一来就让我懵了头,所以这次的面试也是不出意料的挂了。接下来就进行这两道面试题的复盘。原创 2023-03-27 02:34:54 · 839 阅读 · 3 评论 -
关于【原型与继承】(读《红宝书》)
/ 实现原型链的一种基本模式// 继承,用 SuperType 类型的一个实例来重写 SubType 类型的原型对象// true其中,SubType 继承了 SuperType,而继承是通过创建 SuperType 的实例,并将该实例赋值给 SubType 的原型实现的。实现的本质是重写子类型的原型对象,代之以一个新类型的实例。子类型的新原型对象中有一个内部属性Prototype。原创 2023-02-24 20:17:54 · 120 阅读 · 0 评论 -
分享一下遇到的面试题
replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1。split() – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。length – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。slice() – 提取字符串的一部分,并返回一个新字符串。3. 类选择器: 10。原创 2023-02-02 21:14:14 · 82 阅读 · 0 评论 -
javascript 实现归并排序
使用 JS 实现归并排序算法原创 2022-07-17 22:59:01 · 232 阅读 · 0 评论 -
树的深度与广度优先遍历
树是前端工程师最经常打交道的一个数据结构,比如说html标签组成的dom树、树形控件等。在js中没有树这个数据结构,但是可以用Object和Array来构建树://val是当前的节点值,children是子节点const tree = { val: 'A', children: [ { val: 'B', children: [ { val: 'D',原创 2022-01-14 20:32:25 · 4179 阅读 · 0 评论 -
手写节流跟防抖,进行封装
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺直接进入案例监听一个输入框,文字变化后触发change事件<input type="text" class="input">直接用keyup事件,模拟触发change事件const input = document.querySelector('.input')添加键盘事件 input.addEventListener('keyup', function() {原创 2021-10-09 23:17:48 · 237 阅读 · 1 评论 -
手写一个深拷贝 deepClone
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺这是一个深拷贝的代码const deepClone = (obj) => { let result for(let k in obj) { if(obj[k] instanceof Array) {//在这个地方我会写成result[k] = [],这是一个错误的写法,因为深拷贝后的值没有被接收 result = [] deepClone(obj原创 2021-10-06 15:17:50 · 382 阅读 · 0 评论 -
改变函数内this指向
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺js中函数内的this指向函数的this指向用一句话来概括,就是谁调用,this就指向谁当然了,在js中,函数内部的this指向也不是万年不变的,我们也可以通过几个方法来改变this指向1.使用call() 在call()方法中,括号中可以加许多参数,第一个参数,就是要指向的this使用call()的时候要注意:call()会立即调用函数,并且会改变this指向c..原创 2021-10-01 18:47:58 · 81 阅读 · 0 评论 -
手写一个简易的ajax,进行封装
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺Ajax是Asynchronous JavaScript and XML(异步JavaScript和XML)的简写,它可以异步地向服务器发送请求,在等待响应的过程中,不会阻塞当前页面,浏览器可以做自己想做的事情,直到成功获取响应后,浏览器才开始处理响应数据。通俗点讲,就是浏览器也服务器之间的一种异步通信方式ajax的使用步骤://1.使用XMLHttpRequest这个构造函数创建一个实例//原创 2021-10-05 23:03:37 · 1120 阅读 · 0 评论 -
手写一个通用事件监听函数
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺这次来写一个通用的事件监听函数,基于我们的事件冒泡,如果你不知道事件冒泡需求,点击每个a,返回对应的内容 <div id="div"> <a id="p1" href="#">激活</a> <a id="p2" href="#">取消</a> <a id="p3" href="#">取消&l..原创 2021-10-04 16:14:01 · 1229 阅读 · 0 评论 -
JavaScript事件流
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺事件流描述的是从页面中接收事件的顺序,事件发生时会再元素节点直接按照特定的顺序传播,这个传播过程就是DOM事件流比如说我们定义两个盒子,son盒子在far盒子里面,分别给两个盒子添加点击事件点击fr时,输出far点击son时,输出son,同时也输出far const fa = document.querySelector('.fa') const so = ...原创 2021-10-04 14:49:37 · 752 阅读 · 0 评论 -
手写一个bind函数
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺在函数调用时,浏览器每次都会传递进两个隐式参数:1.函数的上下文对象this,2.封装实参的对象argumentsbind函数,我比较喜欢叫方法,bind()的可以改变this的指向,返回一个新的函数,并且不会立即调用函数//函数放在Function对象的原型对象中,可以通过原型链来调用该方法Function.prototype.bind1 = function() {原创 2021-10-02 13:33:57 · 129 阅读 · 0 评论 -
JavaScript的预解析
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺1.我们js引擎运行js代码时会分两部分执行: 预解析 代码执行什么是预解析,就是js引擎会把js里面所有的 var 以及 function 提升到当前作用域的最前面代码执行,就是js代码按照书写的顺序从上往下执行用代码来看最直接var a = 1;f()function f() { console.log(a) var a = 2;...原创 2021-10-02 22:58:54 · 114 阅读 · 0 评论 -
js的同步跟异步
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺异步,原型和原型链,闭包被称为js的三座大山,为何会有异步?那我们要来捋一下js是一门单线程的语言,通俗点讲就是在一个时间段它只能做一件事,就像一条公路,它一次就只能一辆车通过,不能有两辆车并排着通过的,如果有一辆车,它就停公路上,这样子后面的车没法走,那它就会一直卡着,不会往下执行, console.log(100) alert(200)原创 2021-10-02 23:47:47 · 156 阅读 · 0 评论 -
何时使用==,何时使用===?
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺==;称为等值符,当等号两边的类型相同时,直接比较值是否相等,当两边的类型不相同时,先转化为类型相同的值,再进行比较console.log(0 == false);//返回trueconsole.log(false == '');//返回trueconsole.log(38 == '38');//返回trueconsole.log(0 == '');//返回true===;称为等同符原创 2021-09-28 16:22:47 · 318 阅读 · 0 评论 -
typeof运算符判断类型
在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺之前虽然一直有用typeof来判断类型,却不知道它所局限的范围,在查阅资料和写代码后算是了解1.typeof能判断所有的值类型,包括 string,undefined,number,boolean以及symbol(ES6新增的类型,有点类似于字符串let a; console.log(typeof a); //undefineda = 'yidaimi'; console原创 2021-09-28 11:29:35 · 1866 阅读 · 0 评论