当前位置: 首页 > 面试题库 >

@@(“ at at”)在ES6 JavaScript中是什么意思?

汤洋
2023-03-14
问题内容

我已经@@在几页中注意到有关ES6的新功能,但我不知道它的确切含义(实际上是语法还是某种文档惯例)。而且很难谷歌。有人可以解释吗?


问题答案:

@@描述所谓的众所周知的符号。(请注意,它实际上不是JS中有效的语法。)根据ES6 / ES2015 1 规范:

众所周知的符号是内置符号值,此规范的算法明确引用了这些值。它们通常用作属性的键,其值用作规范算法的扩展点。除非另有说明,否则众所周知的符号值由所有代码领域(8.2)共享。

代码领域指的是JavaScript环境的不同实例。例如,根文档的Code Realm与运行在.NET中的JavaScript的Code
Realm不同<iframe>

一个对象来自哪个代码领域的问题的一个例子是,当试图用来instanceof确定一个对象是否是一个数组时(提示:如果它来自另一个框架,它将无法工作)。为了避免这些问题出现在符号中,它们是共享的,因此@@toString无论对象来自何处,对(say)的引用都将起作用。

其中一些直接通过Symbol构造函数公开,例如,@@toPrimitive公开为Symbol.toPrimitive。在尝试将对象转换为原始值时,可以使用该值覆盖产生的值,例如:

let a = { [Symbol.toPrimitive]: () => 1 };
console.log(+a); // 1
console.log(a.valueOf()); // (the same object)
console.log(a.toString()); // "[object Object]"

通常,符号用于在不能与随机属性名称冲突的对象上提供唯一属性,例如:

let a = Symbol();
let foo = { [a]: 1 };
foo[a]; // 1

除了从某处获取符号之外,没有任何方法可以访问值(尽管您可以通过调用来获取对象的所有符号Object.getOwnPropertySymbols,因此它们不能用于实现私有属性或方法)。



 类似资料:
  • 问题内容: 我已经看到了声明,接口和类 这是什么意思? 问题答案: 没有证据,我相信您在谈论Java的泛型支持… 泛型允许您抽象类型 在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常会这样做。 这导致在运行时做出许多困难的选择,您必须进行运行时检查以查看是否有可能将给定的Object强制转换为可用类型…例如 现在,这已经很明显了,但是如

  • 问题内容: 什么是在这个CSS规则是什么意思? 问题答案: 是相邻的同级组合器。 这意味着选择只选择自带 之后 的。 插图: 选择了什么,没有选择什么: 选择 这个来之后第一。 未选择 这出现在第一后而不是在。由于它不会立即跟随,因此未选中。 但是,由于它仍然紧随元素之后,选择器不会立即匹配此元素,而是将使用通用的同级组合器来匹配该元素。 未选择 这位于内,并且在引号内没有满足其选择器的内容。

  • 问题内容: 我想知道 = + _ 运算符在JavaScript中的含义。看起来像是在做作业。 例: 问题答案: r = +_; 尝试将任何内容强制转换为数字。 只是一个变量名(不是运算符),可以是,等等。 例: 将“ 1”强制转换为纯数字1。 现在,不是。 此外,根据算术运算符的MDN页面: 一元加号运算符位于其操作数之前,并求值为其操作数,但是 尝试将其转换为数字(如果尚未转换为数字) 。 […

  • 问题内容: 嗨,我遇到了以下代码 这到底是怎么回事?我不确定“&”在做什么。 问题答案: 回答 该符号是按位与运算符。与1一起使用时,基本上会屏蔽该值以提取最低位,换句话说,它将告诉您该值是偶数还是奇数。 有关Python运算符的更多信息 有关更多信息,请参见:http : //wiki.python.org/moin/BitwiseOperators 为什么检查奇数与偶数比较有效 编辑:添加此部

  • 问题内容: 例如,我知道SELECT * FROM example_table; 方法。但是,不知道代码的每个部分意味着什么,我感到不舒服。我只是一个初学者,所以你们能帮我吗。非常感谢。 问题答案: 我通过分隔代码的每个部分为您提供答案。 SELECT ==它命令计算机包括或从数据库名称(表)中选择每个内容。 (*)==表示所有{这里的代码表示包括数据库中的所有内容。} FROM ==它是指我们必

  • 问题内容: 我想知道在PHP语言中意味着什么。我看到有人在用 不知道为什么。有人可以帮我解释一下吗? 问题答案: 该运营商告诉PHP取消错误消息,这样他们就不会显示。 例如,使用: 会导致显示警告,告诉您MySQL查询无效,而 不会。 但是请注意,这是非常糟糕的编程习惯,因为它不会使错误消失,它只会将它们隐藏起来,并且会使调试变得更加糟糕,因为您看不到代码的实际问题。 而不是使用的,应禁用 ,并

  • 问题内容: 运算符在以下代码中是什么意思? 该代码是PHP.net的注释。用户没有指定的值,或$传球。我通常会看到等于或大于。 但是,我不确定它的用途,因为它没有分配。我读为 处理整数用户列表 这样每个用户的值等于或大于密码 以上对我来说没有意义。 问题答案: 是关联数组的分隔符。在该foreach循环的上下文中,它将数组的键分配给,将值分配给。 例: 请注意,这也可以用于数字索引数组。 例:

  • 问题内容: 有谁知道在mysql注入的上下文中是什么意思? 问题答案: 它是MySQL的行注释定界符版本。在标准SQL中,行注释定界符为。 因此,在SQL注入的情况下,如果攻击者知道您正在使用MySQL,他可能会使用它突然终止恶意SQL语句,从而导致MySQL忽略后面的内容并仅执行它之前的内容。但是,这仅对单行SQL语句有效。这是一个例子: 输入: 用户名: 密码: 结果SQL: 这样执行,返回