2 回答
堂堂堂堂糖糖糖童鞋
TA贡献101条经验 获得超58个赞
知道一个概念:变量声明提升,通过var 声明的变量会放到全局作用域的顶部,也就是相当于:
<script> var a = 1;//在这里声明,加入不是第一行 </script> //相当于 <script> var a = undefined; a = 1;//赋值 </script>
这样是不会报错的,a的值为。而你的这种情况,没有通过var 定义 a,不存在变量提升,那么在第一个`<script></script>`中没有定义a,而使用了a,就会报引用错误:"Uncaught ReferenceError: a is not defined"。
解决方式:在
scriptTag.text = 'var b=1;var k=a+b;';
中添加a的声明,像这样:
scriptTag.text = 'var b=1;var a = 1;var k=a+b;';//推荐 //或者不使用var 声明a scriptTag.text = 'var b=1;a = 1;var k=a+b;';//不推荐
慕田峪3555374
TA贡献137条经验 获得超18个赞
js是按你书写顺序来执行的,而你那个a=1是在k=a+b之后才声明的,这样他就找不到a,所以才会报a未定义,要把a=1移到k=a+b之前就可以了
添加回答
举报
0/150
提交
取消