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对象的错误.所以习惯很重要.
动画为什么需要使用函数回调才能顺序执行,由于它是并发的,放在一个循环当中你以为会顺序执行动画,错了,它会把这些动画事件同时执行(会有个几毫秒的误差)看上去就是并发.这就是为什么要使用函数回调.
先到这里,以后再慢慢补充,如有不足之处,还望指教一二.