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

ES2019 中 8 个非常有用功能

可以把它看作是 flat() 高级版本。区别在于 flatMap() 方法把 flat() 与 map() 结合了起来。展平数组时,可以调用回调函数。...这个方法作用很简单。它需要键值对可迭代形式,例如数组Map,然后将其转换为对象。...它们通常用于标识对象属性。ES2019 增加了 description 属性。这个属性是只读无法更改它值。它用来返回给定符号描述。 要牢记两点。首先,创建符号时描述不是必须,而是可选。...所以当你尝试访问 description 时,可能会得到除 undefined 之外任何信息。如果你尝试访问不带描述符号描述,则会得到 undefined(未定义)信息。...它只是为了更容易识别正在正在使用符号。 说明:创建新符号时,可以通过将一些字符串作为参数传递给 Symbol() 对象来添加描述。如果留空,description 将会是 undefined。

2.1K20

Dan Abramov脑中JS知识图谱

当你想从一个对象读取一个属性或向其赋值时,你可以使用点(.)符号。...这是因为const只会阻止对iceCream变量本身赋值,但我们却突变了它所指向对象一个属性(flavor)。有些人发誓不再使用const,因为他们认为这太容易引起误解了。 数组。...如果我们读取一个不存在属性,会发生什么?例如,iceCream.taste(但我属性叫 flavor)。简单答案是我们会得到特殊未定义值。...因此,如果冰激凌上没有味道属性,JavaScript会在它原型上寻找味道属性,然后对象原型上寻找,以此类推,如果它到达这个 "原型链 "末端而没有找到.taste,才会给我们未定义。...闭包:通常情况下,当你退出一个函数时,它所有变量都会 "消失"。这是因为没有什么需要它们了。但是,如果你一个函数里面声明一个函数呢?那么内部函数仍然可以以后被调用,并读取外部函数变量。

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

1000多个项目中十大JavaScript错误以及如何避免

当你读取一个属性或调用一个未定义对象方法时,Chrome 中就会报出这样错误。 [image.png] 导致这个错误发生原因有很多,常见一种情况是渲染 UI 组件时,不正确地初始化状态。...这是 Safari 中读取属性或调用未定义对象方法时发生错误,这与 Chrome 上述错误基本相同,只是 Safari 使用不同错误消息。...这是 Safari 中读取属性或调用空对象方法时发生错误。...要验证它们不相等,请使用严格相等运算符: 实际情况中,导致这种错误原因之一是:元素加载之前,就尝试 JavaScript 中使用 DOM 元素。...将 crossorigin 属性添加到脚本标签之前,请确保正在向脚本文件发送 header。

6.2K30

1000个项目中前10名JavaScript错误介绍

当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易 Chrome 开发者控制台中进行测试(尝试)。...TypeError: ‘undefined’ is not an object 这是 Safari 中读取属性或调用未定义对象方法时发生错误。...TypeError: null is not an object 这是 Safari 中读取属性或调用空对象方法时发生错误。...要验证它们不相等,请尝试使用严格相等运算符 ===: 现实世界例子中,这种错误可能发生一种场景是:如果在加载元素之前尝试 JavaScript 中使用元素。...TypeError: Cannot read property ‘length’ 这是 Chrome 中发生错误,因为读取未定义变量长度属性

6.2K10

10 种最常见 Javascript 错误

当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易 Chrome 开发者控制台中进行测试(尝试)。 ?...TypeError: ‘undefined’ is not an object 这是 Safari 中读取属性或调用未定义对象方法时发生错误。...TypeError: null is not an object 这是 Safari 中读取属性或调用空对象方法时发生错误。...现实世界例子中,这种错误可能发生一种场景是:如果在加载元素之前尝试 JavaScript 中使用元素。 因为 DOM API 对于空白对象引用返回值为 null。...TypeError: Cannot read property ‘length’ 这是 Chrome 中发生错误,因为读取未定义变量长度属性。 您可以 Chrome 开发者控制台中进行测试。

6.8K80

如何在Node.js中编写和运行您第一个程序

log方法打印到stdout流,因此您可以控制台中看到它。 Node.js上下文中, 流是可以接收数据对象,如stdout流,或者可以输出数据对象,如网络套接字或文件。...argv属性是一个字符串数组,包含给予程序所有命令行参数。...第4步 - 访问环境变量 环境变量是存储程序外部并由OS提供键值数据。 它们通常由系统或用户设置,可供所有正在运行进程用于配置或状态目的。 您可以使用Nodeprocess对象来访问它们。...process.env对象是环境变量名称与作为字符串存储值之间简单映射。 与JavaScript中所有对象一样,您可以通过方括号中引用其名称来访问单个属性。...它接受一个回调函数 ,用于迭代数组每个元素。 你args数组使用forEach ,为它提供一个回调函数,用于环境中打印当前参数值。 保存并退出该文件。

8.4K30

面试必备:30 个 Java 集合面试问题及答案

