js求字符串字节长度方法封装

字符串字节长度

    • 一、求字符串字节

一、求字符串字节

var str = 'jg78*笑笑';//只有中文的Unicode编码大于255
function getByteLength(str){
	var count = 0;
	for(var i = 0;i < str.length;i ++){
		if(str.charCodeAt(i) > 255){//charCodeAt返回参数Unicode编码
			count +=2;//中文为2Byte
		}else{
			count ++;//其他为1Byte
		}
	}
	return count;//返回参数字节长度值,也可以直接console输出
}
var res = getByteLength(str);

大家会发现这里代码效率是比较低的,因为我们对中文和非中文进行判断时有两个判断,那么可不可以只用一个判断呢?

function getByteLength(str){
	var count = str.length;//首先count等于字符串的长度
	for(var i = 0;i < str.length;i ++){
		if(str.charCodeAt(i) > 255){//如果Unicode编码大于255为中文
			count ++;//在原来基础上没多一个中文就+1
		}
	}
	return count;//返回参数字节长度值,也可以直接console输出
}

这样的话能够提高代码效率,使函数更加容易理解,还能锻炼思维。

你可能感兴趣的:(JavaScript的学习)