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

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

reduce() 方法对累加器和数组每个元素应用一个函数,产生单个。 36. 如何在 JavaScript 深度复制一个对象?...对象或数组浅拷贝创建对原始对象新引用,而深拷贝创建具有所有嵌套属性完全独立对象副本。 53. 解释 JavaScript 中词法 this 概念。...JavaScript 没有内置方法来比较两个对象是否相等。您需要手动比较它们属性。 55. JavaScript toUpperCase() 方法用途是什么?...bind() 方法创建一个新函数,调用时将其 this 关键字设置为特定。 77. 在 JavaScript 如何检查对象是否具有特定属性?...在 JavaScript 如何检查一个是否为数字? 可以使用 typeof 运算符检查是否属于“数字”类型,或使用 isNaN() 函数检查是否为有效数字。

18110

深入学习下 TypeScript 泛型

想象一下,您想要创建一个类型,给定另一个类型,该类型返回一个新类型,其中所有属性都设置为具有布尔。...在您类型定义,您使用语法看起来像使用 JavaScript 三元运算符条件表达式:T extends string ?真假。 此条件表达式正在检查类型 T 是否扩展了类型字符串。...在类型声明本身内部,您正在检查类型 T 是否扩展了与函数签名匹配类型,该函数签名接受可变数量参数(包括零),然后您推断返回 该函数类型创建一个新类型 U,可在条件真实分支内使用。...使用 NestedOmit 泛型,传入类型,然后列出要省略属性键。 请注意如何在第二个类型参数中使用点符号来标识要省略键。然后将结果类型存储在 Result 。...[KeyPart1 新键]:NestedOmit 是一个映射类型,其中属性是可分配给 KeyPart1 属性,这意味着您刚刚从 KeysToOmit 中提取部分

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

深入浅出事件流处理NEsper(二)