你可以通过它索引来访问任何元素。List更像长度动态变换数组Map是一个将key映射到value对象.一个Map不能包含重复key:每个key最多只能映射一个value。...11.通过迭代器fail-fast属性,你明白了什么? 每次我们尝试获取下一个元素时候,Iterator fail-fast属性检查当前集合结构里任何改动。...集合是受map支持map变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...Collections内部使用数组排序方法,所有它们两者都有相同性能,只是Collections需要花时间将列表转换为数组

95920

来自1000多个项目的10大JavaScript错误浅析

Chrome里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,Chrome开发者控制台可以很容易地重现这个错误。...TypeError: ’undefined’ is not an object Safari里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,Safari开发者控制台可以很容易地重现这个错误...TypeError: null is not an object Safari里读取空(null)对象属性或调用空对象方法时就会发生这个错误,Safari开发者控制台可以很容易地重现这个错误。...TypeError: Object doesn’t support property IE里读取未定义对象属性或调用未定义对象方法时就会发生这个错误,IE开发者控制台可以很容易地重现这个错误。...尽管jQuery尝试对这种行为进行规范化,但最好还是使用传给函数event对象: function myFunction(event) { event = event.which || event.keyCode

6.2K80

1000多个项目中十大JavaScript错误以及如何避免

当你读取一个属性或调用一个未定义对象方法时,Chrome 中就会报出这样错误。 ? 导致这个错误发生原因有很多,常见一种情况是渲染 UI 组件时,不正确地初始化状态。...这是 Safari 中读取属性或调用未定义对象方法时发生错误,这与 Chrome 上述错误基本相同,只是 Safari 使用不同错误消息。 ? 3....这是 Safari 中读取属性或调用空对象方法时发生错误。 ?...将 crossorigin 属性添加到脚本标签之前,请确保正在向脚本文件发送 header。...Uncaught TypeError: Cannot Set Property 当尝试访问未定义变量时,总会返回 undefined。我们也无法获取或设置 undefined 任何属性

8.2K40

10 种 JavaScript 最常见错误

当你读取一个未定义对象属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易 Chrome 开发者控制台中进行测试。 ?...2、 TypeError: ‘undefined’ is not an object 这是 Safari 中读取属性或调用未定义对象方法时发生错误。...3、 TypeError: null is not an object 这是 Safari 中读取属性或调用空对象方法时发生错误。...我们工作中,这种错误可能发生一种场景是:如果在加载元素之前尝试 JavaScript 中使用元素。 因为 DOM API 对于空白对象引用返回值为 null。...8、 TypeError: Cannot read property ‘length’ 这是因为读取未定义变量长度属性而发生错误。 您可以 Chrome 开发者控制台中进行测试。 ?

8.5K20

【收藏分享】2022年PHP中高级面试题(三)

而将不同关键 字映射到不同单元方法就叫做哈希函数,冲突解决方案: 链接法 即当不同关键字映射到同一单元时,同一单元内使用链表来保存这些关键字。...( arr , callable callback ) 使用回调函数迭代地将数组简化为单一 值。...array_map(callback callback , arr) 返回用户自定义函数作用后数组。回调函数接 受参数数目应该和传递给 array_map() 函数数组数目一致。...Ioc意味着将你设计好对象交给容器控制,而不是传统在你对象内部直接控 制。谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获 取(不只是对象包括比如文件等)。...MVC和插件开发中,使用反射很常见,但是反射消耗也很大,可以找到替代 方案情况下,就不要滥用。PHP有Token函数,可以通过这个机制实现一些反射功能。

2.3K20

JavaScrip最容易犯十大错误及其避免方法()

Uncaught TypeError: Cannot read property 如果你是一个javascript开发者,你肯定看到过此错误 读取属性或调用方法对象未定义 这可能由于许多原因而发生,...反过来,这意味着ItemList将项目定义为未定义,并且您在控制台中收到错误 - “Uncaught TypeError:无法读取未定义属性map’”。 这很容易解决。...最简单方法:构造函数使用合理默认值初始化状态。...Uncaught TypeError: Cannot set property 当我们尝试访问未定义变量时,它总是返回undefined,我们无法获取或设置undefined任何属性。...即使没有Typescript,使用它们之前使用guard子句来检查对象是否未定义也是有帮助

11610

面试必备:30 个 Java 集合面试问题及答案

你可以通过它索引来访问任何元素。List更像长度动态变换数组Map是一个将key映射到value对象.一个Map不能包含重复key:每个key最多只能映射一个value。...11.通过迭代器fail-fast属性,你明白了什么? 每次我们尝试获取下一个元素时候,Iterator fail-fast属性检查当前集合结构里任何改动。...集合是受map支持map变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...Collections内部使用数组排序方法,所有它们两者都有相同性能,只是Collections需要花时间将列表转换为数组

46420

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

Line2中,我们使用===运算符来检查两个字符串基元而不是字符串对象,因此我们得到True。 5、控制台输出是什么,为什么? 与之前问题类似,我们比较了两个唯一对象。...JavaScript中,我们处理大多数事物都是对象,类似地,数组只是JavaScript中特殊对象,它们具有其他对象所没有的属性。 7、以下函数返回类型是什么?...10、以下是用于打印“用户名”有效语法? 以下语法是有效,因为我们正在将异步函数返回值传递给callback。 11、typeof和instanceof之间没有什么区别?...控制台输出将为Map {'a'=> 2,'b'=> 2,'c'=> 1},这意味着第二个映射所有相同键将覆盖第一个映射键。 24、括号符号可以像点符号一样链接吗?...它返回h,因为数组JavaScript中是从零开始,因此arr [2] [1]将可以访问外部数组第3个元素和内部数组第2个元素,从而得出值“ h”。

3.5K40

面试必备:30 个 Java 集合面试问题及答案

你可以通过它索引来访问任何元素。List更像长度动态变换数组Map是一个将key映射到value对象.一个Map不能包含重复key:每个key最多只能映射一个value。...11.通过迭代器fail-fast属性,你明白了什么? 每次我们尝试获取下一个元素时候,Iterator fail-fast属性检查当前集合结构里任何改动。...集合是受map支持map变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...Collections内部使用数组排序方法,所有它们两者都有相同性能,只是Collections需要花时间将列表转换为数组

64020

40个Java集合类面试题和答案

你可以通过它索引来访问任何元素。List更像长度动态变换数组Map是一个将key映射到value对象.一个Map不能包含重复key:每个key最多只能映射一个value。...12.通过迭代器fail-fast属性,你明白了什么? 每次我们尝试获取下一个元素时候,Iterator fail-fast属性检查当前集合结构里任何改动。...集合是受map支持map变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作,以及对迭代器返回entry进行setValue外),迭代器结果会变为未定义

