JavaScript 面试备忘单 – 第 1 部分

javascript 面试备忘单 - 第 1 部分

数组运算

// initializeconst arr = [];const arr = new array(size).fill(0);  // [0,0,0,0,0]const arr = array.from({length: n}, (_, i) => i);  // [0,1,2,...,n-1]// basic operationsarr.push(element);     // add to endarr.pop();            // remove from endarr.unshift(element); // add to startarr.shift();          // remove from start// slicing and splicingarr.slice(startidx, endidx);  // returns new array, endidx not includedarr.splice(startidx, deletecount, ...itemstoadd);// common methodsarr.map(x => x * 2);           // returns new arrayarr.filter(x => x > 0);        // returns new arrayarr.reduce((acc, curr) => acc + curr, initialvalue);arr.sort((a, b) => a - b);     // ascendingarr.reverse();arr.join('');                  // convert to stringarr.includes(element);         // check existencearr.indexof(element);          // first occurrencearr.lastindexof(element);      // last occurrence

字符串操作

// creation and accessconst str = "hello";str.length;str[0] or str.charat(0);// common methodsstr.substring(startidx, endidx);   // endidx not includedstr.substr(startidx, length);      // deprecated but good to knowstr.slice(startidx, endidx);       // can use negative indicesstr.split('');                     // convert to arraystr.tolowercase();str.touppercase();str.trim();                        // remove whitespacestr.replace(old, new);str.replaceall(old, new);str.startswith(prefix);str.endswith(suffix);str.includes(substr);str.repeat(count);

地图和设置

// mapconst map = new map();map.set(key, value);map.get(key);map.has(key);map.delete(key);map.clear();map.size;// setconst set = new set();set.add(value);set.has(value);set.delete(value);set.clear();set.size;// object as hashmapconst obj = {};obj[key] = value;key in obj;                    // check existencedelete obj[key];object.keys(obj);object.values(obj);object.entries(obj);

类和对象

class node {    constructor(val) {        this.val = val;        this.next = null;    }}// quick object creationconst obj = { key1: value1, key2: value2 };

通用数据结构

// queue using arrayconst queue = [];queue.push(element);    // enqueuequeue.shift();         // dequeue// stack using arrayconst stack = [];stack.push(element);stack.pop();// linkedlist nodeclass listnode {    constructor(val = 0, next = null) {        this.val = val;        this.next = next;    }}// binary tree nodeclass treenode {    constructor(val = 0, left = null, right = null) {        this.val = val;        this.left = left;        this.right = right;    }}// trie nodeclass trienode {    constructor() {        this.children = new map();        this.isendofword = false;    }}

位操作

// common operationsn <> 1;               // divide by 2n & 1;                // check if oddn & (n-1);            // remove last set bitn & -n;               // get last set bitn | (1 << pos);       // set bit at positionn & ~(1 << pos);      // clear bit at positionn ^ (1 << pos);       // toggle bit at position

常见模式和实用程序

// number operationsmath.max(...arr);math.min(...arr);math.floor(n);math.ceil(n);math.abs(n);number.max_safe_integer;number.min_safe_integer;infinity;-infinity;// random numbermath.random();                     // [0, 1)math.floor(math.random() * n);     // [0, n-1]// character code'a'.charcodeat(0);                 // 97string.fromcharcode(97);           // 'a'// check typenumber.isinteger(n);array.isarray(arr);typeof variable;// parsingparseint(str);parsefloat(str);

常见的面试模式

// Two Pointerslet left = 0, right = arr.length - 1;while (left < right) {    // process    left++;    right--;}// Sliding Windowlet left = 0;for (let right = 0; right < arr.length; right++) {    // add arr[right] to window    while (/* window condition */) {        // remove arr[left] from window        left++;    }}// Binary Searchlet left = 0, right = arr.length - 1;while (left <= right) {    const mid = Math.floor((left + right) / 2);    if (arr[mid] === target) return mid;    if (arr[mid] < target) left = mid + 1;    else right = mid - 1;}

以上就是JavaScript 面试备忘单 – 第 1 部分的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1499351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 21:43:23
下一篇 2025年12月19日 21:43:28

