2 回答

堂堂堂堂糖糖糖童鞋
TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超58個(gè)贊
知道一個(gè)概念:變量聲明提升,通過(guò)var 聲明的變量會(huì)放到全局作用域的頂部,也就是相當(dāng)于:
<script> var?a?=?1;//在這里聲明,加入不是第一行 </script> //相當(dāng)于 <script> var?a?=?undefined; a?=?1;//賦值 </script>
這樣是不會(huì)報(bào)錯(cuò)的,a的值為。而你的這種情況,沒(méi)有通過(guò)var 定義 a,不存在變量提升,那么在第一個(gè)`<script></script>`中沒(méi)有定義a,而使用了a,就會(huì)報(bào)引用錯(cuò)誤:"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貢獻(xiàn)137條經(jīng)驗(yàn) 獲得超18個(gè)贊
js是按你書(shū)寫(xiě)順序來(lái)執(zhí)行的,而你那個(gè)a=1是在k=a+b之后才聲明的,這樣他就找不到a,所以才會(huì)報(bào)a未定義,要把a(bǔ)=1移到k=a+b之前就可以了
添加回答
舉報(bào)
0/150
提交
取消