总的来说JavaScript是面向对象语言,其实与java有很多共通的地方。
声明和实例化:与java一样,利用new关键字创建对象,区别在于javascript对象构造函数如果没有参数,可以省去。 var oObject = new Object; 与java一样变量也表示引用,并且也有相似的垃圾回收规则。
Array对象几种创建方式:var arr = new Array(); var arr = new Array [20]; var arr = new Array{"aa","bb"}; 这个是我认为比较特别的方式 var arr = [1,2,3]
Array对象与字符串的相互转化: toString,valueOf输出字符串的值,间隔符号利用join函数指定。 String转换成数组调用split(),参数表示分隔符;当参数为""时,表示一个一个字符输出。
堆与栈:可以利用Array的方法模拟堆与栈,这个会很有用!利用push,pop模拟栈,后进先出;也可以利用shift,unshift模拟,区别是一个针对最后一个元素操作,一个针对第一个元素操作。可以利用shift与push模拟队列。
Array对象基本操作:reverse逆序,sort排序(排序需要将数组中元素作为对象进行处理),splice(这个方法可以增删改数组元素,通过参数来控制行为)
ECMAScript内置对象,Global&Math
GLOBLE:我们使用过的isNaN,isFinite,parseInt方法都是属于Global对象的,应为与java中一样,所有的函数是某个对象的方法。Global提供了uri编码函数,encodeURI,encodeURIComponent,decodeURI,decodeURIComponent,避免使用escape,unescapse应为这两个函数只能对Ascii编码正确
eval方法:书中说eval是ECMAScipt最强大的方法。相当与ECMAScript的解释程序,把参数解释为ECMAScript真正的语句。
Global属性:undefined、NaN、各种对象的构造函数是Global的属性,不知道这句话怎么理解
作用域:javascript中只有一个作用域(书上这么说,但是我的问题是不是有局部变量和全局变量的问题吗),就是共有作用域。任何对象的属性都是可以访问的。
this:this只想调用该方法的对象