習(xí)慣了高級面向?qū)ο笳Z言的一些特性,下意識在寫JS時寫了這樣的公共函數(shù):// 校驗(yàn)str是否全又?jǐn)?shù)字組成,是則返回-1;否則返回第一個不是數(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;否則返回第一個不屬于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)時,發(fā)現(xiàn)報’str is not properties’的錯誤,F(xiàn)ireDebug下,發(fā)現(xiàn)調(diào)用的方法是IsNumber(standardStr, str)。我原本傳入200712,結(jié)果standardStr值為200712,而str則為null。
怎么會這樣呢?不論怎樣,IsNumber(str)也放在IsNumber(standardStr, str)前面!這里就提現(xiàn)個人對js標(biāo)準(zhǔn)語法規(guī)則的陌生,我將IsNumber(str)函數(shù)名換了個,就免除了這個問題
|