这个任务正确吗? [复制]

2024-02-13

在一些js库中我发现了这个代码片段:

var start, end, sel, scrollPos, subst;

[start, end, scrollPos, sel] = getSelection();

在我看来,这不是有效的分配,但代码似乎可以工作。你能帮我吗?

EDIT:

更长的版本:

...
var start, end, sel, scrollPos, subst;
        if (typeof(document["selection"]) != "undefined") {
            sel = document.selection.createRange().text;
        } else if (typeof(textarea["setSelectionRange"]) != "undefined") {
            [start, end, scrollPos, sel] = getSelection();
        }
...

这似乎是 JS 1.7 的一个功能,称为《解构作业》 https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7#Destructuring_assignment_(Merge_into_own_page.2Fsection)

解构赋值使得可以使用反映数组和对象字面量构造的语法从数组或对象中提取数据。

对象和数组文字表达式提供了一种创建临时数据包的简单方法。创建这些数据包后,您可以按照自己的方式使用它们。您甚至可以从函数中返回它们。

使用解构赋值可以做的一件特别有用的事情是在单个语句中读取整个结构,尽管您可以使用它们做许多有趣的事情,如下面充满示例的部分所示。

此功能类似于 Perl 和 Python 等语言中的功能。

...页面下方:

例如,您可以使用解构赋值来交换值:

var a = 1;
var b = 3;
[a, b] = [b, a];

就使用该功能而言,它似乎仅受 Mozilla Firefox 支持,这意味着只要您只支持该浏览器,使用它就完全可以接受。例如,可以编写浏览器插件来利用此功能。

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

这个任务正确吗? [复制] 的相关文章

  • Jquery获取选中的复选框

    您好 我想获取页面中选定复选框的列表 实际上我真正需要的是获取复选框旁边的元素的文本 该元素是一个 html 元素 li 代码如下 但它不起作用 这是我当前的 jQuery document ready function target cl
  • 将 Javascript 对象的属性从 string 更改为 int

    我有一个对象数组 每个对象具有三个属性 年份 总计 人均 例子 0 Object per capita 125 8 total 1007 2 year 2009 这些属性是字符串 我想创建一个循环来遍历数组并将它们转换为 int 我尝试了以
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • 从函数返回函数的目的是什么?

    阅读一些遗留代码 发现 A prototype setSize function var v1 new Vector2 return function size var halfSize v1 copy size multiplyScala
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • Number.IsNaN() 比 isNaN() 更糟糕吗

    Soooooo isNaNJavaScript 显然被破坏了 比如 isNaN isNaN isNaN true isNaN false isNaN 0 返回 false 当它们看起来都是 不是数字 在 ECMAScript 6 中 草案包
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray

