首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分享近百道JavaScript 基础面试题,帮助你巩固JavaScript 基础知识

闭包是一个函数,即使在外部函数完成执行后,它仍保留其外部范围访问变量功能。 10. 如何在 JavaScript 创建对象?...在 JavaScript 如何检查对象是否具有特定属性? 可以使用 hasOwnProperty() 方法来检查对象是否具有特定属性。 40.解释JavaScript事件捕获和事件冒泡概念。...Object.keys() 方法返回给定对象自己可枚举属性名称数组。 51. 如何 JavaScript 数组删除元素?...对象或数组浅拷贝创建对原始对象新引用,而深拷贝创建具有所有嵌套属性和值完全独立对象副本。 53. 解释 JavaScript 中词法 this 概念。...bind() 方法创建一个新函数,调用时将其 this 关键字设置为特定值。 77. 在 JavaScript 如何检查对象是否具有特定属性

17810

42个实用JavaScript优化技巧

[] === true // an (empty) array is truthy; 14、如何在JavaScript循环遍历数组?...({}); // true 17、如何在JavaScript中使字符串首字母大写 我们可以更新具有text-transform属性CSS。...有很多需求,我们需要根据条件更改某些颜色或CSS。 如何在JavaScript完成?...\S)/g , '' ) 19、是否可以将CSS应用于一半字符? 我们确实看到了一些精美的文字艺术,其中一半字符具有不同颜色,而另一半字符具有不同颜色,我们如何在CSS实现这样效果?...在较早JavaScript版本,这是通过使用apply方法完成。 该apply()方法调用具有给定this值函数,并arguments以数组(或类似数组对象)形式提供。

11.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

金九银十: 50 个JS 必须懂面试题为你助力

问题2:什么 Javascript JavaScript 是一种轻量级解释型编程语言,具有面向对象特性,允许各位在其他静态HTML页面构建交互性。...它允许你内部函数访问外部函数作用域。 在JS,每次创建函数时都会创建闭包。 要使用闭包,只需在另一个函数内定义一个函数并暴露它。 问题16:列出一些内置方法及其返回值。...问题 36:JS原始/对象类型如何在函数传递? 两者之间一个区别是,原始数据类型是通过值传递,对象是通过引用传递。 值传递:意味着创建原始文件副本。...## 问题44:如何在JS清空数组 有许多方法可以用来清空数组: 方法一: ```javascript arrayList = [] 上面的代码将把变量arrayList设置为一个新数组。...delete操作符用于删除对象属性。X是一个具有foo属性对象,由于它是一个自调用函数,所以咱们将从对象X删除foo属性

6.5K31

14万字 | 400多道JavaScript 面试题及详细答案(建议收藏)

359 如何使用特殊字符创建自字符串? 360 如何数组删除虚假值? 361 你如何获得数组唯一值? 362 什么是解构别名? 363 如何在不使用 map 方法情况下映射数组值?...Object.create() 方法用于创建具有指定原型对象和属性新对象。即,它使用现有对象作为新创建对象原型。它返回一个具有指定原型对象和属性新对象。...属性描述符是具有以下属性记录 1.value:与属性关联值 2.writable:确定与属性关联值是否可以更改 3.configurable:如果可以更改此属性描述符类型并且可以相应对象删除该属性...JavaScript 支持具有原型继承面向对象编程。 ⬆ 返回顶部 回到第300题 ---- 331.内部和外部 javascript有什么区别?...您可以使用fill方法创建具有某些数据数组具有相同值数组

12.7K20

50 个JS 必须懂面试题为你助力金九银十

JS代码都是文本形式。 问题2:什么 Javascript JavaScript 是一种轻量级解释型编程语言,具有面向对象特性,允许各位在其他静态HTML页面构建交互性。...它允许你内部函数访问外部函数作用域。 在JS,每次创建函数时都会创建闭包。 要使用闭包,只需在另一个函数内定义一个函数并暴露它。 问题16:列出一些内置方法及其返回值。...问题 36:JS原始/对象类型如何在函数传递? 两者之间一个区别是,原始数据类型是通过值传递,对象是通过引用传递。 值传递:意味着创建原始文件副本。...问题44:如何在JS清空数组 有许多方法可以用来清空数组: 方法一: arrayList = [] 上面的代码将把变量arrayList设置为一个新数组。...delete操作符用于删除对象属性。X是一个具有foo属性对象,由于它是一个自调用函数,所以咱们将从对象X删除foo属性

