js:不是空字符串的空字符串引起的bug

今天在用js的时候,使用了两段完全相同的代码,可是一个报错,一个好好的

代码如下:

<script type="text/javascript">
    console.log("a");
</script>
<script type="text/javascript">
  console.log("a");
</script>

注意,这两段代码一模一样(眼睛看起来是的),但是运行结果却是:

你们在运行时,要复制我的代码,不要自己敲,就能出现上面的结果。

这个问题困扰了我好几个小时,我在想,到底是什么原因呢?

为了解决这个问题,我将两段代码各种换来换去,发现下面的和上面的肯定不一样。

于是,我用FireFox调试,发现了一个很惊讶的结果:

首先结果一样:一个出错,一个正确

我通过火狐浏览器进入文件,下面就是神奇的时刻,

很显然,得出一个结论:两个console.log("a");前面的空格不一样。

通过其他前辈的帮助,我了解了,是因为两个空格,一个是在半角输入法下的,一个是在全角输入法下的。

在全角输入法下,空格是占空间的,不是真正意义的空格,它嵌套进编程中,无法编译就报错了。

这会导致,明明看起来是相同的代码,却因为看不见的空格导致运行不一样。

原文地址:https://www.cnblogs.com/zdhblog/p/6867558.html