所以...我有一种奇怪的编码风格 - 这是真的(参见示例),但是当我使用双斜杠注释而不是多行/ * * /注释时JS为什么会生成错误。
这是我的PHP代码,里面有JS函数。它只是(不)工作的例子。您可以通过复制和粘贴来尝试:
<?php
echo "<script>";
echo "function OnTxtChange( ) {";
echo " var i = parseInt((document.getElementsByName('inp'))[0].value);";
echo " // Increment input with 1";
echo " document.getElementsByName('out').item(0).innerHTML = ++i;";
echo "}";
echo "</script>";
echo "<input style='width:3em;' type='number' value=1 name='inp' onchange='OnTxtChange( )'>";
echo "<p name='out'>2</p>";
?>
双引号字符串中的双斜杠注释:
echo " // Increment input with 1";
生成JS错误:
Uncaught SyntaxError: Unexpected end of input
当我使用多行/ * * /注释时,没有错误:
echo " /* Increment input with 1*/";
为什么?
答案 0 :(得分:2)
使用
的评论//
运营商需要在一个单独的行中。你没有使用换行符,因此在第一次出现这样的评论之后,其他一切都会被评论,而不是结束这些功能。您需要使用
的换行符\n
打破行并获得预期的代码。