做jser多年,依舊有很多不熟悉的東西,邊看邊記錄吧
toString
把各種東西變成字符串,比如把數組變成字符串,把函數變成字符串,等等
把函數變成字符串
可以把整個函數字符串化,比如
var f = function(){console.log(1)}
f.toString()
返回的字符串是"function(){console.log(1)}"
函數的toString()有什麼作用了,
在現實中是有很大的作用的
比如老趙的Jscex,能把異步的回調寫法寫成同步的寫法,
用到的方法就是把function toString然後改變該函數,回調後在往下執行
還有requirejs也用到了類似的方法
把對象轉化成字符創
var a={}
a.toString()
//"[object Object]"
會以"[object Object]"這種形式出現,
如果是functon 或者是是 array調用對象的toString也會是這種形式
所以在判斷一個變量的類型的時候用到它是個不錯的解決方案(typeof 判斷不出來函數,數組)
判斷是否是函數
var toString = Object.prototype.toString
function isFunction(fun){
return toString.call(fun) == "[object Function]"
}
MatchesSelector
接收一個css選擇符,如果調用元素與該選擇符匹配,返回true。否則返回false
然後各個瀏覽器的實現出來的名字都不相同 所以做好拿一個變量來引用
var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector
MatchesSelector這個方法是掛在dom元素上的,入參數是一個css選擇符
使用方法如下
$("#a")[0].webkitMatchesSelector ("#b #a")
判斷id爲a的元素是否符合"#b #a"這個css錶帶式 (其實就是看id爲a的元素是否在id爲b的元素的子集)
ie6支持fiexed定位
源於一個噁心的需求
還好看到了一篇文章
http://www.qianduan.net/fix-ie6-dont-support-position-fixed-bug.html
chrome查看內存,網絡,cpu
快捷鍵按ctrl+esc
屏幕滾動到該元素:div.scrollIntoView();
檢測是否網絡連接狀態
navigator.onLine 如果有爲true表示有網絡連接狀態 false表示沒有
也可以監聽網絡的連接和斷開(webkit瀏覽器支持,不支持的瀏覽器可以輪詢訪問navigator.onLine來判斷)
window.addEventListener("online",
function(){
alert("連上了!!!")
})
window.addEventListener("offline", function(){
alert("斷開了!!!")
})
網頁文件另存爲
http://ucren.com/blog/archives/473
不需要真實的文件,也可以另存爲
HTML5
的 <a> 標籤有了一個新屬性,叫 download,取值是一個文件名,當一個帶有 download 屬性的 <a> 鏈接被點擊時,其形爲不再是一個網頁跳轉,而變成將目標以指定的文件名另存到本地,兼容性還不錯的樣子
<a
id="save-btn" href="data:text/paint; utf-8,測試文本,你可以隨便修改,完事後點保存。" download="noname.txt">保存</a>
試試點下面的保存
不知道高寬 圖片垂直居中
- top:50%;
- left: 50%;
- -webkit-transform:translate(-50%,-50%);
- -moz-transform:translate(-50%,-50%);
- -transform:translate(-50%,-50%);
css3幀動畫 動畫結束 不回到初始狀態
animation-fill-mode:forwards
查看網絡哪些地方耗時
window.performance
抓https和socket包的工具
https://avwo.github.io/whistle/