javascript - 函數(shù)聲明和匿名函數(shù)有什么不同?(前端小白求助。。)
問題描述
用函數(shù)聲明的方式定義了一個改變元素style屬性的函數(shù)會報錯
但是window.onload下不會報錯
問題解答
回答1:寶寶 這個和你用什么函數(shù)沒關系!是因為onload會把文檔加載完才觸發(fā) 而你肯定是因為文檔沒加載完 沒找到元素 所以才報錯 把js放到元素下面
回答2:這和函數(shù)聲明和匿名沒有關系,而是和函數(shù)的調(diào)用時機有關系。改成這樣,還能找到和匿名函數(shù)的問題么?
function change () { /* ... */ }window.onload = change
前者在調(diào)用時,box元素還沒有,所以報了錯;后者在DOM ready后調(diào)用,所以可以執(zhí)行。你可以在change函數(shù)中l(wèi)og一下box對象看看。
回答3:問題不是這個,你需要知道文檔是從上到下加載的,你把js文件放在了head里執(zhí)行到js文件的時候,這個時候連body都還沒加載,自然無法獲取到box,也就無法設置css了。你可以把js文件放到body的尾部:
...<script src='http://m.piao2010.com/wenda/x.js'></script></body>
這樣就不需要window.onload了如果放在了head里面就需要在js文件頭部寫window.onload=function(){......}
相關文章:
1. android - weex 項目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點3. PHPExcel表格導入數(shù)據(jù)庫怎么導入4. pdo 寫入到數(shù)據(jù)庫的內(nèi)容為中文的時候寫入亂碼5. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;8. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?9. 微信渠道二維碼怎么使用?10. html5 - html元素select下拉列表在原生app里面為什么不能彈框顯示?
