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

相关推荐
神所夸赞的夏天1 小时前
如何获取多层json数据,存成dictionary,并取最大最小值
java·前端·json
焦糖玛奇朵婷1 小时前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
海盗12341 小时前
C#中的IEqualityComparer<T>使用
开发语言·c#
上海云盾王帅1 小时前
WEB业务如何接入安全防护:从零到一的实战指南
前端·安全
用户059540174461 小时前
AI Agent记忆丢失踩坑实录:这个问题让我排查了3天
前端·css
江公望1 小时前
Qt QSharedPointer用法,10分钟讲清楚
开发语言·qt
web行路人1 小时前
前端对Commands(斜杠命令)一些常用
前端·javascript·vue.js·vue
当时只道寻常1 小时前
从零到一打造企业级全栈后台管理系统 —— 技术选型、工程化实践与深度思考
前端·全栈·前端工程化
竹林8181 小时前
用 ethers.js 连 MetaMask 做钱包登录,我踩了三个坑才搞定跨页面状态同步
前端·javascript