Tag: 语法

任何build立方便的callback写作风格的JavaScript?

callback在编码中越来越需要,特别是当你考虑Node.JS的非阻塞工作风格的时候。 但是很快写很多协程callback变得难以回读。 例如,想像这样的东西金字塔 : // This asynchronous coding style is really annoying. Anyone invented a better way yet? // Count, remove, re-count (verify) and log. col.count(quertFilter, function(err, countFiltered) { col.count(queryCached, function(err, countCached) { col.remove(query, function(err) { col.count(queryAll, function(err, countTotal) { util.log(util.format('MongoDB cleanup: %d filtered and %d cached records removed. %d last-minute records left.', countFiltered, countCached, […]

在node.js中,如何以最轻量级的方式检查给定的代码串是否在语法上是正确的?

想象一下,我接受用户的一段代码,只想检查给定的string是否是有效的JS? 仅从语法angular度来看。 function checkCode(x){ // Logic } // returns a boolean, whether 'x' is syntactically right or wrong. 我不想用eval解决scheme,因为当给定的代码“x”在语法上是错误的时候,整个nodejs进程陷入语法错误。

什么原因使用这种语法(0,_.Em)();

在调查谷歌plusone脚本时,我曾多次看到以下语法: (0, _.Em)(); 假设_.Em是一个函数,上面的语句将导致调用该函数,这是非常明显的。 另一方面,如果它是未定义的,那么结果是否与简单的_.Em() ? 任何人都可以阐明使用这种语法背后的想法吗?

无法安装Bower – 语法错误

首先,我是一个完整的新手。 我刚开始学习编程,我正在学习jQuery。 但为了使用jQuery,我必须得到凉亭和npm(节点),这是一个混乱的考验。 所以我下载了节点: 节点安装在 在/ usr / local / bin目录/节点 npm被安装在 在/ usr / local / bin目录/ NPM 确保/ usr / local / bin在$ PATH中。 然后我读到:使用NPM全局安装Bower。 npm install -g bower 我尝试在Javascript中使用Chrome。 然后我在这个网站上读到适当的语法是:$ npm config set prefix / usr / local $ npm install -g bower 我也尝试了一堆其他人,所有相同的错误SyntaxError:意外的标识符 所以我是一个新手,需要一些专家指导这个微不足道的编程,因为我在某个地方犯了一个错误,我不知道我在做什么错了。

为什么浏览器支持对象的隐式函数属性

var obj = { foo: function() { return "this is foo"; }, bar() { return "this is bar"; } } 在NodeJS中执行此操作会导致在第3行处出现SyntaxError(在预期的第3行)。 尽pipeChrome和Firefox看起来非常开心,但似乎显然是错误的: console.log(obj.foo()); // "this is foo" console.log(obj.bar()); // "this is bar" 为什么浏览器引擎支持这种语法? 有这种行为的文件?

Express框架app.post和app.get

我对expression式框架相当陌生。 我无法在express API参考中findapplication.post()方法的文档。 有人可以提供一些我可以放在函数中的所有可能参数的例子吗? 我用下面的例子读了几个网站,第一个参数是什么意思? 我知道第二个参数是callback函数,但是我们究竟把第一个参数放在什么地方呢? app.post('/', function(req, res){ 另外,假设我们希望用户以特定的格式([{id:134123,url:www.qwer.com},{id:131211,url:www.asdf。 COM}])。 然后,我们要提取ID的ID,并从我们的服务器的某个地方检索这些ID的数据。 我们如何编写允许我们操作对象数组input的app.post方法,以便我们只使用这些对象的ID(键)来检索必要的信息,而不pipe对象中的其他键。 鉴于任务的描述,我们是否必须使用app.get()方法? 如果是这样,我们将如何编写app.get()函数? 非常感谢您的投入。

如何在peg.js中回溯工作(例如)?

我定义了以下最小的Peg.js语法: start = "A1" / "A123" 您可以在沙箱中尝试。 我预料会匹配“A1”和“A123”(根据我的回溯工作原理)。 但事实并非如此:语法识别“A1”而不识别“A123”。 注 :我不是在寻找“相反的术语顺序”的build议,如相关的问题如何将一个简单的语法转换成在PEG.js(预期“一个”,但“一个”find)工作的东西 。 相反,我期待了解我所看到的行为,以及为什么Peg.js的回溯不适用于这种情况。 有关解释为什么颠倒我的术语顺序不起作用的信息,请参阅下面的更实际的示例。 对于一个更现实的例子,考虑单位parsing。 一个语法应该识别带有可选前缀(如“mm”,“mmol”)以及非“公制”单位(如“年”,“星期”或“mo”)的公制单位(如“m”,“mol”)。 下面的Peg.js语法不会识别“mol”,因为它被绊倒消耗“mo”,并且不会回溯。 (改变术语顺序没有帮助;或者说,会导致以“mol”或“mmol”为代价来识别“mo”)。 start = nonmetric / metric / prefix metric metric = "mol" / "l" / "m" / "g" nonmetric = "yr" / "mo" / "week" / "day" / "hour" prefix = "m" / "k" / "c" 我可以在Antlr中做类似的事情,取得很好的成绩: grammar […]

什么是JavaScript`_ | _`?

当我看到这个expression式时,我正在通过javascript解决问题,即将stringparsing为其组成名称,运算符和括号。 return accept(")") ? _|_ : e; 那是什么_|_ ? 那是使用节点的_function吗? 我查找了文档,但没有find任何。 当我尝试使用它时,会发生这种情况: > 5 5 > true ? _|_ : 0 ReferenceError: _ is not defined at eval:1:1 at eval at n.<anonymous> 作为一个澄清,variables_没有在代码中的任何地方定义。 这是在节点v8.1.3上运行,但也适用于Chrome本地浏览器JS。 这里是代码: function tokenise(string) { const tokens = string.match( /[az]+|\(|\)|[!#$%&*+\-\/<=>@^_.,;]+/gi ) || []; const accept = s => s===tokens[0] && tokens.shift() ; […]

在Node.js中是否需要逗号?

在node.js的variables声明中省略逗号会产生风险吗? 例如,像下面这样声明一些全局variables就行了: express = require('express') jade = require('jade') 而且,如果不写下它们是不安全的,我不想写逗号(我不关心“代码的美观/清晰度”)。 重要说明 :我的意思是逗号,而不是分号(有3个关于分号的答案)。 这非常好,甚至build议从node.js中删除分号。 npm的创build者也是这样做的: http : //blog.izs.me/post/3393190720/how-this-works 如有疑问,请查看最新的JavaScript规范: http : //www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf 请注意,你也不需要写 var 为全局variables。 但是这个问题是关于“逗号”的,所以请不要在编辑我的问题时错误地用分号replace逗号(以前做过)。

使用vim keybindings和方法/variables完成的Node.js REPL

据我所知,在Node REPL中获得vim keybindings的标准方法是像这样使用rlwrap : NODE_NO_READLINE=1 rlwrap node 然而,这杀死了方法和variablestab-completion。 有一些解决方法吗?