编辑 看着JSHint后,我发现这个" 解构表达"是ES6提供(使用esnext选项)或Mozilla JS扩展(使用MOZ)和本 看完后却我还是不明白为什么它被用来
我在MDN上遇到了以下代码
var ui = require("sdk/ui");
var { ActionButton } = require("sdk/ui/button/action");
Run Code Online (Sandbox Code Playgroud)
第二行的大括号是什么以及为什么使用它们?为什么第一行没有括号?
include('./path/to/file')
在node.js中执行简单类型的命令是否容易/可能?
我想要做的就是访问局部变量并运行脚本.人们通常如何组织比简单的hello世界更大的node.js项目?(功能齐全的动态网站)
例如,我想要有以下目录:
/models
/views
......等
不确定这是否是特定于Mozilla的JS语法,但我经常发现变量是以这种方式声明的,例如,在附加SDK文档中:
var { Hotkey } = require("sdk/hotkeys");
Run Code Online (Sandbox Code Playgroud)
并在各种chrome Javascript(let
声明被用来代替var
),
let { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
Run Code Online (Sandbox Code Playgroud)
我发现它很混乱但我无法找到任何关于语法的文档,即使在MDN上也是如此.
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接
我的问题最好通过这个jsfiddle,其代码如下:
var a = 1, b = 'x', c = true;
var d = {a: a, b: b, c: c}; // <--- object literal
var e = [a, b, c]; // <--- array
var f = {a, b, c}; // <--- what exactly is this??
// these all give the same output:
alert(d.a + ', ' + d.b + ', ' + d.c );
alert(e[0] + ', ' + e[1] + ', ' + e[2]);
alert(f.a + ', …
Run Code Online (Sandbox Code Playgroud) 我是ECMAScript 6的新手,在尝试学习Ember时,我偶尔会看到以下代码风格:
const {
abc,
def
} = Object;
Run Code Online (Sandbox Code Playgroud)
我搜索了谷歌和许多网站,解释了新的ES6规范.我知道这不是当前的实现,因为我输入时我的控制台出错了.
这段代码是什么意思?
UPDATE
我将这个片段粘贴到Babel的转换器中,这就是它返回的内容:
"use strict";
var abc = Object.abc;
var def = Object.def;
Run Code Online (Sandbox Code Playgroud)
我仍然对这是想要实现的目标感到困惑.
在react-native入门示例中,有以下代码:
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;
Run Code Online (Sandbox Code Playgroud)
这是什么意思var {...} = thing;
?
在Node.js的REPL中(也在SpiderMonkey中测试)序列
var foo = null;
(foo) = "bar";
Run Code Online (Sandbox Code Playgroud)
是有效的,foo
随后等于"bar"
相反null
.
这似乎违反直觉,因为人们会认为括号至少会取消引用bar
并在赋值中抛出无效的左侧.
可以理解的是,当你做任何有趣的事情时,它确实以上述方式失败了.
(foo, bar) = 4
(true ? bar : foo) = 4
Run Code Online (Sandbox Code Playgroud)
根据ECMA-262关于LeftHandExpressions(据我可以解释),没有有效的非终端会导致括号被接受.
有什么我没看到的吗?
这在Javascript中意味着什么?我在react-router示例中找到了这个
var { Route, Redirect, RouteHandler, Link } = Router;
Run Code Online (Sandbox Code Playgroud)
通过browserify运行时出现以下错误.
"Uncaught SyntaxError: Unexpected token {"
Run Code Online (Sandbox Code Playgroud)
https://github.com/rackt/react-router/blob/master/examples/dynamic-segments/app.js
Esprima也会出现同样的错误:http: //esprima.org/demo/validate.html
最近我在研究Firefox Add-on Builder SDK源代码,并偶然发现了这样的常量声明:
const { getCodeForKey, toJSON } = require("../../keyboard/utils");
Run Code Online (Sandbox Code Playgroud)
我可以找到有关CommonJS模块的信息,但是这项任务的部分内容会让我感到困惑,因为它必须是特定于语言的,而且我无法对其进行任何操作.
有人能指出我的一些规范/草案,解释这里发生了什么?
javascript gecko spidermonkey destructuring variable-assignment
javascript ×10
ecmascript-6 ×4
const ×1
ecma ×1
ember.js ×1
firefox ×1
gecko ×1
node.js ×1
react-router ×1
reactjs ×1
spidermonkey ×1