乐趣区

关于前端:一次讲明白JavaScript字符串操作

ASCII(as key)字符集

●咱们都晓得,计算机只能存储 0101010 这样的二进制数字
●那么咱们的 a ~ z / A ~ Z / $ / @ /… 之类的内容也有由二进制数字组成的
●咱们能够简略的了解为,a ~ z / A ~ Z / $ / @ /… 之类的内容都有一个本人的编号,而后在计算机存储的时候,是存储的这些编号,咱们看的时候,也是通过这些编号在解析成咱们要看到的内容给咱们看到

unicode 编码

●咱们看到了,ASCII 只有这 128 个字符的编码构造
●然而因为 ASCII 呈现的比拟早,而且是美国创造的,新近时候这些内容就够用了
●因为存储一些英文的内容,传递一些英文的文章什么的都够用了
●那么对于这个世界来说必定是不够用的
●因为咱们的汉字没有方法存储,包含一些其余国家的语言也没有方法存储
●所以就呈现了 unicode 编码,也叫(万国码,对立码)
●unicode 对照表就是一个和 ASCII 一样的对照表,只不过变得很大很大,因为存储的内容特地的多
●而且蕴含了世界上大部分国家的文字,所以咱们的文字和字符当初在存储的时候,都是依照 unicode 编码转换成数字进行存储
●咱们的 UTF-8 就是一种 8 位的 unicode 字符集

国标编码 GBK

●国标码是汉字的国家标准编码,目前次要有 GB2312、GBK、GB18030 三种。
●GB2312 编码方案于 1980 年公布,收录汉字 6763 个,采纳双字节编码。
●GBK 编码方案于 1995 年公布,收录汉字 21003 个,采纳双字节编码。
●GB18030 编码方案于 2000 年公布第一版,收录汉字 27533 个;2005 年公布第二版,收录汉字 70000 余个,以及多种少数民族文字。GB18030 采纳单字节、双字节、四字节分段编码。

字符串
什么是字符串
●字符串是一种数据类型
●字符串就是间断的字符序列,由数字,字母和符号组成。在字符串的每个字符只占用一个字节
●在 JS 内用单引号、双引号或者反引号(ES6 中称为模板字符串)包裹

什么是包装数据类型
●存储的时候, 是以根本数据类型的模式进行存储
●当你应用它的时候, 会霎时转换成 简单数据类型 的样子让你应用
●等你应用结束, 霎时转换成 根本数据类型 的模式进行存储
●在根本数据类型中有 3 个非凡的存在:String Number Boolean
●这 3 个根本类型都有本人对应的包装对象。包装对象其实就是对象,有相应的属性和办法。调用办法的过程是在偷偷产生的,所以咱们成为根本包装类型

创立字符串
●咱们创立字符串也分为两种办法 字面量 和 构造函数
●字面量:var 变量名 = ‘ 值 ’

// 字面量的形式创立字符串
var str = 'hello world'
var str1 = "hello world"
console.log(typeof str)
console.log(typeof str1)

内置构造函数创立

// 内置构造函数的形式创立字符串
var str2 = new String('hello world')
console.log(str2);
console.log(typeof str2);
console.log(str === str1);
console.log(str == str2);

字符串操作

●length 属性操作
○length 属性是一个 只读 的属性, 只能获取不能设置
○读取
■语法:字符串.length
○返回值:获取到的就是该字符串的长度, 也就是字符串有多少个字符组成
○留神:空格也是一个字符,中文也是一个字符

// 创立一个字符串
var str = 'hello world'
console.log('原始数据 :', str);
// length 属性
var s1 = str.length
console.log(s1);

●索引属性操作
○是一个 只读 的属性, 只能获取不能设置
○读取
■语法:字符串[索引]
○返回值:获取到的就是该字符串指定索引地位的那一位字符
■如果有该索引地位, 那么就是该索引地位的字符
■如果没有该索引地位, 那么就是 undefined
○索引从 0 开始,顺次加 1

// 创立一个字符串
var str = 'hello world'
console.log('原始数据 :', str);
// 索引
var res = str[4] // 0
console.log(res);
var res1 = str[100]
console.log(res1); // undefined

●遍历

// 定义一个字符串
var str = 'hello world'
//  遍历
for (var i = 0; i < str.length; i++) {console.log(str[i])
}

案例 – 统计字符呈现的次数

var str = 'abcabcsghgjgfdgdfhfhdsfsdgsh'
// 咱们要有个对象
var obj = {}
// 循环遍历该字符串
for (var i = 0; i < str.length; i++) {// console.log(str[i]);
    // 咱们拿到了字符串中的每一项, 咱们要把这个当做咱们对象的键
    // 因为咱们前面要屡次用到每一项所以咱们能够独自用一个变量接管一下
    var s = str[i]
    // 咱们是不是要先看看咱们的对象外面有没有这个数据, 如果有咱们就让它 ++ 就好
    // 如果没有咱们就给它增加一个
    // 问题来了: 如何判断对象外面有没有, 如果对象外面没有这个键 返回的是 undefined console.log(obj.a);
    if (obj[s] === undefined) {obj[s] = 1
    } else {obj[s]++
    }
}
console.log(obj);
退出移动版