Javascript基础
Document
在IE7下document.childNodes[0].tagName=!
在IE7下document.childNodes[1].tagName=HTML
ECMAScript:翻译 核心 解释器
DOM DocumentObject Model HTML document
操作HTML的能力
创建DOM元素
creatElement 创建一个节点
appendChild 追加一个节点
appendChild
//1.先把元素从原语的父级上删除
//2.添加到新的父级
var oLi=document.createElement('li');
oLi.innerHTML="asd";
//在父级末尾添加oLi子节点
oUl.appendChild(oLi);
父级.appendChild(子节点);
插入元素
insertBefore 在已有元素前插入
父级.insertBefore(子节点,在谁之前);
删除DOM元素
removeChild 删除一个节点
BOM Browser ObjectModel 浏览器 window
兼容性
ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容)
类型typeof
vara=12; //number类型
a='asdasd'; //string
a=true; //boolean
a=function(){} //function类型
a=document; //object
varb //undefined
alert(typeof a) ;
NaN Not a number//不是数字
NaN和NaN不相等
isNaN(a)判断是不是一个非数字。
paeseFloat
==先转换类型再比较
===不转换类型直接比较
加号
1. 字符串连接
2. 数字相加
减法
1. 只有数字相减,在js中可以隐式类型转换
作用域
全局变量和局部变量
闭包
子函数可以使用父函数的局部变量
命名规范
运算符
== === != !==
三目运输符 ?:
Break中断整个循环
Continue跳过本次循环
真:true、非零数字、非空字符串、非空对象
假:false、零数字、空字符串、空对象、undefined
josn
var json={a:12,b:5,c:7};
json[‘a’]或者json.a
json没有length属性
对于数组可以用
For(var i=0;i<arr.length;i++)和for(var i inarr)两种方法
对于json用
for(var i in json)
json的下标是被定义的。
数组
定义:var arr=[12,2,3,4,6]
vararr = new Array(12,23,4,5,6)
没有差别,[]的性能略高,因为代码短
数组的length属性既可获取也可设置。
arr.push(7)//在数组尾部添加
arr.pop();//在数组尾部删除
arr.shift();//在数组头部删除
arr.unshift();//在数组头部添加
删除:splice(起点,长度),从起点删除指定长度的元素arr.splice(2,3);
插入:splice(起点,长度,元素)arr.splice(2,0,’w’,’c’,’t’);
替换:arr.splice(2,2,’a’,’b’);
数组连接:arrb.concat(arra);
数组拼接 arr.join(‘-‘);
var arra=[7,8,9];
alert(arra.join('--'));//输出7--8--8
alert(arra.join('--').length);//输出7
数组排序: sort();只认识字符串
**数组排序问题:vararr=[12,8,99,19,112]
arr.sort();//结果为[112,12,19,8,99]把数字当做字符串处理了。
解决数值排序办法arr.sort(function (n1,n2) {return n1-n2; });
可变参 不定参arguments
<script>
function sum()
{
var result=0;
for(var i=0;i<arguments.length;i++)
{
result+=arguments[i];
}
return result;
}
alert(sum(12,11,13))
</script>
<script>
function css(obj,name,value)
{
if(arguments.length==2)
{
return obj.style[name];
}
else
{
obj.style[name]=value;
}
}
window.οnlοad=function()
{
var oDiv=document.getElementById('div1');
css(oDiv,'background','green');
}
</script>
Jquery存在的函数css
css(oDiv,’width’)获取样式
css(oDiv,’width’,’200px’)设置样式
获取非行间样式
obj.currentStyle[name];
getComputedStyle(obj,false)[name];
复合样式
复合样式:background border
单一演示:width height position
定时器
开启定时器
setInterval 间隔性
setTimeout 延时性
停止定时器
clearInterval
clearTimeout
Date对象
getFullYear()年
getMonth()月(从0月开始0~11)
getDate()几号
getDay星期几(从星期0(周日)开始到星期6)
系统对象
1. 本地对象(非静态对象)
a) 常用对象
i. Object 、Function、Array、String、Boolean、Number、Date、RegExp、Error
2. 内置对象(静态对象)
a) Global、Math
3. 宿主对象(由浏览器提供的对象)js运行环境
a) DOM、BOM