相关推荐

  • Javascript:使用 Salesforce 实施无密码登录

    salesforce 提供无头无密码登录流程,允许注册用户无缝访问应用程序。无密码登录非常用户友好,它只需要一个有效的电子邮件地址。在这篇文章中,我将分享一些用于使用 salesforce 实现无密码登录流程的代码片段。 要求 开始之前,请确保满足以下条件: a) 您有权访问 salesforce …

    2025年12月19日
    000
  • TypeScript Utility Types: A Complete Guide

    tl;dr: typescript 实用程序类型是预先构建的函数,可以转换现有类型,使您的代码更干净且更易于维护。本文通过实际示例解释了基本实用程序类型,包括如何更新用户配置文件、管理配置和安全地过滤数据。 typescript 是现代 web 开发的基石,使开发人员能够编写更安全、更易于维护的代码…

    2025年12月19日
    000
  • 在 Nodejs 中进行身份验证的正确方法 [uide]

    身份验证是后端开发中最关键但经常被误解的方面之一。由于其复杂性,开发人员经常转向第三方解决方案,例如 auth0 或 supabase。虽然这些都是优秀的工具,但构建您自己的身份验证系统可以提供更大的灵活性和控制力。 在本指南中,您将了解如何以最少的依赖关系为 express.js api 服务实现…

    2025年12月19日
    000
  • Var、Let 和 Const

    瓦尔 var a = 11;{var a = 8;};console.log(a);// 8————————————————————————-var a = 11;{a = 28;};console.lo…

    2025年12月19日
    000
  • 创建 CLI 来搭建扩展

    在之前的练习中,我们使用 typescript 构建了一个浏览器扩展。这涉及一系列步骤,包括创建 vite 项目并对其进行定制以满足浏览器扩展的特定要求。虽然该过程并不是特别漫长或复杂,但我们可以通过使用 node cli(命令行界面)实现自动化来进一步简化它。如果您是 cli 新手,请让我引导您完…

    2025年12月19日
    000
  • 每个 JavaScript 项目的必备要素

    作为一名开发人员,特别是如果您是团队的新手,增加价值的最快方法之一就是引入改进日常工作流程的工具。这些工具有助于维护代码质量、确保一致性并简化开发流程。以下是我认为任何 javascript 项目都必须具备的要素的列表: 1. 使代码格式保持一致 工具:更漂亮一致的代码格式可以减少代码审查期间的“挑…

    2025年12月19日
    000
  • React: LinkedIn Access Token in Steps

    我最近集成了 linkedin api,事实证明它非常简单。任务是从 linkedin 检索用户的电子邮件地址。为了实现这一目标,我主要使用了两个端点: https://api.linkedin.com/oauth/v2/authorization https://www.linkedin.com/…

    2025年12月19日 好文分享
    000
  • 跨域请求首次调用出现重复Access-Control-Allow-Origin,如何解决?

    访问跨域接口的第一次调用出现重复 access-control-allow-origin,如何解决? 在进行跨域接口调用时,首次调用可能会出现 access-control-allow-origin 值重复的问题。这通常是由于后端的错误配置导致的,具体原因如下: 原因: 当服务器响应跨域请求时,服务…

    2025年12月19日
    000
  • How to Use Axios Interceptors to Handle API Error Responses

    构建现代 web 应用程序时,处理 api 调用及其响应是开发的关键部分。 axios 是一个流行的 javascript 库,它简化了 http 请求的过程,但它还具有诸如拦截器之类的内置功能,允许开发人员以更简化、更高效的方式管理响应和错误。 在本文中,我们将重点介绍如何使用 axios 拦截器…

    2025年12月19日
    000
  • 无障碍 (a) 规则 – 3

    图片 这不仅仅是向图像添加替代文本;远不止这些。 装饰图像 如果图像没有添加额外的上下文或信息(装饰图像)来让用户更好地理解上下文,那么它应该对辅助技术 (at) 隐藏,例如屏幕阅读器。 使用以下任何一种方法来隐藏 at 中的图像: 空文本替代 (alt)应用 aria添加图像作为 css 背景 @…

    2025年12月19日 好文分享
    000
  • 正则表达式匹配HTML多行文本时,如何避免只捕获最后一行?

    使用正则表达式从 html 片段中提取文本时,如何避免仅捕获到多行文本中的最后一行? 使用正则表达式从 html 片段中提取文本是常见操作。然而,有时我们希望捕获文本中的多行,但正则表达式却只能匹配到最后一行。 考虑以下正则表达式,它试图从 html 片段中提取文本: /^(?:)+((?:w(s)…

    2025年12月19日 好文分享
    000
  • NSEAZ-:Fortinet 网络安全专家实践 4

    NSE5_FAZ-7.0:2024 年 Fortinet 网络安全专家实践 https://www.udemy.com/course/nse5_faz-70-fortinet-network-security-expert-practice/?couponCode=841346FA19B10C788…

    2025年12月19日
    000
  • CORS(跨源资源共享)简介 什么是CORS?

    CORS,即跨源资源共享,是一种由 Web 浏览器实现的安全功能,允许或限制 Web 应用程序向与提供网页的域不同的域发出请求。简单来说,CORS 决定了一个域中的资源是否可以被另一个域中的网页访问。 默认情况下,Web 浏览器强制执行同源策略,该策略会阻止网页向与提供该页面的域不同的域发出请求。这…

    2025年12月19日
    000
  • Axios 响应拦截器为何无法获取特定 Header 信息?

    在 axios 响应拦截器中获取不到特定 header 信息? 在使用 axios 响应拦截器获取响应 header 信息时,发现某些信息无法获取到,例如 access-token 属性,这是怎么回事呢? 解决方法: 这个问题通常出现在跨域请求中。当发起跨域请求时,浏览器会限制前端访问响应头中的某些…

    2025年12月19日
    000
  • Nodejs + 自定义 CORS

    cors(跨源资源共享) 是一种允许一个域上的 web 应用程序访问另一个域上的资源的机制。当开发前端和后端分离并通过 api 进行通信的应用程序时,这一点至关重要。 这里有一篇文章解释了在 node.js 和 express 中不使用外部库的 cors 实现: “use strict”;/*jsh…

    2025年12月19日
    000
  • axios 响应拦截器无法获取所有 Headers 信息?如何解决跨域限制?

    无法从 axios 响应拦截器中获取所有 headers 信息? 在使用 axios 进行网络请求时,通过 axios 响应拦截器,可以方便地获取响应头信息。然而,在某些情况下,可能会遇到无法获取到所有 headers 信息的问题。 问题描述: 在拦截响应时,打印 res.headers,只得到了部…

    2025年12月19日
    000
  • 使用 axios 拦截器拦截响应时,为何无法获取所有响应头信息?

    使用 axios 拦截器拦截响应时无法获取某些响应头信息? 在使用 axios.interceptors.response.use 拦截响应时,你发现只能获取到部分响应头信息,而其他信息却无法获取,比如 Access-Token 属性。 这种情况通常发生在跨域请求中。当后端返回的响应头中没有包含 A…

    2025年12月19日
    000
  • 前端使用 Axios 拦截器获取不到后端响应头信息,如何解决?

    获取不到响应头信息的解决方案 前端使用 axios 拦截器获取后端响应头信息时,可能会遇到无法获取全部头信息的现象。这是因为在跨域请求中,后端需要在响应头中返回一个 access-control-expose-headers 头,来定义哪些头信息可以被前端访问。 具体解决方法如下: // 后端代码中…

    2025年12月19日
    000
  • Axios 拦截器无法获取所有 Headers 信息,如何解决?

    axios 拦截器获取 headers 信息受限的问题 在使用 axios 拦截器 axios.interceptors.response.use 获取响应头信息时,可能会遇到部分信息无法获取的情况。例如,以下代码仅打印出部分响应头数据: axiosinstance.interceptors.res…

    2025年12月19日
    000
  • 了解 HTTP 内部服务器错误:原因、解决方案和预防

    HTTP 500 内部服务器错误是访问网站时遇到的常见但令人沮丧的错误。此错误是服务器端问题,这意味着它是由托管网站的 Web 服务器而不是客户端浏览器内的问题引起的。当用户遇到 500 错误时,他们通常会看到一条通用消息,指出“出了问题”,但没有提供具体详细信息。本文将深入探讨 https://k…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信