为什么这样的代码不能输出,而报"unterminated string literal",大概能够想到是js将alert中的'</script>'解析为结束符了,但具体的逻辑谁能给解释一下,谢谢了<script>
alert('</script>');
</script>

解决方案 »

  1.   

    HTML代码被浏览器加载的时候,需要进行解析才能知道那部分是JS代码,然后才能交由JS引擎处理。所以到“</script>”的时候,因为“/”并没有用“\”进行转译,所以此处的“</script>”被认为是它上面“<script>”的结束标签。最后页面实际生成是这样的:<script>
        alert('
    </script>
    ');
    </script>所以你会发现页面上多了“');”这几个字符。而alert方法没有正解的调用,少了“')”。
      

  2.   

    嗯,是的,的确解析为结束符了,建议你这样写:
    <script>
    alert('<\/script>');
    </script>
      

  3.   

    如果你不想用转义,还可以试试这样<script>
    alert('</scr'+'ipt>');
    </script>