我见过不同的开发人员在javascript函数之后包含分号,而有些则没有.哪个是最佳做法?
function weLikeSemiColons(arg) {
// bunch of code
};
Run Code Online (Sandbox Code Playgroud)
要么
function unnecessary(arg) {
// bunch of code
}
Run Code Online (Sandbox Code Playgroud) 在许多情况下,如果您将它们遗漏,JavaScript解析器将为您插入分号.我的问题是,你把它们遗弃了吗?
如果您不熟悉规则,则会在Mozilla网站上对分号插入进行描述.这是关键点:
如果第一至第n 个 JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符个令牌和第n + 1个ST令牌,则解析器尝试将所述n之间的虚拟分号令牌之后再次解析程序次和第n + 1个ST令牌.
这种描述可能不完整,因为它没有解释@ Dreas的例子.任何人都有完整规则的链接,或者看看为什么这个例子得到一个分号?(我在JScript.NET中尝试过.)
此stackoverflow问题是相关的,但仅涉及特定方案.
除了主观视觉感知和在同一行上有多个语句的情况之外,还有任何理由在JavaScript语句结尾处使用分号吗?
看起来有大量证据表明使用分号是高度可选的,仅在少数特定情况下是必需的.
在 intellij上安装scala插件后,我开始遇到"无法解析符号"消息的奇怪错误.
在我的java代码中使用scala元组时出现.
这个错误并没有阻止我成功构建/运行,但我无法摆脱它们,这让我很困惑.
我相信这是intellij本身的一个错误.
代码
import scala.Tuple2;
public class testTuple2 {
public static void main(String[] args) {
//this line show errors
Tuple2<Integer, Integer> tuple = new Tuple2<Integer, Integer>(3, 4);
System.out.println("Tuple 1" + tuple._1);
//this line doesn't show errors
System.out.println("Tuple 1" + tuple._1());
}
}
Run Code Online (Sandbox Code Playgroud)
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>com.test</artifactId>
<version>1.0-SNAPSHOTcom.test</version>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
一些事实:
我的考验
我尝试使缓存无效并重新启动想法但是徒劳无功我尝试删除/禁用插件并且它工作但我需要插件用于我的scala项目所以这对我来说不是一个有效的解决方案.我尝试将intellij更新到最新版本和scala插件但是徒劳无功
我在使用redux的教程网上看到了几个例子,并在使用带有babel的es6时省略了分号的代码.
导入,导出结束时的分号示例.
缺少分号
import React, { PropTypes } from 'react'
const Location = ({ onClick, name, country}) => (
<li
onClick={onClick}
>
{name} {country}
</li>
)
export default Location
Run Code Online (Sandbox Code Playgroud)
与分号
import React, { PropTypes } from 'react';
const Location = ({ onClick, name, country}) => (
<li
onClick={onClick}
>
{name} {country}
</li>
);
export default Location;
Run Code Online (Sandbox Code Playgroud) 关于"我应该使用分号吗?"有很多问题.和"分号注射如何工作?",但我想找一个能够尽可能避免使用分号的编码人员的无FUD建议.
如果有人像izs或Bootstrap开发者那样选择不用分号编写Javascript,在什么条件下他必须添加分号,还应该做些什么来确保他的代码不会失败?
javascript ×5
syntax ×2
coding-style ×1
ecmascript-6 ×1
java ×1
maven ×1
reactjs ×1
redux ×1
scala ×1