javascript变量加双引号的问题

问题在代码的注释里:

<!DOCTYPE html>
<html>
<head>
    <title>Dynamic Script Example 2</title>
</head>
<body>
    <p>You should see an alert saying &quot;hi&quot; after clicking the button.</p>
    <input type="button" value="Add Script" onclick="addScript()">

    <script type="text/javascript">
    
        function loadScriptString(){
            var script = document.createElement("script");
            var code="function sayHi(){alert('hi');}";
            script.type = "text/javascript";
            try {
                script.appendChild(document.createTextNode(code));
            } catch (ex){
                script.text = "code";//就是这一行里的"code",
                //这里为什么不是字面上的code,
                //而是function sayHi(){alert('hi');}?
                //感觉反直觉。
                //试了下script.text = code;也是可以的。
            }
            document.body.appendChild(script);
        }
    
        function addScript(){
            loadScriptString();
            sayHi();
        }

    </script>
</body>
</html>
阅读 7.9k
5 个回答

根本没执行到 catch 里吧,不知道楼主用的是什么浏览器?

加了双引号就是字符串,没加就是变量

加上引号就是字符串了啊

a = "code" 和 code 变量没关系

js 的双引号不像 php 那样,js 的双引号就是单引号。

的确没有执行到catch

没有执行到catch 你的代码并不会执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题