前端面试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 中,函数具有对在相同作用域以及任何外部作用域中声明的所有变量的引用。这些作用域被称为函数的 词法环境。函数与其环境的组合被称为 闭包。

相关推荐
CappuccinoRose4 分钟前
拖拽交互体系
前端·javascript·css·html·交互·1024程序员节
小王C语言6 分钟前
Qt常用控件:按钮类控件,普通按键、单选、复选
开发语言·qt
开开心心就好6 分钟前
免安装PDF盖章工具,透明度和位置可调
运维·服务器·前端·javascript·pdf·ocr·1024程序员节
风骏时光牛马6 分钟前
AI服务线上推理异常故障
前端
街头便衣8 分钟前
OpenRouter周榜复算:164万亿token,输出2.55%,DeepSeek账单占1.4%
android·java·开发语言·人工智能·语言模型·开源
老王IT15 分钟前
PHP语言基础语法介绍
开发语言·php
king王一帅18 分钟前
做了三年 ProseMirror 后,我用四个月自研排版引擎实现 WPS / Google Docs 替代品,整套框架 MIT 开源
前端·vue.js·开源
এ慕ོ冬℘゜2 小时前
如何在 HTML 中嵌入音频和视频?
前端·html·音视频
2501_944521599 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理9 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang