JavaScript组成
1.核心(ECMAScript):描述了该语言的语法和基本对象 (翻译、解释器) ECMA几乎没有兼容行问题
2.文档对象模型(DOM):描述了处理网页内容的方法和接口 (给了我们操作HTML页面的一个入口)DOM有一些操作不兼容
3.浏览器对象模型(BOM):描述了与浏览器进行交互的方法和接口 BOM完全不兼容
变量类型
类型:typeof运算符
常见类型:number、string、boolean、undefined、object、function
一个变量应改只存放一种类型的数据,不然容易乱.
数据类型转换:
显示类型转换(强制类型转换)parseInt()、parseFloat()
隐式类型转换 如:比较a和b, a==b(自动转换类型,然后比较),a===b(不转换类型,直接比)
<script>
var a = '12';
var b = '3';
alert(a + b); //结果为123 字符串连接
alert(a - b); //结果为9 隐式转换类型 然后相减
</script>
NaN不等于NaN
取非行间样式
IE下:currentStyle 例:alert(oDiv.currentStyle.width);
Chrom和FF下:getComputStyle有两个参数第一个是要获取的div 第二个随便什么都行
例:alert(getComputStyle(oDiv,null).width);
<script>
//将常用函数封装
function getStyle(obj, name) {
//解决兼容性问题
if (obj.currentStyle)
{
return obj.currenStyle[name];
}
else {
return getComputedStyle(obj,false)[name];
}
}
window.onload = function () {
var oDiv = document.getElementById('div1');
//alert(oDiv.currentStyle.width);
//alert(getComputedStyle(oDiv,null).width);
alert(getStyle(oDiv, 'width'));
//如果是background则无法获取,因为是复合样式
};
</script>
arguments
arguments是一个数组,是可变参,不定参。
如:
<script>
//结果为4,因为传入了4个参数
function sum()
{
alert(arguments.length);
}
sum(12,8,5,6);
</script>
DOM
DOM其实就是document
浏览器对DOM的支持情况:
IE 10%(IE6到IE8) 到了IE9基本跟FF差不多
Chrom 60%
FF 99%
DOM节点:
首尾子节点:
有兼容性问题
fristChild(IE6到IE8使用)、fristElementChild(其他高版本浏览器使用)
lastChild、lastElementChild
兄弟节点:
有兼容性问题
nextSibling、nextElementSibling
previousSibling、previousElementSibling
DOM方式操作元素属性:
获取:getAttribute(名称);
设置:setAttribute(名称,值);
删除:removeAttribute(名称);