为什么Javascript警报只弹出数字而不弹出字符串?

为什么Javascript警报只弹出数字而不弹出字符串?,javascript,php,alert,Javascript,Php,Alert,有人能帮我理解为什么: <?php $x = 'b'; ?> <script> var v=<?php echo $x;?>; alert(v);</script> var v=;警戒(五); 不会弹出警报 <?php $x = '3'; ?> <script> var v=<?php echo $x;?>; alert(v);</script> var v=;警戒(五); 是否会弹出

有人能帮我理解为什么:

<?php $x = 'b'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
不会弹出警报

<?php $x = '3'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);

是否会弹出一个带有文本3的警报?

您在脚本元素中回显一个字母
b
,这会导致:

<script> var v=b;  alert(v);</script>

JavaScript看到的是一个数字文字3,它在分配和发出警报方面没有问题。

您在脚本元素中回显一个字母
b
,这会导致:

<script> var v=b;  alert(v);</script>

JavaScript看到的是一个数字文字3,它在分配和发出警报方面没有问题。

始终查看呈现的输出

<script> var v = 3; alert(v); </script>
var v=3;警戒(五);
vs

var v=b;警戒(五);

要可靠地将PHP变量传递到JavaScript中,请使用

始终查看呈现的输出

<script> var v = 3; alert(v); </script>
var v=3;警戒(五);
vs

var v=b;警戒(五);
要可靠地将PHP变量传递到JavaScript,请使用

尝试:

<?php $x = '3'; ?>
<script> var v='<?php echo $x;?>';  alert(v);</script>

var v=“”;警戒(五);
试试:


var v=“”;警戒(五);

生成的脚本缺少引号或文字值。因此赋值
var v=…
会出错,除非赋值是数字

使用

var v=”“;警戒(五);

而是查看所有输出(但要注意,
$x
中的双引号)。

生成的javscript缺少括引号或文字值。因此赋值
var v=…
会出错,除非赋值是数字

使用

var v=”“;警戒(五);

而是查看所有输出(但要注意
$x
中的双引号)。

基本上,PHP代码在页面加载之前在服务器端运行,Javascript在页面加载脚本之后开始执行

所以按照你的代码

<?php $x = 'b'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
当在服务器端解析该代码时,php值将填充在脚本标记中

就像

<script> var v=b;  alert(v);</script>
var v=b;警戒(五);
现在,当页面在客户端呈现时。执行这一行后,javascript开始查看变量b。就PHP而言,它是一个字符串,但就javascript而言,它是一个变量,因为它没有用双引号括起来

由于javascript找不到任何名为b的变量,它抛出b是未定义的错误

现在说到数字:

<?php $x = '3'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
在客户端中,这将呈现为

<script> var v=3;  alert(v);</script>
var v=3;警戒(五);
现在,它只是一个数字,而不是一个变量。Javascript不会抛出任何错误

如果希望字符串在javascript中工作

在php变量中为b添加引号

    <?php $x = '"b"'; ?>
    <script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);

现在,即使是PHP字符串也会发出警报

基本上,PHP代码在页面加载之前在服务器端运行,Javascript在页面中的脚本加载之后开始执行

所以按照你的代码

<?php $x = 'b'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
当在服务器端解析该代码时,php值将填充在脚本标记中

就像

<script> var v=b;  alert(v);</script>
var v=b;警戒(五);
现在,当页面在客户端呈现时。执行这一行后,javascript开始查看变量b。就PHP而言,它是一个字符串,但就javascript而言,它是一个变量,因为它没有用双引号括起来

由于javascript找不到任何名为b的变量,它抛出b是未定义的错误

现在说到数字:

<?php $x = '3'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
在客户端中,这将呈现为

<script> var v=3;  alert(v);</script>
var v=3;警戒(五);
现在,它只是一个数字,而不是一个变量。Javascript不会抛出任何错误

如果希望字符串在javascript中工作

在php变量中为b添加引号

    <?php $x = '"b"'; ?>
    <script> var v=<?php echo $x;?>;  alert(v);</script>

var v=;警戒(五);
现在,即使是PHP字符串也会发出警报。

@mohamedrias:但他没有这么做。@mohamedrias:但他没有这么做。