javascript中以下两个有什么区别?

时间:2015-04-02 15:04:41

标签: javascript php

我将php值分配给javascript,如下所示

var a = <?php echo 39; ?>

但是javascript引发了以下错误 &#34;未捕获的SyntaxError:意外的令牌ILLEGAL&#34;。 当我以下列方式分配php值时,我没有遇到任何问题

var a = "<?php echo 39; ?>";

我认为php代码首先在服务器端运行。所以在第一种情况下,php代码首先在服务器端执行,然后执行的代码被发送到浏览器。所以浏览器应该看到代码为(我认为)

var a=39;

但不是这样就会引发错误。为什么会发生这种情况?

2 个答案:

答案 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!