为什么赋值中左侧的表达式并不总是有效?

2023-12-08

这段代码的工作原理:

let foo;

(foo) = 'bar';

console.log(foo);

这让我相信任何表达式都可以作为赋值的左侧,但是,此代码不起作用:

let foo1 = "bar";
let foo2;
let foo3;
(foo1 && foo2 && foo3) = "foobar"; // The left-hand side evaluates to undefined which can't be assigned

console.log(foo1, foo2, foo3);

是什么使得左侧在赋值中有效,为什么它不能总是表达式?


规范的相关位是here:

如果LeftHandSideExpression 的AssignmentTargetType 不简单,则为语法错误。

and here.

简化版本是(如果我们将解构放在一边)您可以将值分配给变量或对象的属性。

Given (foo),括号毫无意义,表达式只是一个变量名。这可以。

Given (foo1 && foo2 && foo3)从变量中读取值,并使用&&运算符,结果是value.

您不能将值分配给值,只能分配给属性或变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么赋值中左侧的表达式并不总是有效? 的相关文章

随机推荐

  • 根据SDK版本加载类

    有什么方法可以根据手机运行的操作系统版本加载类吗 例如 我制作了一个需要 1 6 Android 的应用程序 有没有办法让我根据手机运行的操作系统加载一个类或另一个类 我特意询问这个联系人 数据库已从 1 6 更改为 2 0 旧版本不会在新
  • for in 循环内部如何工作 - Objective C - 基础

    我找到了这个答案 https stackoverflow com a 5163334 1364174 其中介绍了如何for in循环被实现 NSFastEnumerationState enumState 0 id objects MAX
  • 带查找的动态数组的行式文本连接

    这个问题与以下问题密切相关这个答案来自用户马克 菲茨帕特里克 My sheet image 我在 M3 和 AB3 同一列表 中有一个国家 地区代码标题的变量列表 以及在 A4 中作为行的唯一 提及 的变量列表 M4 和 AB4 中的公式计
  • AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“groupby”

    我有一个包含 3 列的数据框 我想通过执行以下操作来根据筷子长度对列进行分组 meansByCL df chopstick groupby Chopstick Length Food Pinching Efficiency mean res
  • 使用 IP 地址和 SNI 启动 https 连接

    我在用着WinHttpConnect为了在我的 Windows 应用程序和远程服务器之间建立 https 连接 但是 我的服务器不一定有 DNS 地址 因此通过设置建立连接pswzServerName到原始 IPV4 地址 WINHTTPA
  • 如何将单元中定义的组件添加到Delphi调色板?

    我有一个定义组件的 pa 单元 我怎样才能将它添加到调色板 我知道的唯一方法是将其包含在包中 有直接的方法吗 在一个包中 有一个单元有一个名为Register 大小写很重要 在该过程中 调用RegisterComponents在您想要显示在
  • 如何获取Qt中通过样式表设置的小部件的字体?

    我有 Qt 应用程序 应用了自定义样式表 以及一般的所有小部件 并在此样式表中包含自定义字体 但是当尝试获取某些小部件的字体时font 方法返回不同的字体 我想获得a的字体QWidget这是由样式表设置的 这font 方法总是返回全局系统字
  • 适用于 Xcode 6 的 iPhone 4 模拟器

    我需要模拟 iPhone 4 不是 iPhone 4S 我得到了 iPhone 的完整列表 但 4 不是其中之一 在谷歌上搜索了一个小时后 我抓狂了 我做错了什么 我也尝试过修改构建设置但无济于事 没有针对 iPhone 4 的选项 您认为
  • 将范围复制到虚拟范围

    是否可以将范围复制到虚拟范围 或者是否需要我将其随意粘贴到工作簿中的另一个范围中 dim x as range x copy of Range A1 A4 显然我通常使用以下代码 dim x as range set x Range A1
  • 未知服务错误 botocore

    我正在尝试使用最近的亚马逊转录服务 transcribe boto3 client transcribe 我收到以下错误 botocore exceptions UnknownServiceError Unknown service tra
  • 创建独立进程!

    我正在尝试从 C 中的服务创建一个进程 这个新进程是作为子进程创建的 我想创建一个独立的进程而不是子进程 我正在使用 CreateProcess 函数来实现相同的目的 由于我创建的新进程是一个子进程 当我尝试在服务级别杀死进程树时 它也会杀
  • CSS中的梯形div

    我想要内容为梯形的部分div但我不知道如何开始或实现我的目标的最佳方法是什么 我遇到过这个解决方案 但没有太多信息可供我理解CSS3 转换为梯形 HTML div class section p content here p div 这是创
  • 在固定大小的大正方形中创建动态等大小的小正方形网格

    我怎样才能在固定的大正方形内创建动态的等大小的正方形 尺寸应根据正方形的数量 这将是最通用的解决方案 使用CSSgrid根据子元素的总和 可计算列和行 JS解释 grid children length 计算以下孩子的数量grid div
  • 并发 hashmap 不需要同步 getter/setter 吗?

    如果我使用并发哈希图并且我有设置和获取值的方法 因为我使用并发哈希图 我需要使 getter 和 setter 同步吗 这是多余的吗 有一种设计更好吗 另外 没有同步的并发哈希图是否比具有同步 getter 和 setter 的哈希图更快
  • 全屏模式下 JDialog 不显示

    我有一个在全屏模式下运行的应用程序并且运行良好 现在我需要添加一个简单的 未修饰的对话框 但我遇到了麻烦 如果我运行应用程序最大化但不是全屏 对话框会按预期显示和运行 当我切换回全屏时 该对话框将不会显示 该对话框扩展了 JDialog 仅
  • php tree ul li 数组中的层次结构菜单

    我们从 mysqli 查询输出中得到这个数组 items Array Array id gt 1 title gt menu1 parent id gt 0 Array id gt 2 title gt submenu1 1 parent
  • 查找版本并使用 Cleartool 删除它

    我正在尝试从特定分支递归删除某些版本 文件 find提供正确的文件 现在取决于rmver删除版本但这给了我一个错误 我正在为语法而苦苦挣扎 cleartool gt find Component Test element brtype P
  • 关闭hadoop HDFS后数据丢失?

    你好 我正在学习hadoop 我有一个简单的愚蠢问题 在我关闭HDFS 通过调用hadoop home sbin stop dfs sh 后 HDFS上的数据丢失了还是可以恢复 如果您停止 HDFS 数据不会丢失 只要您将 NameNode
  • 如何在Python函数中执行QWebEngine

    我有一个 WebEngine 类来读取网页并为它们创建 BeautifulSoup 这是代码 import sys from bs4 import BeautifulSoup import os from PyQt5 import QtCo
  • 为什么赋值中左侧的表达式并不总是有效?

    这段代码的工作原理 let foo foo bar console log foo 这让我相信任何表达式都可以作为赋值的左侧 但是 此代码不起作用 let foo1 bar let foo2 let foo3 foo1 foo2 foo3