随机推荐

  • Zend Form Element View 脚本的推荐路径

    我已经开始将表单元素视图脚本放在 application views scripts form 下 并能够通过 form scriptname phtml 引用它们 但现在我需要制作一个 表单 控制器 我意识到这是一个短视的解决方案 我见过
  • 如何从 WPF KeyDown 事件中获取普通字符?

    我想要传递的 ASCII 字符e Key来自 WPF 的属性KeyDown event 您可以使用 TextInput 事件而不是 KeyDown 事件吗 TextCompositionEventArgs 类允许您直接检索通过 e text
  • 如何在 C# 中计算“五的中位数”?

    五的中位数有时被用作算法设计的练习 并且众所周知是可计算的仅使用 6 次比较 实施这个的最好方法是什么 使用 6 次比较得出 5 的中位数 在 C 中 我所有的尝试似乎都导致了尴尬的代码 我需要漂亮且可读的代码 同时仍然只使用 6 次比较
  • 带 order by 和 limit 的 SQL Union All (Postgresql)

    在以下查询中我收到语法错误 SELECT
  • C++ 对象初始化(堆栈)

    今天我看到一个我不熟悉的类的 C 初始化 CPrice price CPrice 初始化通常应该是这样的 CPrice price 我猜第一个应该抛出错误或其他东西 这里会发生什么 我猜想该变量位于堆栈上 因为它没有用new 我使用 Vis
  • Core Data 管理对象上下文设计建议

    我们正在开发一个企业级应用程序 它将使用核心数据存储数以万计的对象 但我们在多个方面都遇到了问题 我们的应用程序有几个独立的系统 可以在需要时对数据进行操作 这些系统包括项目的发现 项目的加载 同步和UI显示 如果我们正确地设计我们的软件
  • 打开 SQL Server 实例的端口

    他们最近封锁了我们 SQL Server 上的所有端口 服务器有不同的实例 打开端口 1433 不起作用 我们需要开放什么才能允许访问SQL Server 在安装服务器实例的计算机上 启动 SQL Server 配置管理器实用程序 打开树形
  • 更改 R 中的绘图标签大小,cex 不起作用

    我正在 R 中制作一个非常简单的绘图 并且希望更改 y 轴 年份 上的字体大小 我已经用了所有的cex 命令 可以改变一切 除了这些年 这是我的矩阵 输入 2010 2011 CC 0 5550 0 480 P 3 6700 3 865 P
  • 如何避免重复代码?

    我对编程还很陌生 我注意到我在重复代码 protected void FillTradeSetups DBUtil DB new DBUtil DataTable dtTradeSetups dtTradeSetups DB GetTrad
  • 仅获取朋友的total_count - facebook-graph-api

    me fields friends获取 friends summary total count 72 我只是想total count 但它似乎不是我可以放入查询中的有效子字段 me fields friends summary or me
  • @code 在 Google Closure 中意味着什么?

    一个例子在这里 An implementation of code goog events Listenable with full W3C EventTarget like support capture bubble mechanism
  • 如何从 Hibernate 调用带有返回参数的 Oracle 函数?

    我的问题很像通过 Hibernate 获取 PL SQL 函数的返回值 https stackoverflow com questions 1068974 getting the return value of a pl sql funct
  • Spark 从 DataFrame 中删除重复行 [duplicate]

    这个问题在这里已经有答案了 假设我有一个像这样的 DataFrame val json sc parallelize Seq a 1 b 2 c 22 d 34 a 3 b 9 c 22 d 12 a 1 b 4 c 23 d 12 val
  • 当调试符号被分割成 dwo dwarf 文件时,gdb 找不到符号

    我想构建一个二进制文件g 并将调试信息分割到一个单独的文件中 所谓的DebugFission 假设您位于一个文件夹中 有一个文件src main cpp内容琐碎 int main 我想使用编译它 gsplit dwarf mkdir p o
  • “使用命名空间 std”有什么用? [复制]

    这个问题在这里已经有答案了 有什么用using namespace std 我希望看到外行术语的解释 using 你会用它 名称空间 用什么 一个命名空间 std The std命名空间 C 标准库的功能 例如string or vecto
  • 在 Web 应用程序机器人和功能机器人之间进行选择 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据本文 在 Azure 机器人服务中创建机器人时 您有两种托管选项 https learn microsoft com en us bot f
  • 反应电话号码输入格式和无格式输出

    我正在尝试在输入中创建电话号码格式 并且其下方的输出中没有电话号码格式 我还想添加一个条件 如果用户输入超过 10 个条目 则输入中将不再有电话格式 另外 请告诉我是否有任何方法可以在没有react number format 库的情况下执
  • ReactNative:将 JS 变量传递给 AppDelegate

    正如标题中的那样 我已经通过变量作为参数传递给本机模块RCT EXPORT MODULE 我知道RCT CUSTOM VIEW PROPERTY 虽然这是用于 可调用 组件 但我不确定它是否可以用于将 JS 变量传递给AppDelegate
  • 在oracle for循环中动态传递表名

    是否可以在oracle for循环中动态传递表名 e g for nm in select from table name loop dbms output put line chetan end loop 您可以使用 REF CURSOR
  • 这个任务正确吗? [复制]

    这个问题在这里已经有答案了 在一些js库中我发现了这个代码片段 var start end sel scrollPos subst start end scrollPos sel getSelection 在我看来 这不是有效的分配 但代码