62830

JavaScript 编程精解 中文第三版 六、对象秘密

只是掩盖了一些 JavaScript 对象内部工作细节罢了。每个对象除了拥有自己属性外,都包含一个原型(prototype)。原型是另一个对象,是对象一个属性来源。...首先,可以使用null原型创建对象。 如果将null传递给Object.create,那么所得到对象将不会从Object.prototype派生,并且可以安全地用作映射。...如果你需要一个映射,它键不能轻易转换为字符串 - 比如对象 - 你不能使用对象作为你映射。 幸运是,JavaScript 带有一个叫做Map类,它正是为了这个目的而编写。...有时候你想直接向你构造器附加一些属性,而不是原型。 这样方法将无法访问类实例,但可以用来提供额外方法来创建实例。 类声明内部,名称前面写有static方法,存储构造器中。...我们正在重新定义set,但是想要使用原来行为。 因为this.set引用新set方法,所以调用这个方法是行不通类方法内部,super提供了一种方法,来调用超类中定义方法。

1.7K60

40个Java集合面试问题和答案

你可以通过它索引来访问任何元素。List更像长度动态变换数组Map是一个将key映射到value对象.一个Map不能包含重复key:每个key最多只能映射一个value。...12.通过迭代器fail-fast属性,你明白了什么? 每次我们尝试获取下一个元素时候,Iterator fail-fast属性检查当前集合结构里任何改动。...集合是受map支持map变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身移除操作以外),迭代器结果会变为未定义。...当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身移除操作,以及对迭代器返回entry进行setValue外),迭代器结果会变为未定义

77630

37个JavaScript基本面试问题和解答(建议收藏)

但在内部函数中,这不再指向myObject。因此,this.foo在内部函数中是未定义,而对局部变量self引用仍然范围内并且可以在那里访问。...最重要是,严格模式下,eval()语句内部声明变量和函数不会在包含范围中创建(它们是以非严格模式包含范围中创建,这也可能是问题常见来源)。 抛出无效使用错误删除符。...理想情况下,对具有未设置键JavaScript对象执行查找评估为未定义。但是运行这段代码会将这些属性标记为对象“自己属性”。 这是确保对象具有一组给定属性有用策略。...该代码将输出: undefinedJohn Doe 第一个console.log打印未定义,因为我们从hero对象中提取方法,所以stoleSecretIdentity()_name属性不存在全局上下文...例如,使用map()时,map()输出中空插槽将保持为空,但未定义插槽将使用传递给它函数映射: var b = [undefined];b[2] = 1;console.log(b); //

2.9K10

实效go编程--2

对于切片、映射和信道,make 用于初始化其内部数据结构并准备好将要使用值。...其键可以是任何相等性操作符支持类型, 如整数、浮点数、复数、字符串、指针、接口(只要其动态类型支持相等性判断)、结构以及数组。 切片不能用作映射键,因为它们相等性还未定义。...如对于一个值本应为零 "UTC" 条目,也可能是由于不存在该项而得到零值。你可以使用多重赋值形式来分辨这种情况。...此外,这种格式还能打印任意值,甚至包括数组、结构体和映射。 以下是打印上一节中定义时区映射语句。...实际上,你无法Go中编写一个类型 T 由调用者决定函数。这也就是为何 append 为内建函数原因:它需要编译器支持。 append 会在切片末尾追加元素并返回结果。

86370
领券