Tag: 语法

如何通过使用ID的variablesselectjQuery中的元素?

例如,以下selectid =“2”的分区: row = $("body").find("#2"); 我如何做这样的事情: row_id = 5; row = $("body").find(row_id); 上面的语法产生一个错误。 我检查了jQuery文档,并在这里回答没有成功。

为什么019不是JavaScript语法错误? 或者为什么是019> 020

如果我在JavaScript控制台中input019 > 020 (在Chrome和Firefox中都testing过),我的答案是true 。 这是由于020被解释为OctalIntegerLiteral (等于16 ),而019显然被解释为DecimalLiteral (和等于19 )。 当19大于16 , 019 > 020为true 。 令我感到困惑的是为什么019被解释为DecimalLiteral 。 是哪个生产? DecimalIntegerLiteral不允许019 : DecimalIntegerLiteral :: 0 NonZeroDigit DecimalDigits_opt OctalIntegerLiteral也不允许019 (因为9不是八进制数字): OctalIntegerLiteral :: 0 OctalDigit OctalIntegerLiteral OctalDigit OctalDigit :: one of 0 1 2 3 4 5 6 7 所以从我在规范中看到的019实际上应该被拒绝,我不明白为什么它被解释为一个十进制整数。 我想这里有一些兼容性规则,但是我没有find一个正式的定义。 可以请任何人帮助我呢? (为什么我需要这个:我正在用JavaCC为Java开发一个JavaScript / ECMAScriptparsing器,并且必须特别注意规范及其偏差。)

Ruby的|| =(或等于)在JavaScript中?

我喜欢Ruby的||=机制。 如果一个variables不存在或者nil ,那么创build它并将其设置为等于某事: amount # is nil amount ||= 0 # is 0 amount ||= 5 # is 0 我现在需要在JavaScript中做类似的事情。 什么是常规或正确的方法来做到这一点? 我知道||=是无效的语法。 处理它的两个明显的方法是: window.myLib = window.myLib || {}; // or if (!window.myLib) window.myLib = {};

Bash / sh – &&和;之间的区别

我通常使用; 在一条线上结合多个命令,但有些人更喜欢&& 。 有什么区别吗? 例如, cd ~; cd – cd ~; cd -和cd ~ && cd -似乎做同样的事情。 什么版本更具可移植性,比如Android的shell等bash子集支持?

对象初始化语法

我刚刚开始使用F#,我找不到在C#3中进行对象初始化的语法。 即给出这个: public class Person { public DateTime BirthDate { get; set; } public string Name { get; set; } } 我如何在F#中编写以下内容: var p = new Person { Name = "John", BirthDate = DateTime.Now };

这个Java代码中的下划线是什么?

我刚开始学习Java。 我帮助我学习的朋友刚刚寄给我这个消息,说'弄明白了'。 不幸的是我无法阅读这个。 Perl看起来像我。 class _{_ _;_(){_=this;}} 这是什么意思?

Rails:使用大于/小于where语句

我试图find一个id大于200的所有用户,但我有一些特定的语法麻烦。 User.where(:id > 200) 和 User.where("? > 200", :id) 都失败了。 有什么build议么?

为什么这个调用默认的构造函数?

struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } 我本来会期望这个打印 X(int) ,因为X(answer); 可以被解释为从int到X ,或者 一无所有,因为X(answer); 可以被解释为variables的声明。 但是, 它打印X() ,我不知道为什么X(answer); 会调用默认的构造函数。 奖励点:我需要改变什么才能获得临时而不是variables声明?

为什么C#允许代码块没有前面的语句?

为什么C#允许代码块没有前面的语句(例如, if , else , for , while )? void Main() { { // any sense in this? Console.Write("foo"); } }

为什么声明“2i;”不会导致编译器错误?

而不是2*i ,我不小心写了2i : int foo(int i) { 2i; return 2i; } 我希望编译器能够发现错误。 但事实并非如此。 那么2i是C中的一个有效陈述? 如果是的话,它是做什么的? 困惑! 我编译使用GCC版本5.3.0,这里是汇编输出: .file "strange.c" .text .globl foo .type foo, @function foo: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl %edi, -4(%rbp) nop popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size foo, .-foo […]