1、JAVASCRIPT的组成
DOM :文档简单来说就是HTML,DOM赋予操作HTML的能力;有一些操作不兼容
BOM: 浏览器对象模型,浏览器对象是window;没有兼容问题
ECMA: 几乎没有兼容性问题
2.常见类型:
基础类型:number、function、object、boolean、string、
其他类型:undefined (1、真的没定义;2、定义,但为给赋值;)
NAN 非数字类型
3、字符串转数字
parseInt(),从左向右解析,非数字时跳出返回数字,
显示类型转换(强制类型转换):
parseInt()用来转换整数,
parseFloat()用来转换成小数,
隐示类型转换:
==和===
减法
isNAN()可以判断出来变量是不是NAN,用来判断输入数字时候判断
4、变量的作用域和闭包
闭包:子函数可以使用父函数的局部变量
5、命名规范
a、类型前缀,命名规范表如下:仅用于变量命名
javascript 变量命名类型 变量命名前缀 array 数组 a boolean 布尔值 b float 浮点数 l function 函数 fn int 整型 i object 对象 o regular 正则 r string 字符串 s
b、首字母大写,
6、运算符
a、算术: %取模,就是求余数,
取模的应用:
1、各行变色,
思路:用for循环,根据索引值取模来确定变色行数的背景,
for(var i=0;i<ali.length;i++){
if(i%2 == 0) {
代码块
}else {
代码块
}
}
2、秒转时间
var s = 156;
var m= parseInt(s/60)+'分'
var ms = (156%60)+'秒'
b、赋值: +=和++相同,只能每次加一
c、逻辑:&&与,||或,!否
7、流程控制
a、判断:if 、switch ,?:
当判断条件较多时,使用switch,语法如下:
switch(变量){
case 值1:
break;
case 值2:
break;
default:
语句N
}
三目运算符:(条件)?语句1:语句2
b、跳出:break和countinue
break中断整个循环,
continue是中断符合条件的循环
c、真假问题
真:true、非零数字、非空字符,非空对象
假:false、数字零、空字符串、空对象、undefined
8、json
json和数组的关系与区别:
a、json的下标是字符串,数组的下标是数字
b、数组有长度,json无长度
c、循环
for ..in适合数组和json
9、函数返回值
函数返回值即函数执行的结果,可以没有return
10、函数传参
arguments 可变参或不定参,参数的个数可变,参数数组
a、求所有参数的和:
function sum(){
var result=0;
for(var i=0;i<arguments.length;i++){
result+=arguments[i]
}
return result
}
alert(sum(12,6,8,20,25))
b、css函数,给参数去名字,增强可读性
function css(object,name,value){
if(arguments.length == 2) {
//return arguments[0].style[arguments[1]] //两个参数时候是获取参数
return object.style[name]
}else {
// arguments[0].style[arguments[1]]=arguments[2] //三个参数时候是设置参数
object.style[name]=value
}
}
c、取非行间样式
使用currentStyle来获取,但不兼容其他浏览器,仅限于iE
chrome,FF则使用getComputedStyle来获取,两个参数,
对于以上两种获取非行间样式的兼容性问题,用真假值解决:
function getStyle(object,name) {
if(object.currentStyle) {
//ie
return object.currentStyle[name]
}else {
//chrome,FF
return getComputedStyle(oDiv,false)[name]
}
}
只能取出来单一样式,复合样式需要改写为单一样式。
11、数组的增删改查
增加:array.push()尾部添加
array.unshift()从头部添加
删除:array.pop()尾部删除
array.shift()从头部删除
splice用法:
a、删除:splice(起点,长度) 从起点开始删除长度的个数
b、插入:splice(起点,长度,元素) 从起点开始删除长度的个数,然后插入元素
join(分隔符):用分隔符,组成数组元素,生成字符串,字符串分割用split
sort()排序:
容易引起字符串排序,此时需要用比较函数进行比较,
array.sort(function(n1,n2){
return n1-n2
/*if(n1<n2){
return -1;
}else if(n1>n2) {
return 1
}else {
return 0
}*/
})
12、定时器
setInterval(回调函数,时间)无限制性,间隔型
setTimeout(回调函数,时间)只执行一次,延时型
获取系统时间:
a、 data对象
b、getHours、getMinutes、getSeconds
c、getFullYear(),getMonth(),getDate(),getDay()
13、运动基础
a、offsetLeft获取物体的左边距,计算出来后得出的结论,此属性为只可读属性,不能进行赋值。
b、offsetTop获取物体的上边距