JavaScript 面试备忘单 - 第 1 部分
数组运算
// Initialize const 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 Operations arr.push(element); // Add to end arr.pop(); // Remove from end arr.unshift(element); // Add to start arr.shift(); // Remove from start // Slicing and Splicing arr.slice(startIdx, endIdx); // Returns new array, endIdx not included arr.splice(startIdx, deleteCount, ...itemsToAdd); // Common Methods arr.map(x => x * 2); // Returns new array arr.filter(x => x > 0); // Returns new array arr.reduce((acc, curr) => acc + curr, initialValue); arr.sort((a, b) => a - b); // Ascending arr.reverse(); arr.join(''); // Convert to string arr.includes(element); // Check existence arr.indexOf(element); // First occurrence arr.lastIndexOf(element); // Last occurrence
字符串操作
// Creation and Access const str = "hello"; str.length; str[0] or str.charAt(0); // Common Methods str.substring(startIdx, endIdx); // endIdx not included str.substr(startIdx, length); // Deprecated but good to know str.slice(startIdx, endIdx); // Can use negative indices str.split(''); // Convert to array str.toLowerCase(); str.toUpperCase(); str.trim(); // Remove whitespace str.replace(old, new); str.replaceAll(old, new); str.startsWith(prefix); str.endsWith(suffix); str.includes(substr); str.repeat(count);
地图和设置
// Map const map = new Map(); map.set(key, value); map.get(key); map.has(key); map.delete(key); map.clear(); map.size; // Set const set = new Set(); set.add(value); set.has(value); set.delete(value); set.clear(); set.size; // Object as HashMap const obj = {}; obj[key] = value; key in obj; // Check existence delete obj[key]; Object.keys(obj); Object.values(obj); Object.entries(obj);
类和对象
class Node { constructor(val) { this.val = val; this.next = null; } } // Quick object creation const obj = { key1: value1, key2: value2 };
通用数据结构
// Queue using Array const queue = []; queue.push(element); // enqueue queue.shift(); // dequeue // Stack using Array const stack = []; stack.push(element); stack.pop(); // LinkedList Node class ListNode { constructor(val = 0, next = null) { this.val = val; this.next = next; } } // Binary Tree Node class TreeNode { constructor(val = 0, left = null, right = null) { this.val = val; this.left = left; this.right = right; } } // Trie Node class TrieNode { constructor() { this.children = new Map(); this.isEndOfWord = false; } }
位操作
// Common Operations n << 1; // Multiply by 2 n >> 1; // Divide by 2 n & 1; // Check if odd n & (n-1); // Remove last set bit n & -n; // Get last set bit n | (1 << pos); // Set bit at position n & ~(1 << pos); // Clear bit at position n ^ (1 << pos); // Toggle bit at position
常见模式和实用程序
// Number Operations Math.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 Number Math.random(); // [0, 1) Math.floor(Math.random() * n); // [0, n-1] // Character Code 'a'.charCodeAt(0); // 97 String.fromCharCode(97); // 'a' // Check Type Number.isInteger(n); Array.isArray(arr); typeof variable; // Parsing parseInt(str); parseFloat(str);
常见的面试模式
// Two Pointers let left = 0, right = arr.length - 1; while (left < right) { // process left++; right--; } // Sliding Window let 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 Search let 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 部分的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

zustand异步操作中的数据更新问题在使用zustand状态管理库时,经常会遇到异步操作导致数据更新不及时的问题。�...
