1遍歷數(shù)組
通常寫法:(
更改為“推薦寫法”,隨筆修改于2007年11月26日)
var myArray=new Array();
myArray.push(1);
myArray.push("1");
for(var i=0;i<myArray.length;i++)
alert(myArray[i]);
推薦寫法:(
更改為“非推薦寫法”,隨筆修改于2007年11月26日)
var myArray=new Array();
myArray.push(1);
myArray.push("1");
for(var i in myArray)
alert(myArray[i]);
原因:代碼量少(
原因見ke的評論,隨筆修改于2007年11月26日)
2定義構(gòu)造函數(shù)
通常寫法:
function Person(name,sex)
{
var action='run';
this.name=name;
this.sex=sex;
this.run=function(){
alert(action);
};
}
推薦寫法:
function Person(name,sex)
{
this.name=name;
this.sex=sex;
this.action='run';
}
Person.prototype.run=function(){
alert(this.action);
};
原因:避免重復(fù)創(chuàng)建函數(shù),避免使用閉包
3判斷一個(gè)js對象是否支持某個(gè)屬性或方法
錯(cuò)誤寫法:
var person=new Person('lzq','男');
if(person.name)
{
alert('name屬性存在');
}
正確寫法:
var person=new Person('lzq','男');
if(typeof(person.name)!='undefined')
{
alert('name屬性存在');
}
原因:當(dāng)person.name=null,0,false時(shí)測試失效
4在IE中根據(jù)name屬性取得SPAN元素
錯(cuò)誤寫法:
var domObjs=document.getElementsByName('nameStr');
正確寫法:
function getElementsByNAME(name)
{
returns = new Array();
var e = document.getElementsByTagName('span');
for(i = 0; i < e.length; i++) {
if(e[i].getAttribute("name") == name) {
returns[returns.length] = e[i];
}
}
return returns;
}
var domObjs=getElementByNAME('nameStr');
原因:w3c規(guī)范中g(shù)etElementsByName是按著name屬性進(jìn)行檢索的,而MS的IE卻是按著id來檢索,導(dǎo)致不能得到應(yīng)該得到的Elements。
5得到字符串所占的字符個(gè)數(shù)
錯(cuò)誤寫法:
var str="Java我選擇,我喜歡!";
var charLength=str.length;
正確寫法:
function getLen(str)


{
var totallength=0;
for (var i=0;i<str.length;i++)

{
var intCode=str.charCodeAt(i);
if (intCode>=0&&intCode<=128)

{
totallength=totallength+1; //非中文單個(gè)字符長度加 1
}
else

{
totallength=totallength+2; //中文字符長度則加 2
}
}
return totallength;
}
var str="Java我選擇,我喜歡!";
var charLength=getLen(str);
原因:一個(gè)漢字占兩個(gè)字符