4.4K30

JavaScript浅拷贝与深拷贝

前言 JavaScript浅拷贝和深拷贝是非常重要概念,它们在处理对象和数组具有不同作用。在编程,经常需要复制数据以便进行各种操作,但必须注意拷贝方式,以确保得到预期结果。...相反,深拷贝是创建一个完全独立对象或数组,新拷贝将具有与原始对象或数组相同值,但是它们在内存是彼此独立,相互之间修改不会互相影响。...这在某些情况下非常有用,例如当需要表示一组具有相同属性和值特定对象时。然而,在运行时,可能需要给这些浅拷贝对象赋予不同变量名称,以满足应用程序需求,并作为不同props传递给其他组件。...在 JavaScript ,当需要复制嵌套对象或数组时,深拷贝变得非常重要。深拷贝是一种创建独立全新对象方法,它递归地复制每个嵌套对象和数组,有效地避免了使用共享内存带来修改问题。...该方法首先将原始对象序列化为 JSON 字符串,然后再解析字符串并创建一个新对象,以确保所有属性和嵌套对象都被复制到全新对象

22110

Web前端面试敲重点知识,14个TypeScript核心基础面试题和答案

6、TypeScript 声明变量有哪些不同关键字? 7、如何书写带有类型注释函数 ? 8、如何在 TypeScript 创建对象 ? 9、如何在 TypeScript 中指定可选属性 ?...TypeScript 具有三种常用基本类型:字符串、数字和布尔值,这些对应于 JavaScript 类似命名类型。...string:表示文本值,例如“javascript”、“typescript”等 number:表示数值, 1、2、25、36 等 boolean:表示一个变量,它可以具有“真”或“假”值 image.png...它们类似于数组,有时也称为关联数组 但是,数组使用数字来索引值,而对象允许使用任何其他类型作为键 image.png 9、如何在 TypeScript 中指定可选属性 ? 通过添加 ?...对象类型可以具有零个或多个可选属性,在属性名称之后 image.png 10、说说枚举在 TypeScript 是如何工作

11.4K10

深入学习下 TypeScript 泛型

要在 macOS 或 Ubuntu 18.04 上安装,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 使用 PPA 安装部分步骤进行操作...本教程稍后将介绍这些结构每一个,但现在将使用一个函数作为示例来说明泛型基本语法。 要了解泛型有多么有用,假设您有一个 JavaScript 函数,它接受两个参数:一个对象和一个键数组。...这显示在以下屏幕截图中: 了解如何在 TypeScript 创建泛型后,您现在可以继续探索在特定情况下使用泛型。本教程将首先介绍如何在函数中使用泛型。...这意味着 TypeScript 会将数据识别为具有字符串类型键和任意类型对象,从而允许您访问其属性。 类型参数约束 在某些情况下,泛型类型参数需要只允许将某些形状传递给泛型。...然后,您将通过创建一个条件类型来探索高级用例,该条件类型省略基于点表示法对象类型嵌套字段。 条件类型基本结构 条件类型是根据某些条件具有不同结果类型泛型类型。

38.8K30

Javascript 浅拷贝深拷贝是什么?一文带你搞懂,不再犯错

浅拷贝和深拷贝是Javascript抛出术语,如果你以前没有听说过,可能会感到困惑。我们经常听说,像 slice 或 filter 这样数组方法会对原始数组进行浅层复制。...在Javascript,这同时更新了原始属性和我们用 slice 制作副本。 对于浅层拷贝,需要记住主要一点是,调整一个拷贝会影响你试图复制原件。...内存引用是相同,而引用指向数组值,所以你必须更加小心。你不想做是产生意想不到行为,即数组原始和副本在你期望时候没有同步更新。 那么,如何在Javascript中进行深度拷贝?...Javascript大多数方法,三点或扩展运算符语法、Object.create()、Object.assign()和Array.from(),都会进行浅层拷贝。...深度拷贝可以通过序列化来实现,或者通过自定义脚本将一个对象或数组每一部分复制到一个新对象,在内存创建一个新引用。例如,这将在Javascript创建一个具有新引用数组

