一个完整的javascript实现是由以下三个部分组成:
核心(ECMAScript)
文档对象模型(DOM)
浏览器对象模型(BOM)
ECMAScripot描述了以下一些内容:
语法,类型,语句,关键字,保留字,运算符,对象
DOM是由HTML和XML的应用程序的接口.DOM将整个页面规划
成由节点层次构成的文档.HTML或者XML的每个部分都是一个节点的衍生物.
DOM通过创建树来表示文档.
DOM的各个LEVEL:
LEVLE1:
两个模块构成:DOM Core 和DOM HTML.
前者提供了基于XML的文档的结构图,以方便访问和操作文档的任意部分;
后者添加了一些HTML专用的对象和方法.
LEVLE2:
扩展了对鼠标和用户界面事件,范围,遍历的支持,并通过对象接口添加了对CSS的支持,也假如了对XML命名空间的支持.
LEVEL3:
引入了以统一的方式载入和保存文档的方法.
BOM
可以对浏览器窗口进行访问和操作
判断一个变量是否为undefined
var a;
if (typeof(a)="undefined") or if (a == undefined) //true
如果一个变量未定义,虽然 if (typeof(a)="undefined")但是 if (a == undefined)报错
NUll类型
值undefined实际上是从null派生来的,所以
alert(null == undefined)//output true
function
如果没有返回值,返回的就是undefined
如果返回的是对象,但是找不到该对象时,返回的就是null
NAN表是非数,一般情况发生在类型转换失败时.例如转换blue为数字就会失败.另外NaN的奇特之处在于自身不相等.
alert(NaN == NaN) //output false
类型转换:
字符->数字:
如果要转换的十进制数包含前导0,那么最好成绩采用基数10
var iNum1 = parseInt("010"); //returns 8
var iNum1 = parseInt("010",8); //returns 8
var iNum1 = parseInt("010",10); //returns `0
parseInt 可以有基模式和默认模式
parseFloat只有默认模式
闭包:
函数能够使用函数外定义的变量.例如使用全局变量是一个简单的闭包实例.
var sMessage = "Hello World!"
function sayHelloWorld(){
alert(sMessage);
}
sayHelloWorld();
在一个函数中定义另外一个函数会使闭包变得更加复杂
var IbaseNum = 10;
function addNumbers(iNum1, iNum2) {
fcuntion doAddition(){
return iNum1 + iNum2 +iBaseNum;
}
return doAddition();
}
splice()把数据项插入数组的中部
删除:要删除的第一个项的位置和要删除的项的个数
aColors.splice(0,2)删除数组aColors中的前两项;
替换而不删除:声明三个参数可以把数据项插入指定位置:1.起始位置,2.0(要删除的项的个数) 3.要插入的项.
aColors.splice(2,0,"red","green")将在位置2处插入"red"和"green"
替换并删除:
声明三个参数可以把数据项插入指定位置:1.起始位置,2.要删除的项的个数 3.要插入的项.
aColors.splice(2,1,"red","green")删除位置2处的项,然后在位置2处插入"red"和"green"
JavaScript代码
var aColors = ["red","green","blue","yellow"];
aColors.splice(0,2);//blue,yellow
aColors.splice(2,0,"r","g");//red,green,r,g,blue,yellow
aColors.splice(2,1,"r","g");//red,green,r,g,yellow
encodeURI:
用于处理完整的URI(http://www.ox.com/illegal value.htm#start)
encodeURIComponent:
用于处理URI的一个片段(illegal value.htm)
主要区别:encodeURI方法不对URI中的特殊字符进行编码,如冒号,前斜杠,问号和英磅符号
encodeURIComponent对所有的非标准字符进行编码
可以看到除空格外,第一个URL无任何改变,空格被替换为%20.第二个中的所有非字母和数字字符都被替换成对应的编码.
decodeURI和decodeURIComponent
对比BOM的escape,unescape方法.URI方法更加可取,因为他们会对所有的Unicode符号编码,而BOM方法只对ASCII符号正确编码
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/293106/viewspace-591919/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/293106/viewspace-591919/