本日內容:
(1)js、css在html中的位置
(2)獲取屏幕高寬
(3)this綁定(call, apply, bind)call, apply, bind 的區別
總結:本來想寫一寫閉包,但是看大佬們都好複雜,我準備再好好理解理解~~
(1)js、css在html中的位置?
- css文件放在head中
- js文件兩種情況
對於調用執行的,我們最好放在head裏,直接聲明或者引用外部文件(head)。
對於即時執行的,放在</body>前
例如:
<head>
<link href="css/bootstrap.min.css" rel="stylesheet">
//引入.css文件
<script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js">
</script> //引入.js文件
<style>
//樣式設計
</style> //html文件中,不推薦使用
</head>
<body>
<div>…</div>
<script>
//執行代碼
</script>
</body>
原因:
css必須放在head裏。因爲瀏覽器解析html是從上到下的。如果css放到後面,會造成樣式按照瀏覽器標準先加載,最後忽然閃現樣式設計。
Js如果是寫在html中,如果在head裏的話,會在頁面加載過程中執行js但這時候body還沒有解析,所以會返回空值。一般都會綁定一個監聽,當全部的html文檔解析完之後,再執行代碼:
windows.onload=function(){
//這裏放入執行代碼
}
相反放在head中的JS代碼會在頁面加載完成之前就讀取,而放在body結束前的JS代碼,會在整個頁面加載完成之後讀取。
更推薦js、css寫在js文件中在head中引用,實現結構(html)、樣式(css)、行爲(js)分離,有利於維護。
(2)獲取屏幕高寬
網頁可見區域寬: document.body.clientWidth
網頁可見區域高: document.body.clientHeight
網頁可見區域寬: document.body.offsetWidth (包括邊線的寬)
網頁可見區域高: document.body.offsetHeight (包括邊線的高)
網頁正文全文寬: document.body.scrollWidth
網頁正文全文高: document.body.scrollHeight
網頁被捲去的高: document.body.scrollTop
網頁被捲去的左: document.body.scrollLeft
網頁正文部分上: window.screenTop
網頁正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的寬: window.screen.width
屏幕可用工作區高度: window.screen.availHeight
屏幕可用工作區寬度: window.screen.availWidth
(3)this綁定(call, apply, bind)call, apply, bind 的區別
call,apply,bind的相似
1,都是用來改變函數this指向的
2,第一個參數都是this要指向的對象
3,都可以傳參複製代碼
1,call和apply都是對函數的直接調用
2,bind返回的是一個函數,需要配合()進行調用
3,call和bind的傳參使用‘,’分隔的,例如(item1,item2,item3...)
4, apply的傳參使用數組[...arguments]複製代碼