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

1 javascript php alert

任何人都可以帮我理解原因:

<?php $x = 'b'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>
Run Code Online (Sandbox Code Playgroud)

没有弹出警报,而

<?php $x = '3'; ?>
<script> var v=<?php echo $x;?>;  alert(v);</script>
Run Code Online (Sandbox Code Playgroud)

会弹出带有文字3的警报吗?

Bol*_*ock 7

你在b脚本元素中回显了一个字母,结果是:

<script> var v=b;  alert(v);</script>
Run Code Online (Sandbox Code Playgroud)

就JavaScript而言,这是一个标识符,而不是字符串.由于b未定义JavaScript变量,因此会发生错误,并且不会发出任何警报.

当你回应3:

<script> var v=3;  alert(v);</script>
Run Code Online (Sandbox Code Playgroud)

JavaScript看到的是一个数字3,它没有问题分配和警报.