js的小知識1

js 的一些小細節,
變量var 的區別

function(){
var photo=10;//局部變量
}
alert(photo)//undefinedfunction(){
 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對象的錯誤.所以習慣很重要.


動畫爲什麼需要使用函數回調才能順序執行,由於它是併發的,放在一個循環當中你以爲會順序執行動畫,錯了,它會把這些動畫事件同時執行(會有個幾毫秒的誤差)看上去就是併發.這就是爲什麼要使用函數回調.


先到這裏,以後再慢慢補充,如有不足之處,還望指教一二.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章