js入门之字符串常用的方法

一、 概念理解基本包装类型

1. 基本包装类型

三种基本包装类型
String 
    var s = new String('123dddd');
Number 
Boolean

简单类型没有方法和属性 之所有可以调用方法和属性是因为会在堆上创建一个临时的基本包装类型,当使用完成之后通过null来清除, 一般不适用boolean和number基本包装类型

2. 字符串的特点

字符串的特点1 不可变
当对一个字符串重新赋值的时候是重新开辟一个新的内存区
问题: 当拼接大量字符串的时候,会有性能问题

3. 常用字符串方法

常用的字符串方法
1. 字符串方法
charAt() 获取指定位置处字符
charCodeAt() 获取指定出字符的ASCII码
str[0]  HTML5支持 和charAt() 等效
    console.log(s[2]);

2. 字符串操作方法
concat() 拼接字符串等效于+ +更常用
    var a = 'abc';
         var b = '123';
         console.log(a.concat(b));
slice() 从start开始截取到end位置 end娶不到
substring() 
substr()
    var s = '我爱中华人民共和国';
        var new_s = s.substr(2,2);
        console.log(new_s);

3.位置方法
indexOf
lastIndexOf()
    查找所有o出现的位置
    var s = 'abcodefoxyozzopp';
        var index = -1
        console.log(s.indexOf('o'));
        do {
            index = s.indexOf('o',index + 1);
            if (index !== -1) {
                console.log(index);
            }
        } while (index !== -1);

4. 去除空白
trim()   只能去除字符串前后的空白

5. 大小写转换方法
to(Locale)UpperCase()
to(Locale)LowerCase()
    var str = 'abcDeFG';
         console.log(str.toLowerCase())
         console.log(str.toUpperCase())

6. 其它
search()
replace()  只会替换第一个找到的字符串
    替换字符串中所有的o为!
    var s = 'abcodefoxyozzopp';
        var new_s;
        var index = -1;
        do {
            index = s.indexOf('o', index + 1);
            if (index !== -1) {
                s = s.replace('o', '!');

            }
        } while (index !== -1);

        console.log(s);


split()
    var s = '   abc   xyz    a   123   ';
        s = s.split(' ');
        console.log(s.join(''));


查找次数最多的字符串
var s = 'abcodefoxyozzopp';
var ch;
var num;
var o = {}
for (var i = 0; i < s.length; i++) {
    var item = s.charAt(i);
    if (o[item]) {
        o[item]++;
    } else {
        o[item] = 1;
    }
}
num = 1;
for (var key in o) {
    if (num < o[key]) {
        num = o[key];
        ch = key; //次数最多的字符
    }
}
console.log(num, ch);

案例
获取url的请求参数 把字符串转成对象
var url = 'https://cn.bing.com/search?q=%e7%99%be%e5%ba%a6%e4%b8%80%e4%b8%8b&qs=HS&pq=%e7%99%be%e5%ba%a6&sc=9-2&cvid=1F2309EACC5B4134A2B6C187EF4955B7&FORM=QBLH&sp=2';
         function getParams(url) {
             var index = url.indexOf('?') + 1;
             var params = url.substr(index);
             var arr = params.split('&');
             var o = {};
             for (var i = 0; i < arr.length; i++) {
                 var tmpArr = arr[i].split('=');
                 var key = tmpArr[0];
                 var value = tmpArr[1];
                 o[key] = value;
             }
             return o;
         }
         var obj = getParams(url);
         console.log(obj);
原文地址:https://www.cnblogs.com/guniang/p/11987708.html