前端面试js手写

手写instanceof

instance作用是判断一个实例是否为其父类或祖先类型的实例

javascript 复制代码
let myInstanceof = (target, origin) => {
  while (target) {
    if (target.__proto__ === origin.prototype) {
      return true
    }
    target = target.__proto__
  }
  return false
}
let a = [1, 2, 3]
console.log(myInstanceof(a, Array))

instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype查找失败,返回 false

调用数组的map方法

javascript 复制代码
const a = [1, 2, 3, 4]
const b = a.map((x) => x = x * 2)
console.log(b);

计数器

给定一个整型参数 n,请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值 ( n , n + 1 , n + 2 ,等等)。

javascript 复制代码
/**
 * @param {number} n
 * @return {Function} counter
 */
var createCounter = function(n) {
    
    return function() {
       return n++
    };
};

/** 
 * const counter = createCounter(10)
 * counter() // 10
 * counter() // 11
 * counter() // 12
 */

这个问题旨在介绍 闭包(closures) 的概念。在 JavaScript 中,函数具有对在相同作用域以及任何外部作用域中声明的所有变量的引用。这些作用域被称为函数的 词法环境。函数与其环境的组合被称为 闭包。

相关推荐
外收内放9 分钟前
Python基础语法练习题(43-44)
开发语言·python
liangshanbo121510 分钟前
前端高级面试题:WebSocket 双向流式通信怎么设计?
前端·websocket·网络协议
坤坤子吖13 分钟前
Python基础语法学习:列表和元组
开发语言·笔记·python·学习
可乐鸡翅yeah_18 分钟前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线
zwd200518 分钟前
Manim arrange 和 arrange_in_grid 用法详解:buff、aligned_edge、rows/cols(0.21.0 实测)
前端·python·edge
小小龙学IT29 分钟前
Go 语言 reflect 反射包深度解析:从 Type/Value 到三大定律与工业实践
前端·golang
“AI国潮设计-小江”35 分钟前
《Python+SDXL实战:用ControlNet批量生成“英歌舞草莓蛋糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
小溪学编程38 分钟前
C语言篇:枚举类型
java·c语言·前端
为啥全要学39 分钟前
大模型流式输出过滤敏感词
开发语言·python
小溪学编程40 分钟前
C语言篇:语言结构
c语言·开发语言·算法