day-9.5 JS自带API(字符串)
大多数API对原变量的值都不会修改,而是返回一个新值。
一、API1 : 获取字符串长度属性
字符串 是基础数据类型,但是字符串是有length属性的。
但是string 的length属性并不是直接存在 这个字符串数据里面,因为字符串数据是一个基础数据类型,基础数据类型在JS里面是不能带属性的。
那为什么我们可以获取到字符串数据的length属性呢,那是因为,在获取字符串的length属性的时候,其实是经历了2个步骤,即先new String () 这个变量之后,再进行length属性的获取。
1 var a = "length"; 2 console.dir(a); // 输出的是 length 3 console.dir(new String(a)); //输出的是一个string 对象 4 console.log(a.length); //输出6 ;

API2 : 获取字符串的指定字符
可以看出,length属性是存在经过构造函数new String()转换后的对象里,当直接获取的时候,其实是先做了包装对象转换再获取的。
一个汉字也当做一个字符,占一个长度。不分单双字节,只区分字符。
如何获取字符串的指定字符,上图可以看出 经过构造函数转换后的字符串对象,字符的数据类型其实有点像,数组,所以我们可以通过以下写法获取字符串的指定字符。
1 var a = "果果haha"; 2 console.log(a[2]); //输出果,不支持低版本; 3 console.log(a.charAt[3]) //输出ha ,支持所有版本浏览器。
API3 : 字符串的拼接
string.concat();可以用加号和concat;
比如
1 var a = "aaaa"; 2 var b = "bbbb"; 3 var c = "cccc"; 4 var d = a.concat(b,c); 5 console.log(d); //输出aaaabbbbcccc
API4 : 字符串指定字符的UTF-8编码
string.charCodeAt[0];查找第0个字符的charCodeAt编码;
1 var a = "哈123"; 2 a.charCodeAt(0);//输出21704,注意,这里下标寻址用的是括号
将对应编码转换成字符的API
1 var b = 111111111; 2 console.log(String.fromCharCode(b)); //输出 : 毇
API5 : 切割字符串
substring(start,end); 起始下标到终止的下标,含起始,不含结束;
1 var a = "今天天气真好"; 2 var b = a.substring(1,4); 3 console.log(b); //输出:“天天气”;
substr(start,step);起始下标和步数(长度),
1 var a = "今天天气真好"; 2 var b = a.substr(1,4); 3 console.log(b); //输出:天天气真
subslice(start,end);切割的方向也是从左到右,当下标从左为0开始计算时,跟substring 一样。但是subslice还支持下标从右开始数起,当需要取到字符串最后一位时,下标可以不写;
subslice 一般用于字符串较长且不知道长度的情况,可以从尾部取值。
1 var a = "今天天气真好"; 2 var b = a.slice(-3,-1); 3 var c = a.slice(-3,); 4 var d = a.slice(1,3); 5 console.log(b); //输出:气真 6 console.log(c); //输出:气真好 7 console.log(d); //输出:天天
API6 :转大小写;
toLowerCase() :转小写;
toLocalLowerCase() :转小写(支持的语言类型多一点);
toUpperCase() :转大写;
toLocalUpperCase() :转大写(支持的语言类型多一点);
API7 : 按照某种特点去切割成数组 ;
例子:
1 var a = "凉凉,呵呵,嘻嘻,嘿嘿,嚜嚜"; 2 var b = a.split(","); 3 console.log(b); //输出数组b,每个下标对应的值为原字符串逗号隔开的值;
当string.split("");参数为空字符串(不是空,是"")的时候,会返回每个下标值为字符串单个字符的数组;
当传入的参数值为原字符串没有的字符时,则会将原字符串作为一个整体,将原字符串转成只有一个值的数组;
API8:indexOf 找某个字符的位置;
1 var a = "今天天气真的不错,天气真好"; 2 b = a.indexOf(“天气”,6) ; //查找“天气”的位置,从第六位字符开始找; 3 console.log(b); //输出9,逗号算一个字符;
浙公网安备 33010602011771号