1.字符串嵌套 字符串可以嵌套使用 在单引号包裹的字符串内部,应该使用双引号进行嵌套 在双引号包裹的字符串内部,应该使用单引号进行嵌套 在 json解析的时候字符串需要单引号,因此推荐在各种情况都使用单引号的方式进行声明 2.转义字符,用特殊的符号来替代在字符串中,容易引起歧义的内容 \' 表示单引号 \" 表示双引号 一个字符串一般写在一行内,不要分成多行 如果必须分成多行,可以采用反斜杠 “\” 作为连接符,或者将其分成多个字符串,通过拼接的方式进行组合 3.字符串长度 ① 测量字符串长度:length属性, 语法格式:字符串变量 . length ② 字符索引:[]方法, 在字符串后面接中括号,中括号内写数字,能够访问字符串中每一个字符 代码示例: var name=Franklin; var firstname=name[0]; 一次只能索引一个字符,如需索引多个,则使用加号(+)连接符多次索引 索引从0开始,0表示第一个字符 ③ 获取指定位置字符:charAt()方法和 charCodeAt()方法, 两种方法均是获取指定位置字符,不同的是charAt()返回的是具体的字符,而charCodeAt()返回的是字符对应的Unicode编码 代码示例; var name=Franklin; var cat=name.charAt(0); var ccat=name.charCodeAt(0); var cat结果为“F”,而var ccat结果为“70” 两个重要的字符编码,A——65,a——97,其他字母累加即可 如果index是负数,或者大于等于字符串长度的值,则 charCodeAt()返回的值为 NaN。 ④ 字符串连接:concat()方法, 将两个或多个字符串拼接起来,组成一个新的字符串,用法与加号(+)有相同之处 语法格式:var str=str1.concat(str2,str3,……); 4.转义字符 反斜杠 “\” 被称作转义字符 转义字符可以将特殊字符转换为字符串字符,可以用于转义撇号、换行、引号等特殊字符 常见转义符号:\' (单引号)、\" (双引号)、\\ (反斜杠)、\n (换行)、\r (回车)、\t (制表符)、\b (退格)、\f (换页符) \n、\r、<br/>区别 \n,英文是 new line,表示使光标下移一格 \r,英文是carriage return,表示使光标移到行首 <br/>是浏览器换行 总结:\n \r表示源代码换行(浏览器不解释),<br/>表示浏览器文字换行 5.字符串对象 JavaScript中提供了另外一种字符串的声明方式,叫作字符串对象,使用 new关键字将字符串定义为一个对象 语法示例:var newString=new String('Franklin'); var str1='frank’; //(typeof str1)返回值为 String var str2=new String('frank’); //(typeof str2)返回值为Object,String首字母必须大写 通常不要创建 string对象,它会拖慢程序执行速度,并可能产生其他副作用 字符串和字符串对象虽然效果相似,但它们是完全不同类型的数据 6. 字符串属性及方法 substring,截取字符串 substr,截取字符串(长度) slice,截取字符串 indexOf,返回当前查找字符串的位置,如果没有返回-1 lastindexOf,倒过来查找 trim,去掉字符串两端的空格 toUpperCase和toLowerCase,大小写转换 localeCompare,比较两个字符串大小 match,返回一个指定字符串的数组 search,返回位置 replace,替换字符串 split,字符串切割,返回数组 7.substring截取字符串 通过指定开始和结束位置,对字符串变量进行截取 语法:str . substring(index1, index2); 第一个参数表示截取的开始位置(包含index1),第二个参数表示结束位置(不包含index2) 结束位置理论上应该大于开始位置,如果第一个参数值大于第二个参数值,substring方法会自动调换两个参数的位置 8.substr截取字符串 通过指定开始截取的位置和截取的长度,对字符串变量进行截取 语法:str . substr(num1, num2); substr方法的语法格式与substring方法很相似,但表达含义和用法差别很大,substr两个参数不能互换 9.slice截取字符串 通过指定开始和结束位置,对字符串变量进行截取 语法:str . slice(num1,num2); slice的两个参数不能互相调换位置,如果第一个参数大于第二个参数,则返回结果为一个空字符串 substring、substr、slice三个方法的第一个参数都表示截取开始的位置,如果省略第二个参数,那么这三种方法都表示从开始位置截取一直到字符串本身结束 10.indexOf 查找一个字符或字符串在另一个字符串中的位置 语法:str . indexOf('sub’); 字符串的查找是从源字符串开始处进行向后查找,且只针对首次出现的位置查找,返回值为所在位置的索引,如果查找失败则返回 -1 11.lastindexOf 查找一个字符或字符串在另一个字符串中的位置 语法:str . lastindexOf('subStr’); 字符串的查找是从原字符串的末尾处进行向前查找,如果查找失败则返回 -1 12.indexOf和 lastindexOf还可以接受第二个参数,用于表示开始查找的位置 对于indexOf而言,表示从这个位置开始向后查找,语法:str. indexOf('subStr', num); 对于lastindexOf而言,表示从这个位置开始向前查找,语法:str.lastindexOf('subStr', num); 13.replace 将查找到的首次出现的字符串替换成目标字符串,如果查找失败则不发生替换,而是将原字符串完整拷贝出来 语法:str . replace('oldStr','newStr'); replace方法并不会对原本字符串产生任何影响,而是生成一个新的字符串 replace方法只能替换首次出现的字符串,如果要替换多个, 需要依赖于正则表达式 14.trim 去掉字符串两端多余的空格,中间部位的空格不受影响,语法:str . trim(); trim()方法并不会对原本的字符串产生任何影响,而是生成一个新的字符串 15.toUpperCase 将字符串中的英文字母全部转换成大写字母 语法:str .toUpperCase(); 16.同LowerCase 将字符串中的英文字母全部转换成小写字母 语法:str .toLowerCase(); 17.localeCompare 根据本地的排序规则对两个字符串进行大小比较 语法:str1 .localCompare(str2); 如果计算结果大于0则表示 str1大于 str2,如果计算结果等于0则表示 str1等于 str2,如果计算结果小于0则表示 str1小于 str2 ECMAscript标准没有规定如何进行本地特定的比较操作,只规定了该函数采用底层操作系统提供的排序规则,自定义比较方法也是可以的 18.match 查找原字符串是否匹配某个子字符串,返回结果是匹配的子字符串信息数组,如果没有找到则返回null 返回的数组内容包含:寻找的子字符串、子字符串位置索引、原字符串 语法:str . match('substr'); 示例:var string= 'hello world!'; string.match('hello'); //结果:['hello', index:0, input:'hello world!'] match方法只能查找到匹配的第一个字符串,但通过正则表达式的方式可以查找到所有匹配的字符串 19.search 与match方法相似,都是查找子字符串在指定字符串的位置信息 不同的是search方法返回的结果为下标(索引),如果没有找到匹配字符串则返回 -1 语法:str . search('substr'); 示例:var string= 'hello world!'; string.search('hello'); //结果:0 20.split 根据指定的符号将字符串进行分割,分割后的所有子字符串整合成为一个数组返回 如果无法分割,则只返回一个元素——字符串本身 语法:str . split('symbol'); 示例:var string = 'see you soon!’ string . split(' '); //返回结果:['see’,'you’,'soon’] 分隔符号不同,返回的数组就可能不同 21.JavaScript字符集 js使用的是Unicode字符集,在JavaScript引擎内部,所有字符都用Unicode表示 js不仅以Unicode存储字符,还允许在程序中直接使用Unicode编码表示字符 解析代码时,js会自动识别一个字符是字面形式表示,还是Unicode形式表示,输出给用的时候,所有字符都会转成字面形式 示例,var eg = '\u00A9'; console.log(eg); //© \n(换行符),\u000A \'(单引号),\u0027 \"(双引号),\u0022 \\(反斜杠),\u005C 22.字符串Base64编码 Base64本身是一种加密方式,可以将任意字符转换成可打印字符,通常主要是为了简化程序处理,不出现特殊字符,使用这种编码方法 JavaScript中为字符串提供了两种有关Base64编码的方法: btoa() 字符串或二进制值转换为Base64编码(加密) atob() Base64编码转换为原来的编码(解密) 示例: var string = 'frank'; console.log(btoa(string)); //ZnJhbms= var string = 'ZnJhbms='; console.log(atob(string)); //frank 这两种方法不适合非ASCII码的字符,但可以通过中间插入一个转码环节的方式,使用这两种方法将非ASCII码字符与Base64进行转换 这两种方法限于解析非中文代码,解析中文(包括英文)的方法为:encodeURIComponent() (加密)、decodeURIcomponent() (解密) 可以通过将中文加密后,再进行Base64加密,解密时操作顺序相反 |
|