有没有办法让JS-Beautify处理JavaScript斜杠注释?

时间:2016-04-12 17:43:58

标签: javascript

有没有办法让js-beautify处理javascript“//”注释?

实施例

socket.on('user_online', function(data){
    document.getElementById("online").innerHTML = "ONLINE USERS (" + data + ")";
});

//Add the online users to the list one by one
chatCount = 0;
socket.on('user-list-append', function(data){

将成为此

socket.on('user_online', function(data){
    document.getElementById("online").innerHTML = "ONLINE USERS (" + data + ")";
});

//Add the online users to the list one by one    chatCount =    socket.on('user-list-append', function(data){

他们不会在评论后自动创建新行,因为他们可能不知道评论的结束位置。

我可以简单地将“//”替换为“/ * ... * /”,但我只是好奇是否有更好的方法来解决这个问题,例如他们可能有一些选择来应用

更新#1:

lib:https://github.com/beautify-web/js-beautify/tree/master/js/lib

尝试将以下代码复制粘贴到http://jsbeautifier.org/中,您可以看到我的意思。

socket.on('user_online', function(data){ document.getElementById("online").innerHTML = "ONLINE USERS (" + data + ")"; }); //Add the online users to the list one by one chatCount = 0; socket.on('user-list-append', function(data){

在Word变形或缩小的JavaScript的“//”注释后,是否有任何选项可以让lib知道在哪里创建新行?

1 个答案:

答案 0 :(得分:0)

您的第一个代码块和您建议我们从中复制到测试的代码块(第三个代码块)不包含相同的代码。在解释以“//”开头的注释时,回车是一个非常重要的特征。

这不是关于beautify-js的问题。这里真正的问题是你是如何创建第三块代码的?你不能只是将所有的线路一起运行并期望它能够工作。

第三段代码不是有效的javascript。如果您已经使用了第一个代码块并使用了uglify-js,那么就不再有注释了。需要进行相当多的解释才能在一行或几行上完全运行js。它会考虑的其他事情是只有回车符结束的行才需要插入分号等。

在这种特殊情况下,beautify-js做了什么是完全正确的。具体来说,当遇到“//”时,所有其余字符到行尾必须被解释为注释。这正是它所做的,这就是javascript应该被解释的方式。