習(xí)慣了高級(jí)面向?qū)ο笳Z(yǔ)言的一些特性,下意識(shí)在寫(xiě)JS時(shí)寫(xiě)了這樣的公共函數(shù):// 校驗(yàn)str是否全又?jǐn)?shù)字組成,是則返回-1;否則返回第一個(gè)不是數(shù)字的字符在str中的位置 function IsNumber(str) { var inStr = "1234567890"; for(var i=0;i<str.length;i++) { if(inStr.indexOf(str.charAt(i)) == -1) return i; }
return -1; } // 校驗(yàn)str中的字符是否全部屬于standardStr,是則返回-1;否則返回第一個(gè)不屬于standardStr的字符在str中的位置 function IsNumber(standardStr, str) { for(var i=0;i<str.length;i++) { if(badStr.indexOf(str.charAt(i)) == -1) return i; }
return -1; }
結(jié)果我在調(diào)用IsNumber(str)時(shí),發(fā)現(xiàn)報(bào)’str is not properties’的錯(cuò)誤,F(xiàn)ireDebug下,發(fā)現(xiàn)調(diào)用的方法是IsNumber(standardStr, str)。我原本傳入200712,結(jié)果standardStr值為200712,而str則為null。
怎么會(huì)這樣呢?不論怎樣,IsNumber(str)也放在IsNumber(standardStr, str)前面!這里就提現(xiàn)個(gè)人對(duì)js標(biāo)準(zhǔn)語(yǔ)法規(guī)則的陌生,我將IsNumber(str)函數(shù)名換了個(gè),就免除了這個(gè)問(wèn)題
|