JS基础知识
一、获取未设置行内元素的样式
getComputedStyle(document.getElementById("div1").width)在IE6,7,8下不兼容;
document.getElementById("div1").currentStyle.width 在标准浏览器下不兼容
解决办法:属性判断
用上面两个方法,应注意以下问题:
- 获取到的是计算机(浏览器)计算后的样式
- background: url() red …… 复合样式(不要获取)
- backgroundColor 单一样式(不要用来做判断)
- 不要有空格
- 不要获取未设置后的样式:不兼容
二、定时器
- setTimeout("function",time) 设置一个超时对象,time为毫秒
- setInterval("function",time) 设置一个超时对象,time为毫秒
- setInterval为自动重复,setTimeout不会重复,只执行一次。
- clearTimeout(对象) 清除已设置的setTimeout对象
- clearInterval(对象) 清除已设置的setInterval对象
注意,在设置setInterval的时候,如果定时器由事件控制,先关再开为宜,避免多次设置定时器问题。
三、系统时间对象
1、系统时间对象:var mytime=new Date();
- 获取年:var iyear=mytime.getFullYear(); //typeof object
//以下函数的typeof number
- 获取月:var iMonth=getMonth()+1; (1月是从0开始,所以要+1)
- 获取日:var iDate=getDate();
- 获取星期:var iWeek=myTime.getDay();
- 获取时:var iHours=getHours
- 获取分:var iMinutes=getMinutes
- 获取秒:var iSeconds=getSeconds
2、计算倒计时
四、字符串相关方法
var str="www.baidu.com";
1、charAt() //查找字符串
2、charCodeAt //编码 0-9对象48-57 a-z对应97-122 A-Z 对应65-90
3、String.fromCharCode(22937); //根据Unicode 编码返回对应汉子
4、indextOf(‘w’,1) //从左至右找对应字符串的位置,一个个参数为要找的字符,第二个参数为起始位置(默认从0开始)不能为负值;返回值为要找字符串的开始位置
5、lastIndexOf //从右往走找对应字符串的位置
6、字符串比较,比较 Unicode 编码,第一位能比较出大小,之后就不比较了
7、str.substring(0,2) //ww 参数可以互换位置str.substring(2,0),结果一样
str.substring() //www.baidu.com 整个字符串
str.substring(-3,2) //ww -3当0处理
8、str.slice(0,2) //ww
str.slice(2,0) // 返回空,第2位找不到字符串的第0位 参数不能互换位置
str.slice(-2) //om 参数为负数,从后面开始截取
9、转换成大写:str.toUpperCase();
转换成小写:str.toLowerCase();
10、将字符串转成数组
str.split("."); //["www","baidu","com"] 不放分隔符,整个当成数组第一项
var str1="leo"; str1.split("") //["l","e","o"]
var str2="我爱你"; str2.split(爱) //["我","你"]
var str3="/www.baidu.com/"; str3.split("/"); //[ ""."www.baidu.com".""] 分隔符左右都占内容,如果左边没有字符,当空字符串处理
str.split(".",2) //["www","baidu"] 分隔后截取份数,第二个参数可选
11、var arr=["aa","bb",cc""]; //把数组进行拼接,没有参数的话默认用,连接
arr.join(); //"aa,bb,cc"
arr.join(""); //"aabbcc"
arr.join("-"); //"aa-bb-cc"
五、数组相关方法
1、JSON数据格式及语法格式
var json={"name":"leo",age:3,fun:"开发"};
for(var attr in json){
alert(attr); //attr是键名,返回name,age,fun
alert(json[attr]) //返回键值,返回leo,3,开发
}
var json1={
"url":["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"],
"text":["图片1","图片2","图片3","图片4"]
};
for(var attr in json1){
for(var i=0;i<json1[attr].length;i++){
alert(json1[attr[i]]);
}
}
2、for in可以遍历数组
var arr=["a","b","c"];
for i in arr{
alert(i); //0,1,2
alert(arr[i]); //a,b,c
}
3、快速清空数组arr.length=0;或者赋值空数组arr=[];对于长数组,后者方法相对效率高一点
4、数组的方法
var arr=[1,2,3];
- 添加:arr.push(4); //push方法返回值为数组长度
- 往前面添加:arr.unshift(0); //返回数组长度,IE6,IE7不支持此方法的返回值
- 删除:arr.pup(); //删除数组,返回被删除的对象
- 往前面删除:arr.shift(); //返回被删除的对象
- 指定删除:arr.splice(0,2); //第一个参数为开始位置,第二个参数为删除几个,返回值为删除对象,修改数组长度
- 替换元素:arr.splice(0,1,4) //替换第一个元素为4,返回删除的对象 //arr=[4,2,3]
- 在元素中间添加:arr.splice(1,0,5) // 1位置开始,删除0个,替换为5,无返回值 //arr=[1,5,2,3]
六、排序
1、var arr=["c","d","a","e"] arr.sort(); //a,c,d,e //根据Unicode 编码,对字符进行排序
2、var arr1=[4,3,5,76,2,0,8] arr1.sort(); //0,2,3,4,5,76,8 //默认情况下以字符串进行排序
3、比较排序函数
arr1.sort(function(a,b){
return a-b; //第一个参数减去第二个 从小到大排序;第二个参数减去第一个 从大到小排序;
})
七、随机数
1、0~1之间随机小数:Math.random();
2、四舍五入:Math.round();
3、0~10之间整数:Math.round(Math.random()*10);
4、5~10之间整数:Math.round(Math.random()*5+5);
5、10~20之间整数:Math.round(Math.random()*10+10);
6、20~100之间整数:Math.round(Math.random()*80+20);
公式:X~Y之间整数:Math.round(Math.random()*(y-x)+x);
七、数学方法
向上取整:Math.cell(12.5) //13
向下取整:Math.floor(12.5) //12
四舍五入:Math.round(12.4); //12
绝对值:Math.abs(-5) //5
八、其他方法
(一)concat数组连接
1、var arr1=[1,2,3];var arr1=[4,5,6];var arr1=[7,8,9];
arr1.concat(arr2,arr3); //1,2,3,4,5,6,7,8,9
(二)reverse数组颠倒
arr.reverse() //3,2,1
注意:如何颠倒字符串?var str="abcdef"; str.split(").reverse().join("");