26410

JavaScript 面试必备基础知识梳理(71个知识点)

arr.flat\(depth\)[12]/arr.flatMap\(fn\)[13] 多维数组创建一个新扁平数组。...有索引属性和 length 属性对象被称为 类数组对象。这种对象可能还具有其他属性和方法,但是没有数组内建方法。...嵌套数组/对象中提取数据也是可以,此时等号左侧必须和等号右侧有相同结构。 24. 日期和时间 在 JavaScript ,日期和时间使用 Date[16] 对象来表示。...我们不能只创建日期,或者只创建时间,Date 对象总是同时创建两者。 月份 0 开始计数(对,一月是 0)。 一周某一天 getDay() 同样 0 开始计算(0 代表星期日)。...程序员应该只通过它类和它继承访问以 _ 开头字段。 私有字段以 # 开头。JavaScript 确保我们只能从类内部访问它们。

1K10

面试前必备 JavaScript 基础知识梳理总结

arr.flat\(depth\)[12]/arr.flatMap\(fn\)[13] 多维数组创建一个新扁平数组。...有索引属性和 length 属性对象被称为 类数组对象。这种对象可能还具有其他属性和方法,但是没有数组内建方法。...嵌套数组/对象中提取数据也是可以,此时等号左侧必须和等号右侧有相同结构。 24. 日期和时间 在 JavaScript ,日期和时间使用 Date[16] 对象来表示。...我们不能只创建日期,或者只创建时间,Date 对象总是同时创建两者。 月份 0 开始计数(对,一月是 0)。 一周某一天 getDay() 同样 0 开始计算(0 代表星期日)。...程序员应该只通过它类和它继承访问以 _ 开头字段。 私有字段以 # 开头。JavaScript 确保我们只能从类内部访问它们。

79620

JavaScript JSON解析与序列化

例如,使用下列代码就可以创建与book类似的对象: var bookCopy = JSON.parse(jsonText); 注意,虽然book与bookCopy具有相同属性,但它们是两个对立、没有任何关系对象...根对象键是一个空字符串:""。 如果 replacer 是一个数组,则仅转换该数组具有键值成员。成员转换顺序与键在数组顺序一样。...6.1、过滤结果 如果过滤器参数是数组,那么JSON.stringify()结果中将只包含数组列出属性。来看下面的例子。...Zakas","year":5000} 要序列化对象每一个对象都要经过过滤器,因此数组每个带有这些属性对象经过过滤之后,每个对象都只会包含“title”、“authors”和“year”属性...", true); xmlhttp.send(); 服务端接收数组 JSON 数据 如果服务端接收数组 JSON 数据,则 JSON.parse 会将其转换为 JavaScript 数组

2.5K20

JavaScript 权威指南第七版(GPT 重译)(三)

我们将学习如何在§14.3 查询(甚至更改)对象原型。...然而,我们将在第九章中看到,每次使用new创建实例时,都会创建一个原型对象继承属性对象。 假设您查询对象o属性x。如果o没有具有该名称自有属性,则将查询o原型对象¹属性x。...JSON.stringify()和JSON.parse()都接受可选第二个参数,用于通过指定要序列化属性列表来自定义序列化和/或还原过程,例如,在序列化或字符串化过程中转换某些值。...请注意,使用delete删除数组元素不会改变length属性,并且不会将具有更高索引元素向下移动以填补被删除属性留下空白。如果数组删除一个元素,数组将变得稀疏。...数组方法map()和reduce()特别适合函数式编程风格。接下来部分演示了 JavaScript 函数式编程技术。

13410

JavaScript 权威指南第七版(GPT 重译)(四)

第九章:类 JavaScript 对象在第六章中有所涉及。该章将每个对象视为一组独特属性,与其他对象不同。然而,通常有必要定义一种共享某些属性对象类。...在 JavaScript ,类使用基于原型继承:如果两个对象同一原型继承属性(通常是函数值属性或方法),那么我们说这些对象是同一类实例。简而言之,这就是 JavaScript工作原理。...9.1 类和原型 在 JavaScript ,类是一组同一原型对象继承属性对象。因此,原型对象是类核心特征。...如果你想标记(或“品牌化”)一个对象具有某些特殊属性或类型,例如,你可以将其添加到 WeakSet 。然后,在其他地方,当你想检查该属性或类型时,可以测试该 WeakSet 成员资格。...当参数是一个相对较短对象数组,并且数组所有对象具有相同(相对较小)属性集时,这种方法效果最佳。在这种情况下,数组每个对象被格式化为表格一行,每个属性是表格一列。

