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

相关推荐
Pedantic8 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘8 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆8 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师9 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆9 小时前
VSCode自动格式化三要素
前端
爱勇宝10 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
kyriewen10 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
user205855615181313 小时前
Windows 项目安装时报 `node-sass` 错误,如何快速处理
前端
LiaCode13 小时前
Redis 在生产项目的使用
前端·后端