相关疑难解决方法(0)

我们最后需要分号吗?

我在JavaScript的某些地方错过了分号,但它并没有在任何浏览器中抛出错误.是;在最后需要的?

javascript

108
推荐指数
5
解决办法
7万
查看次数

您是否建议在JavaScript中的每个语句后使用分号?

在许多情况下,如果您将它们遗漏,JavaScript解析器将为您插入分号.我的问题是,你把它们遗弃了吗?

如果您不熟悉规则,则会在Mozilla网站上对分号插入进行描述.这是关键点:

如果第一至第n JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符令牌和第n + 1个ST令牌,则解析器尝试将所述n之间的虚拟分号令牌之后再次解析程序和第n + 1个ST令牌.

这种描述可能不完整,因为它没有解释@ Dreas的例子.任何人都有完整规则的链接,或者看看为什么这个例子得到一个分号?(我在JScript.NET中尝试过.)

此stackoverflow问题是相关的,但仅涉及特定方案.

javascript

52
推荐指数
9
解决办法
17万
查看次数

在JavaScript中进行对象文字赋值后是否需要分号?

以下代码说明了分配的对象文字,但之后没有分号:

var literal = {
    say: function(msg) { alert(msg); }
}
literal.say("hello world!");
Run Code Online (Sandbox Code Playgroud)

这似乎是合法的,并且不会发出警告(至少在Firefox 3中).这是完全合法的,还是有严格的JavaScript版本,这是不允许的?

我特别想知道未来的兼容性问题...我想写"正确的"JavaScript,所以如果技术上我需要使用分号,我想使用它.

javascript

30
推荐指数
3
解决办法
1万
查看次数

我应该在JavaScript中使用分号吗?

我只编写了少量运行嵌入Java应用程序的JavaScript,但它是使用QUnit测试的,已经混合了,我还没有注意到任何问题.

是否有一些传统的智慧是否在JavaScript中使用分号?

javascript

26
推荐指数
6
解决办法
8581
查看次数

'use strict'不停止在功能范围内吊装

我的问题在这里,我正在学习JavaScript,但根本不是编程新手.我理解提升,但是使用严格模式不应该产生错误,并且当6被分配给未声明的变量或文件时被捕获.getElement ...被分配x这不会产生错误所以我的诊断就是提升仍在继续...我不喜欢并想要摆脱使用严格.使用Chrome版本42.0.2311.152 m作为我的浏览器

function strictMode(){
    'use strict';
    try {
        x = 6;
        document.getElementById('hoisting').innerHTML = x;
        var x;
     }
     catch(err) {
                    document.getElementById('error_report').innerHTML = 
                        "There was an error that occured (Were in Strict Mode)" +
                            " " + err.message;
               }
}
Run Code Online (Sandbox Code Playgroud)

javascript using strict hoisting

6
推荐指数
1
解决办法
3768
查看次数

cout是否需要以分号结束?

我正在阅读Bjarne Stroustrup的编程:使用C++的原理和实践

在第2章的练习部分中,它讨论了在编译hello_world程序时查看输入错误的各种方法

#include "std_lib_facilities.h"

int main()  //C++ programs start by executing the function main
{
    cout << "Hello, World!\n",  // output "Hello, World!"
    keep_window_open();         // wait for a character to be entered
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

特别是本节要求:

想想你在程序中输入的错误至少还有五个(例如忘记 keep_window_open(),在键入单词时保持Caps Lock键,或者输入逗号而不是分号)并尝试每个错误,看看当你尝试时会发生什么编译并运行这些版本.

对于该cout行,您可以看到有一个逗号而不是分号.
这编译并运行(对我来说).是否做出了假设(如在javascript问题中:为什么使用分号?)语句已被终止?

因为当我尝试keep_terminal_open();编译时通知我分号排除.

c++ cout comma-operator

3
推荐指数
1
解决办法
1017
查看次数

标签 统计

javascript ×5

c++ ×1

comma-operator ×1

cout ×1

hoisting ×1

strict ×1

using ×1