
面试
Chailo.
这个作者很懒,什么都没留下…
展开
-
【面试题集—No.13】柯里化面试题(参数确定)
题目:实现一个函数功能:sum(1,2,3,4…n)转化为 sum(1)(2)(3)(4)…(n)代码实现:function curry(fn, ...args) { return (...arr) => { let result = [...args, ...arr] if (result.length === fn.length) { return fn(...result) } else {原创 2021-11-23 22:08:57 · 494 阅读 · 0 评论 -
【面试题集—No.12】柯里化面试题(参数不确定)
实现一个add方法,使计算结果能够满足如下预期:add(1)(2)(3) = 6;add(1, 2, 3)(4) = 10;add(1)(2)(3)(4)(5) = 15;原创 2021-11-23 11:29:51 · 1055 阅读 · 2 评论 -
【JS基础整理—No.07】函数柯里化
柯里化的官方解释:把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数。原创 2021-11-22 21:21:10 · 1224 阅读 · 1 评论 -
【面试题集—No.10】 闭包面试题
写在前面:在学习了闭包之后,试着做做这些题。其实是一种很棒地检验自己学习成果的手段。我当时反反复复,学了但好像又没完全学,遇到题还是一头雾水,到现在可以捋得很清楚也经历了蛮久的。而且从this,执行上下文,作用域一直走过来,这些题目涉及的内容也相对全面,加油喽。原创 2021-11-19 22:04:04 · 769 阅读 · 0 评论 -
【面试题集—No.09】关于函数this的面试题
???? 面试题基础版// ???? 面试题1var a=1;function test(){ var a=2; function bar(){ var a=3; console.log(this.a); //global Undefined } bar();}test(); //Undefined 应该是1吧// 疑问❓:浏览器运行是1,node运行时undefined// ∵this的取值跟调用方式有关,bar()的调用方式,函数名前没'.',指向全局变量。//原创 2021-11-16 14:45:06 · 431 阅读 · 0 评论 -
【面试题集—No.08】过滤树的问题-深信服2021秋招
题目:过滤掉一个树形结构中不含给定的 filtername 的结点eg例子????:[{name: 'A', children: [ {name: 'B'} ]},{name: 'C'}] 以 filtername='B' 过滤后则成为 [{name: 'A', children: [ {name: 'B'} ]}]原理://原理:function fn(a){ if(a>3) return console.log(a); b=a+1; fn(b);原创 2021-11-15 22:04:52 · 457 阅读 · 0 评论 -
【面试题集—No.07】求数字数组中出现次数最多的数字
实现步骤:利用对象进行数组去重,并统计每个数字出现的次数; 比较返回出现次数最多的数字function fn(arr) { // 利用对象属性存在,对数组去重并统计每个数字出现的次数 let obj = {}; arr.forEach(e => { if (!obj[e]) { obj[e] = 1; } else { obj[e] = obj[e] + 1; }原创 2021-11-14 21:37:56 · 470 阅读 · 0 评论 -
【面试题集—No.05】比较两个对象是否相同
先来复习一下关于对象属性遍历的API1.hasOwnProperty() 判断是否是对象自身属性2. Object.getOwnPropertyNames() 获取对象的可枚举和不可枚举属性3. Object.getOwnPropertySymbols() 获取对象的symbol属性4. Object.keys() 获取对象的可枚举属性5. for...in 获取对象自身和继承的可枚举属性(配合hasOwnProperty()使用)6. for...of 获取对象自身可...原创 2021-11-11 15:09:40 · 660 阅读 · 0 评论 -
【面试题集—No.04】for...in和for...of的区别
????写在前面:之前在????获取对象属性的个数一篇提到了几个常用的Object的API,这里区别一下for...in和for...of,迷迷瞪瞪的,我经常给搞混。1.for...in 遍历 key(原理:Object.keys());for...of 遍历value2.for...in 获取自身和继承的可枚举属性(配合hasOwnProperty(),判断是否是自身属性) ;for...of 获取自身可迭代属性的值3.for...in用来遍历对象,不建议遍历数组(∵输出的顺序是不固定的);原创 2021-11-07 17:39:51 · 317 阅读 · 0 评论 -
【面试题集—No.03】获取对象属性的个数
在解决这个问题之前,我们需要知道对象的属性分为:自身属性和继承属性;可枚举属性和不可枚举属性;以symbol为属性值的属性。使用不同的API获得的属性不同。与对象属性相关的APIhasOwnproperty() 判断是否是自身属性 【返回 布尔值】Object.keys() 获取自身可枚举属性 【返回 数组】Object.getOwnPropertyNames() 获取自身可枚举和不可枚举属性【返回 数组】for...in 获取自身和继承的可枚举属性( 除去s...原创 2021-11-07 17:21:35 · 546 阅读 · 0 评论 -
【面试题集—No.02】实现数组去重的5种方法
方法一--两个循环嵌套遍历数组function unique(arr){ let newArr=[arr[0]]; for(let i=0;i<arr.length;i++){ let flag=true; for(let j=0;j<newArr.length;j++){ //遍历新数组,判断新数组中是否有该元素 if(arr[i]===newArr[j]){ flag=fals...原创 2021-11-06 20:35:34 · 145 阅读 · 0 评论 -
【面试题集—No.01】0.1+0.2 != 0.3
一、背景原理:因为计算机是采用二进制来存储的,现实中的数在存入计算机需转换为二进制,在这个过程中出现可能无法整除的情况,所以现实中的数转换为二进制并计算的过程中就可能产生误差。JS 采用 IEEE 754 双精度版本(64位),六十四位中符号位占一位,整数位占十一位,其余五十二位都为小数位。二、解释原因:把十进制的0.1和0.2转换为二进制:0.1 => 0.0001 1001 1001 1001…(1001无限循环)0.2 => 0.0011 0011 0011 001原创 2021-09-26 15:02:05 · 232 阅读 · 0 评论 -
【手写代码】防抖&节流
一、防抖(debounce)1. 定义当连续触发一个事件时,将多次执行变成最后一次执行2. 场景有些事件会被频繁触发,但我们不需要他如此频繁,只在最后一次触发做操作即可。例如????搜索框的联想建议3. 手写防抖原理:在事件发生前,取消上一次的定时器,开启新的计时器function debounce(func,wait){ let timeout; return function(){ let context=this; let arg...原创 2021-09-25 08:14:26 · 470 阅读 · 0 评论