new function(s){ if(!arguments.length||!s) return null; if(""==s) return 0; //无效代码,因为上一句!s已经判断过 var l=0; for(var i=0;i<s.length;i++){ if(s.charCodeAt(i)>255) l+=2; else l+=1; //charCodeAt()得到的是unCode码 } //汉字的unCode码大于 255bit 就是两个字节 alert(l); }("hello world!");