33610

Javascript快速入门(上篇)

indexOf/lastIndexOf:返回指定值在字符串里出现第一个位置,最后一个位置 replace:子串替换 split:把字符串分解为一系列子串,保存到数组,返回一个新数组 substr:指定开始位置...内容 .getElementsByTagName('div')获取特定全部标签 .getElementsByClassName('div')返回具有特定class属性值 history .forward...,当函数内部运算失败时,返回false 平稳退化 就是当用户浏览器缺少某些让页面设计充分展示功能,或关闭该功能时,仍然可以将站点内容呈现给用户 渐进增强 首先建立一个大部分用户可以访问网站,然后添加额外功能层次...JSONJavaScript对象一种简单紧凑标签,使用JSON时,对象可以简单转换为字符串来进行存储和转换。...在document根结点,包含多种不同类型结点,结点类型nodeType包含在节点元素属性,如下表所示。

1K50

ES6迭代器简单指南和示例

迭代器是在JavaScript循环任何集合一种新方法。它们是在ES6引入,由于它们广泛用途和在不同地方使用而变得非常流行。 我们将从概念上理解迭代器是什么,以及在何处使用它们和示例。...'Robert Heinlein' ]; 在某些情况下,希望返回数组所有单独值,以便在屏幕上打印它们、操作它们或对它们执行某些操作。...让我们看看什么是可迭代,以及如何使对象可迭代。 在本文最后,你将了解如何在定制对象上使用for-of循环,在本例是在 mypreferteauthors 上使用 for-of 循环。...可迭代对象与迭代器 (Iterables and Iterators) 在上一节中看到了问题,我们自定义对象获取所有的作者是不容易。我们需要某种方法,通过它我们可以有序地获取内部数据。...JavaScript可迭代对象(iterable) JavaScript很多对象都是可迭代

1.4K40

JavaScript如何工作:内存管理+如何处理4个常见内存泄漏

概述 像 C 这样编程语言,具有低级内存管理原语,malloc()和free()。开发人员使用这些原语显式地对操作系统内存进行分配和释放。...在内存管理上下文中,如果对象具有对另一个对象访问权(可以是隐式,也可以是显式),则称对象引用另一个对象。例如,JavaScript对象具有对其原型(隐式引用)和属性值(显式引用)引用。...词法作用域定义了如何在嵌套函数解析变量名:即使父函数已经返回,内部函数也包含父函数作用 引用计数垃圾收集算法 这是最简单垃圾收集算法。...本质上说,在运行过程创建了一个闭包链表(它根是以变量theThing形式存在),并且每个闭包作用域都间接引用了了一个大数组,这造成了相当大内存泄漏。...在引用 DOM 树内部节点或叶节点时,还需要考虑另外一个问题。如果在代码中保留对表单元格引用(标记),并决定 DOM 删除表,同时保留对该特定单元格引用,那么可能会出现内存泄漏。

99440

那些相见恨晚 JavaScript 技巧

本文7个方面讲述 JavaScript 那些你不很熟知但非常实用技巧。...创建数组传统方法是: 使用简略语句则: 另一个可以使用简略语句地方是条件判断语句: 可以简略为: JSON 数据格式 JSON 是 "JavaScript...你可以在 JavaScript 中直接使用 JSON,甚至作为某些 API 返回数据对象,以下代码调用著名书签网站 delicious.com 一个 API,返回你在该网站所有书签...代码时候,难免会更改某些代码,但这会很困难,因为不是每个人都很容易读懂别人代码,与其这样,不如创建一个代码配置对象,别人只需要在这个对象更改某些配置即可实现代码更改。...这里有一篇 JavaScript 配置对象详解文章,简单说: · 在代码创建一个叫做 configuration 对象 · 里面保存所有可以更改配置, CSS ID 和类名,按钮标签文字,描述性文字

30110
领券