以下两者在javascript中有什么区别

what is the difference between the following two in javascript?

本文关键字:什么 区别 javascript      更新时间:2023-09-26

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

var a = <?php echo 39; ?>

但是javascript抛出以下错误"未捕获的语法错误:意外的标记ILLEGAL"。当我以以下方式分配php值时,我不会遇到任何问题

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

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

var a=39;

但相反,它是抛出错误。为什么会这样?

您的第一个示例遗漏了javascript变量赋值末尾的分号:

var a = <?php echo 39; ?>; //<-- missing semicolon

首先,最好总是用分号结束语句。但是,不管其他答案中关于何时何地应该有一个答案的讨论如何,你提供的两个例子还有另一个非常重要的区别。

示例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中!