1. 一种面向对象语言需要开发者提供以下四种基本能力。
(1)封装---把相关信息(无论属性还是方法)存储在对象中的能力。
(2)聚集---把一个对象存储在另一个对象内的能力。
(3)继承---由另一个类(或多个类)得来类的属性或方法的能力。
(4)多态---编写能以多种方法运行的函数或方法的能力。
2. 把对象的所有引用都设置为 null,可以强制性的废除对象。废除对象和它的属性是确保内存正确使用的有效方法.
var oTest = new Object();
oTest = null;
3. 可以用字面量表示定义 Array 对象
var test = ["1","2","3"];
alert(test.length); //outputs "3"
test[25] = "5";
alert(test.length); //outputs "26"
4. Array 对象的动作就像一个栈,遵循后进先出(LIFO)原则.
var test = new Array();
test.push("1");
test.push("2");
test.push("3");
alert(test.toString()); //outputs "1,2,3"
testI = test.pop();
alert(testI); //outputs "3"
alert(test.toString()); //outputs "1,2"
根据这个原则设计的一个反转数组,不过效率很低:
function fChange(fArray) {
var nArray = new Array();
var fLength = fArray.length;
for(var i=0;i<fLength;i++){
nArray[i] = fArray.pop();
}
alert(nArray.toString());
}
var aString = new String("e,a,l,c,u,b");
var aArray = aString.split(",");
fChange(aArray); //outputs "b,u,c,l,a,e"
原来还有已经定义好的方法,reverse().
var aString = new String("e,a,l,c,u,b");
var aArray = aString.split(",");
var tArray = aArray.reverse();
alert(tArray.toString());
另外一种是按照数组的值的升序排列
var aString = new String("e,a,l,c,u,b");
var aArray = aString.split(",");
var tArray = aArray.sort();
alert(tArray.toString()); //outputs "a,b,c,e,l,u"
5. 可以用 prototype 属性为任何已有的类定义新方法.如果要为每一个本地对象添加新方法,就必须在Object对象的 prototype 属性上定义它.
Object.prototype.showValue = function(){
alert(this.valueOf());
}
var test
经常在ie6下出现javascript页面跳转和表单提交问题,ie6下实现javascript页面跳转和表单提交需要进行特别处理,需要使用setTimeout()函数延迟实现。
1,兼容各浏览器的Javascript页面跳转
setTimeout(function(){
window.location.href = url;
},0);
2,兼容各浏览器的Javascript表单提交
setTimeout(function ......
1.document.formName.item('itemname')的问题
说明:IE下可以使用document.formName.item('itemname')和document.formName.elements('elementsName');
FF下只能使用docuement.formName.elements('elementsName');
解决方法:统一使用docuement.formName.elements('elementsName');
2.集合类对象问题
说明:IE下可以使用[]和 ......