wms仓储管理系统流程:高手来看看啊!这个程序里这个参数是什么意思啊?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 18:48:14
function bytes(str){
if(typeof(str)!='string'){
str = str.value;
}
var len = 0;
for(var i = 0; i < str.length; i++){
if(str.charCodeAt(i) > 127){
len++;
}
len++;
}
return len;
}
这个程序中的str.charCodeAt(i) > 127是什么意思啊?

这个程序的语言: javaScript

程序: 是一个函数,function

作用: 检查变量中是否含有中文(“对中国人来说”)

分析:

1。typeof(str)!='string' 检查str的类型是否为String

2。str.charCodeAt(i) > 127 分两步:str.charCodeAt(i)什么意思和>127什么意思

str.charCodeAt(i) 返回字符串中的每个字符的十进制植;
(str.charAt(i)返回指定位的字符)
例如: str="abce";
str.charAt(1)返回 b (str.charAt(0)返回a)
str.charCodeAt(1)返回 98(b的十进制值)

>127 十进制值大于127
小于127的都是大小写字母,数字,标点符号,空格 ……
例如:
b 十进制值98小于127,
8 十进制值56小于127,
% 十进制值37小于127,
龙 十进制值???大于127 (总之>127多少我也不知道)

str.charCodeAt(i) > 127 的意思就是分别检查每个字符是否>127
(是否含有大小写字母,数字,标点符号,空格之外的其他字符)

剩下的 if条件 len++ 就不说了(你都懂的)
(多了一个len++,后一个去掉)

主要作用: 检查注册的用户名, 还有( 多者呢)

实验: 调用函数bytes();

byte("snowyeye") 返回 0;
byte("napolun180410") 返回 0;
byte("百度知道") 返回 4;

区分全角,半角。

字符串中的第i位的字符的ASCII码如果大于127的话

charCodeAt(i)函数返回指定字符的UNICODE值
str.charCodeAt(i) > 127判断这个字符是不是UNICODE值
如果是 len++
而你后面又有一个len++是什么意思呢?
我就不太明白了
我觉得后面这句len++应该是没有的
最后返回len
函数功能是统计一个字符串中UNICODE字符的个数
如果有后面的len++难道是统计一个字符串有多少字节吗?
就不懂了

str.charCodeAt(i)是引用str里面charCodeAt数组的第i个变量值。str.charCodeAt(i) > 127就是循环里的动作,如果str.charCodeAt(i)的值大于127,则执行len++。
看一下程序前文的定义,应该有str的结构定义。