js 的一些小細節,
變量var 的區別
function(){
var photo=10;//局部變量
}
alert(photo)//undefined
和
function(){
photo=10;//全局變量
}
alert(photo)//10
函數聲明的區別
add();//函數聲明提升,可以先使用再定義
function add(){
}
和
add();//undefined,必須將調用放在聲明後面
var add=funciton(){
}
var arr=[1,2,9,5,8,4]
alert(arr.sort());//得到1,2,4,5,8,9 一切都很美好
var arr1=[1,5,4,11,10]
alert(arr1.sort());//什麼情況1,10,11,4,5
js中的sort()排序,實際上是將所有變量都轉化爲字符串,再比較大小,所以記得想要比較數字的大小,一定要記得傳入一個比較的函數
alert(arr1.sort(function(a,b){return a-b}))//世界重新美好起來1,4,5,10,11
setInterval和setTimeout一定是準時發生的嗎?
答案是不是的,如果在這個時間段正好有進程佔用了CPU ,那麼就會有幾毫秒的誤差,所以不是精準的.
爲什麼需要把js 放在body下面執行,或者使用window.onload 或者$(document).ready(function(){})這樣的函數,由於js 大多數都是需要操控dom 的,而js 又是同步執行的,不這樣的話,就會出現找不到dom對象的錯誤.所以習慣很重要.
動畫爲什麼需要使用函數回調才能順序執行,由於它是併發的,放在一個循環當中你以爲會順序執行動畫,錯了,它會把這些動畫事件同時執行(會有個幾毫秒的誤差)看上去就是併發.這就是爲什麼要使用函數回調.
先到這裏,以後再慢慢補充,如有不足之處,還望指教一二.