事件表达有以下共性: • 所有的事件表示支持嵌套,索引和映射属性(亦称属性表达),在下面详细解释前。嵌套级别没有限制。 • 所有的事件表示提供事件类型元数据。这包括嵌套属性类型元数据。...from OrderEvent 与动态属性协同提供有用函数如下: • CAST函数动态属性(或表达式)转换成给定类型。 • exists函数检查是否存在一个动态属性。...如果事件有该名称属性,返回true,否则返回false。 • instanceof函数检查动态属性(或表达式是否是任何给定类型。 • typeof函数返回字符串类型动态属性名称。...一是采用一个整数类型作key,并返回该属性方法,GetSubordinate,或一个返回数组类型,或实现迭代方法。...• 一个Map便用事件类型名称可能代表一个Map嵌套,或者Map嵌套数组. • 嵌套级别没有限制 • 动态属性,可以用来查询Map内可能无法预先知道key. • 在嵌套结构访问路径后面不能映射不存在实体

1.5K100

【JS】325- 深度理解ES6解构赋值

这段代码额外定义了一个局部变量 age,然后尝试为它赋值,然而在 person 对象上,没有对应属性名称属性,所以它像预期中那样赋值为 undefined。...只有对象 person 上没有属性或者属性为 undefined 时该默认才生效。 嵌套对象解构赋值 解构嵌套对象仍然与对象字面量语法相似,可以将对象拆解以获取你想要信息。...用一张图来解释一下其中解构过程: ? 默认数组解构赋值表达式也可以为数组任意位置添加默认,当指定位置属性不存在或其为 undefined 时使用默认: ?...上面代码数组 list 只有两个元素,变量 city 没有对应匹配,但有一个默认 BJ,所以最终 city 输出结果不是 undefined 而是默认 BJ。...嵌套数组解构赋值 就像对象一样,也可以对嵌套数组进行解构操作,在原有的数组解构模式插入另一个数组解构模式,即可将解构过程深入到下一级: ?

3.9K12

50道JavaScript详解面试题,你需要了解一下

在这种情况下,只有一个唯一对象,它具有两个常量x和y,它们指向内存唯一对象,并在控制台上返回True。 6、数组对象是JavaScript原始对象吗?...在JavaScript,我们处理大多数事物都是对象,类似地,数组只是JavaScript特殊对象,它们具有其他对象所没有属性。 7、以下函数返回类型是什么?...不可以,因为字符串在JavaScript是不可变,指向字符串变量可以分配给另一个字符串。 21、承诺链嵌套捕获可以捕获在承诺链向上抛出错误吗?...它返回h,因为数组JavaScript是从零开始,因此arr [2] [1]将可以访问外部数组第3个元素和内部数组第2个元素,从而得出“ h”。...是的,例如,在if语句中,需要在评估返回一个布尔,例如if(a!== b)。 50、JavaScript哪个ES6函数返回一个数组? map()和filter()。

3.5K40

写给小白开源编译器

// 检查是否一个左括号: if (char === '(') { // 如果有,我们会存一个类型为 `paren` 新标记到数组,并将设置为一个左括号。...// 所以我们来检查是否有空格存在,如果存在,就继续下一次循环,做除了存储到标记数组之外其他操作即可 let WHITESPACE = /\s/; if (WHITESPACE.test(char)...在上面我们已经了解了可能是数字 (subtract 4 2) 也可能是字符串 (concat "foo" "bar"),只要把和类型匹配上就好: // 首先先检查一下是否有`number`标签. if...`CallExpression` 节点上定义一个 context, // 它是 expression arguments 这个数组引用,我们可以向其中放入参数。...); // 对于`CallExpression`我们将打印`callee`, 新增一个左括号 // 然后映射一个`arguments`数组节点,并用代码生成器执行,每一个节点运行完之后加上逗号

61710

Js面试题__附答案

19、JavascriptNULL是什么意思? NULL用于表示无或无对象。它意味着没有对象或空字符串,没有有效布尔没有数值和数组对象。 20、delete操作符功能是什么?...pop()方法与shift()方法类似,但不同之处在于Shift方法在数组开头工作。此外,pop()方法将最后一个元素从给定数组取出并返回。然后改变被调用数组。...35、什么是JavaScriptunshift方法? Unshift方法就像在数组开头工作push方法。该方法用于将一个或多个元素添加到数组开头。 36、对象属性如何分配?...可以在JavaScript中使用。 *运算符没有括号。 46、一个特定框架如何使用JavaScript超链接定位? 可以通过使用“target”属性在超链接包含所需帧名称来实现。...在innerHTML没有验证余地,因此,更容易在文档插入错误代码,从而使网页不稳定。 57、如何在不支持JavaScript旧浏览器隐藏JavaScript代码?

8.8K30

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

; // This works 6.5 测试属性 JavaScript 对象可以被视为属性集合,通常有必要能够测试是否属于该集合——检查对象是否具有给定名称属性。...相反,您可以创建一个新对象,将默认复制到其中然后用 o 属性覆盖这些默认: o = Object.assign({}, defaults, o); 我们将在 §6.10.4 中看到,您还可以使用...对象字面量语法,包括 ES6 及以后版本许多新特性。 如何读取、写入、删除、枚举和检查对象属性是否存在。...(这非常类似于稍后将在本章介绍数组map()方法,但在构建数组时执行映射比构建数组然后将其映射到另一个数组更有效。) 7.2 读取和写入数组元素 使用[]运算符访问数组元素。...有时,明确地访问对象属性数组索引会更清晰。 8.3.6 参数类型 JavaScript 方法参数没有声明类型,并且不对传递给函数执行类型检查

16110

JavaScript浅拷贝与深拷贝

浅拷贝是创建一个新对象或数组,并将原始对象或数组引用复制给它。这意味着新对象和原始对象将共享相同内存地址,修改其中一个对象属性或元素也会影响另一个对象。...相反,深拷贝是创建一个完全独立对象或数组,新拷贝将具有与原始对象或数组相同,但是它们在内存是彼此独立,相互之间修改不会互相影响。...扩展运算符可以处理浅对象深拷贝(非嵌套),即将一个对象顶级属性复制到另一个对象。然而,当涉及嵌套对象或多层级结构时,扩展运算符会遇到限制。...在 JavaScript ,当需要复制嵌套对象或数组时,深拷贝变得非常重要。深拷贝是一种创建独立全新对象方法,它递归地复制每个嵌套对象和数组,有效地避免了使用共享内存带来修改问题。...该方法首先将原始对象序列化为 JSON 字符串,然后再解析字符串并创建一个新对象,以确保所有属性嵌套对象都被复制到全新对象

22410

Apriso 开发葵花宝典之五 Process Builder JavaScript

如果使用相同JavaScript函数有许多不同操作,请将它们保存到一个外部文件,并将其链接到JavaScript选项卡。...:需要在Grid->属性设置Class Name,$(" ***"),其中***为所设置样式ClassName名称 按钮:$("input[value='***']"),其中***为所设置状态项系统参数...嵌套一个问题是变量名和循环。就像你通常以i作为迭代器变量开始第一个循环一样,你将继续使用j,k,l等等。...lots of rows to table parent.append( table ); 不要对不存在元素采取行动 ,JQuery不会告诉您是否试图在一个空选择上运行大量代码—它会继续运行,就好像没有任何问题一样...尽量不要使用HTML选项卡代码 检查边界条件,常用边界条件检查数据长度,数据类型,可被0整除等 输入输出使用不同变量名称 开始于前一行代码同一行上左花括号, if(myState ===

51650

JavaScript 循环

in 后面是一个对象或数组类型表达式。在遍历对象或数组过程,把或取一个赋值给 variable。...然后执行 statement 语句,其中可以访问 variable 来读取每个对象属性数组元素。执行完毕,返回继续枚举下一个元素,以此类推知道所有元素都被枚举为止。...然后使用 for/in 迭代对象属性,把每个属性寄存到一个数组。...in o); //遍历对象o,然后把所有属性都赋值到数组 其中 for (a[n++] in o); 语句实际上是一个空循环结构,分号为一个空语句。...i in a) { //遍历数组对象a document.write(i + ": " + a[i] + ""); } 在上面示例,共获取 5 个元素,其中包括 3 个原生元素,一个继承属性

16130

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

123 location对象各种url属性是什么? 124 如何在javascript获取查询字符串? 125 如何检查对象是否存在键?...131 你如何在javascript显示当前日期? 132 你如何比较两个日期对象? 133 你如何检查一个字符串是否以另一个字符串开头? 134 你如何在javascript修剪字符串?...360 如何从数组删除虚假? 361 你如何获得数组唯一? 362 什么是解构别名? 363 如何在不使用 map 方法情况下映射数组? 364 你如何清空一个数组?...事件冒泡是一种事件传播,其中事件首先在最内层目标元素上触发,然后在同一嵌套层次结构目标元素祖先(父级)上依次触发,直到到达最外层 DOM 元素。...事件捕获是一种事件传播,其中事件首先被最外层元素捕获,然后在同一嵌套层次结构目标元素后代(子级)上连续触发,直到它到达最内层 DOM 元素。

12.7K20

大话 JavaScript(Speaking JavaScript):第十六章到第二十章

然后它们需要存储空间。提供该存储空间数据结构在 JavaScript 称为环境。它将变量名映射。其结构与 JavaScript 对象结构非常相似。环境有时会在您离开其作用域后继续存在。...第 1 层:单个对象 大致上,JavaScript 所有对象都是从字符串到映射(字典)。对象(键,)条目称为属性属性键始终是文本字符串。...定义属性 定义属性意味着根据属性是否已存在而有所不同: 如果属性不存在,则创建一个属性,其属性由描述符指定。如果描述符没有相应属性,则使用默认。默认属性名称含义决定。...由于 JavaScript 没有内置映射数据结构,对象经常被用作从字符串到映射。...让我们首先检查普通对象,然后找出为什么无原型对象是更好映射。 普通对象 通常,您在 JavaScript 创建每个对象至少都有Object.prototype在其原型链

32720

C++ Qt开发:运用QJSON模块解析数据

该格式是基于JavaScript语言一个子集,但它是一种独立于语言数据格式,因此可以在许多不同编程语言中使用。...该数据是以键值对形式组织其中键是字符串,可以是字符串、数字、布尔数组、对象(即嵌套键值对集合)或null,在Qt默认提供了QJson系列类库,使用该类库可以很方便解析和处理JSON文档...,配置文件ObjectInArrayJson则是一个字典嵌套了另外两个字典而每个字典又是一个Value数组,而与之相对应ArrayJson则是在列表嵌套了另外一个列表,这两结构使用读者可参照如下案例...,解析多字典嵌套数组配置文件ObjectArrayJson则是我们需要解析内容,在之前解析字典部分保持与上述案例一致,唯一不同是我们需要通过value("ulist").toArray(...1.5 解析多字典嵌套实现解析多个字典嵌套或多个列表嵌套结构,配置文件NestingObjectJson则是字典嵌套字典,而ArrayNestingArrayJson则是列表嵌套列表,两种解析方式基本一致

20410

使用 Optional Chaining 做数据防御

什么是Optional Chaining Optional Chaining允许我们检查对象是否存在,然后才试图访问它属性。...其他编译语言也有类似的功能,C# Null-conditional operator。 为什么我们需要Optional Chaining 在访问对象或数组之前,您是否曾经检查过它属性?...因此,如果不判断他父级是否一个对象就开始访问其属性可能会遇到错误: 当b为undefined时就报错了。 Optional Chaining 可以解决什么问题呢?...告别了繁琐各种 & 和 各种层层检查,这又是一股清流。 但是,请记住可选链接操作符是?.不是?这意味着当你访问数组其中一个元素时,应该这样: const firstItem = a?.b?....undefined : a.b).c; 删除对象属性 delete a?.b // 等价于 a == null ?

42340

JS手撕(二) 数组扁平化、浅拷贝、深拷贝

也可以使用some()方法来更简单地实现,因为some()方法返回数组是否有元素满足条件布尔,因为可以将条件设置为数组是否有元素是数组。...拷贝 如果我们给把一个对象直接赋值给另一个对象,那么我们修改其中一个对象都会影响到另一个对象(非重新赋值),因为它们是同一个引用。...遍历法 因为浅拷贝只需要拷贝第一层,所以只需要通过遍历,然后给新对象赋值旧对象属性即可,因为如果是只有一层的话,那么就不会是对象。...只需要使用map来缓存拷贝过数据即可,键为拷贝目标,为拷贝结果。先判断有没有拷贝过,如果有,直接返回之前拷贝过数据。...面试官连环追问:数组拍平(扁平化) flat 方法实现 - 掘金 (建议精读)原生JS灵魂之问(),检验自己是否真的熟悉JavaScript? - 掘金

1.3K10

PySpark 数据类型定义 StructType & StructField

PySpark StructType 和 StructField 类用于以编程方式指定 DataFrame schema并创建复杂列,嵌套结构、数组映射列。...StructType是StructField集合,它定义了列名、列数据类型、布尔以指定字段是否可以为空以及元数据。...使用 StructField 我们还可以添加嵌套结构模式、用于数组 ArrayType 和用于键值对 MapType ,我们将在后面的部分详细讨论。...DataFrame 是否存在列 如果要对DataFrame元数据进行一些检查,例如,DataFrame是否存在列或字段或列数据类型;我们可以使用 SQL StructType 和 StructField...对于第二个,如果是 IntegerType 而不是 StringType,它会返回 False,因为名字列数据类型是 String,因为它会检查字段每个属性

74630

JavaScript权威指南 - 函数

需要注意是,this是一个关键字,Javascript语法不允许给它赋值。再者,关键字this没有作用域限制,嵌套函数不会从外层调用它函数中继承this。...函数实参和形参 JavaScript函数定义不需要指定函数形参类型,调用函数时也不检查传入形参个数。...JS可以自动转换,但是还存在其他情况:比如,一个方法期望它第一个实参为数组,传入一个数组就可能引发问题,这时就应当在函数体添加实参类型检查逻辑。...//初始化函数对象计数器属性。 uniqueInteger.counter = 0; //先返回计数器然后计数器自增1。...JavaScript没有办法声明只在一个代码块内可见变量。基于这个原因,常常需要定义一个函数用作临时命名空间,在这个命名空间内定义变量都不会污染到全局变量。

2.9K30
领券