我将php值分配给javascript,如下所示
var a = <?php echo 39; ?>
但是javascript引发了以下错误 &#34;未捕获的SyntaxError:意外的令牌ILLEGAL&#34;。 当我以下列方式分配php值时,我没有遇到任何问题
var a = "<?php echo 39; ?>";
我认为php代码首先在服务器端运行。所以在第一种情况下,php代码首先在服务器端执行,然后执行的代码被发送到浏览器。所以浏览器应该看到代码为(我认为)
var a=39;
但不是这样就会引发错误。为什么会发生这种情况?
答案 0 :(得分:3)
你的第一个例子在javascript变量赋值结束时错过了分号:
var a = <?php echo 39; ?>; //<-- missing semicolon
答案 1 :(得分:0)
首先,最好用分号结束语句。但无论在其他答案中讨论何时何地应该有一个答案,在你提供的两个例子中还有另一个非常重要的区别。
示例1:
var a = <?php echo 39; ?>
变量a
现在是整数(无引号):
http://en.wikipedia.org/wiki/Integer_%28computer_science%29
示例2:
var a = "<?php echo 39; ?>";
变量a
现在是字符串(引号):
http://en.wikipedia.org/wiki/String_%28computer_science%29
我想说变量类型之间的差异是你应该注意的。特别是在Javascript!