28 JS基础之--String包装数据类型方法总结
2016-12-05 23:06
435 查看
string的包装类型
字符串有长度属性,但是又说只有对象才有属性和方法。实际上:
在使用字符串的属性或方法时,JS会给我们创建一个值相同的基本包装类型对象,再调用这个对象的属性和方法,这个对象使用完毕后会立刻删除掉。
var str1 = "abc"; var str2 = new String("abc");//string的包装类型 //简单数据类型无法绑定属性和方法。 str1.aaa = 111; str2.aaa = 222; console.log(str1.aaa);//undefiend console.log(str2.aaa);//222 console.log(str1.length); console.log(str1.indexOf("b"));//隐式转换,调用属性和方法的时候, // 简单类型转换成了包装类型,使用完毕方法或者属性后又返回原来的简单数据类型。
str1和str2的本质:

基本包装类型
基本包装类型:Boolean、Number、String什么是包装对象
当使用原始类型的值(string、number、boolean),在调用对应属性和方法的时候,内部会自动转成对应的对象。隐式创建的这个对象,就成为包装对象。包装对象的特点
隐式创建对象后,可以调用对应的属性和方法,使用后,立马销毁,所以不能给原始类型的值添加属性和方法引用类型和基本包装类型的主要区别就是对象的生存期
使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。
给索引查字符:charAt()
str.charAt(索引值) 可以根据索引取出str中的某一个字符str[索引] html5添加的,ie9以上支持
charCodeAt(索引) 返回是这个字符的ASCII码,不常用
//Unicode编码: 97-65-48 == aA0 var str = "0Aabcdefg"; console.log(str.charAt(2));//s 给索引查字符 console.log(str[2]);//s 给索引查字符(h5新增,IE9以上支持) console.log(str.charCodeAt(0));//给索引查字符所对应的Unicode编码
给字符查索引indexOf()
str.indexOf();str.indexLastOf();从字符串尾部开始寻找
//给字符查索引,查不到返回值为-1; //如果字符特别长,包含完整的字符那么就是首字母的索引值。如果不全,返回值为-1; var str = "abcfdef"; console.log(str.indexOf("b"));//1 console.log(str.lastIndexOf("f"));//6 console.log(str.lastIndexOf("x"));//-1 console.log(str.lastIndexOf("abd"));//-1
字符串的连接:concat()
var str1 = "123"; var str2 = "abc"; var str3 = str1.concat(str2);//123abc
字符串切割成数组 split()
1:2:3:4:5".split(":"); // 返回 ["1","2","3","4","5"] "|a|b|c|".split("|"); // 返回 ["", "a", "b", "c", ""] "hello".split(""); // 返回 ["h","e","l","l","o"] "hello".split("", 3); // 返回 ["h","e","l"]
String.split()执行的操作与Array.join()执行的操作相反。
字符串的截取:slice/substr/substring
1、string.slice(start, end)
slice:四种用法;两个参数都是索引值 var str3 = "123abc"; //单个参数 console.log(str3.slice(3));//abc //两个参数 console.log(str3.slice(2,4));//3a //负数 console.log(str3.slice(-4));//3abc //前大后小:返回值为""; console.log(str3.slice(3,0));
2、string.substr(start, length)
//substr(): (索引值,长度); //一个参数 console.log(str3.substr(3));//截取到最后 //两个参数 console.log(str3.substr(2,4));//截取的个数 //负数 console.log(str3.substr(-4));//截取后几个 //前大后小不研究:因为他是按照个数截取
3、substring:类比于slice方法。
//单个参数 console.log(str3.substring(3)); //两个参数 console.log(str3.substring(2,4)); //负数 console.log(str3.substring(-4));//获取所有 //前大后小:返回值为“”; console.log(str3.substring(3,0));//智能调换
字符串的编码和解码
var url = "http://www.itcast.cn?username='nihao'&password=123123"; //编码和解码 console.log(url); var str1 = encodeURIComponent(url); console.log(str1);//BOM的一个方法; var str2 = decodeURIComponent(str1); console.log(str2);
有关正则表达式的3个方法:search/replace/trim
1、replace(); 根据正则替换内容
var str = "Today ,today ,today "; //如果不用正则表达式,只把第一个today换成tomorrow console.log(str.replace("today","tomorrow"));//Today ,tomorrow ,today //g是指全局替换(global) console.log(str.replace(/today/g,"tomorrow"));//Today ,tomorrow ,tomorrow //i是指忽略大小写 console.log(str.replace(/today/ig,"tomorrow"));//tomorrow ,tomorrow ,tomorrow console.log("nihao2016".replace(/[\d]/g,""));
2、 trim(); 去除前后的空格
var str =" haha haha "; console.log(str.trim());//haha haha
利用replace(),也可以实现trim()方法的功能:
//思路:找到前后的空白,然后用replace函数,把空白替换为""; var str =" haha haha "; function trimStr(string) { return string.replace(/(^\s+)|(\s+$)/g, ""); } console.log(trimStr(str));//haha haha
3、search(); 给字符查索引
var str = "abcdefg"; console.log(str.search(/abc/));
字符串的特殊方法
localeCompare():包含
//localeCompare:包含 // s1 > s2 返回正数,一般是1(包含) // s1 == s2 返回0(相等) // s1 < s2 返回负数,一般是-1(不包含) var str = "abcdefg"; console.log(str.localeCompare("abc"));//1 console.log(str.localeCompare("abcdefg"));//0 console.log(str.localeCompare("xyz"));//-1 console.log(str.localeCompare("abcdefgakdslfjhadkg"));//-1 console.log(str.localeCompare("ac"));//-1
根据Unicode编码转换字符串
var str = String.fromCharCode(48,65,97); console.log(str);
基本包装类型补充:
基本包装类型,boolean类型和number数值类型的基本包装对象我们一般不使用,因为是对象形式,会对使用造成影响。比如boolean,如果是对象,在判断布尔的时候, 永远是true。
相关文章推荐
- JS基础之String包装类型的属性和方法
- js基础-基本包装类型(Boolean、Number、String )★☆
- 判断js中数据类型方法总结
- Java中的单例、StringBuffer方法、基本数据类型的包装类以及权限修饰符(基础详解)
- jedis操作string数据类型方法总结
- Java基础学习总结(122)——Java八种基本数据类型的包装类及其装箱拆箱详解
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
- js五种数据类型,以及相关的基础方法
- 【语言基础】c++ 基本数据类型与字节数组(string,char [] )之间的转化方法
- H5基础知识第八课时(JS数据类型和输出方法)
- 写一个方法clone; 实现js五种数据类型(string, number, boolean, array, object)的复制
- JS基础---typeof及数据类型总结
- 3.6 java基础总结①包装类,基本数据类型,String相互间转换
- jedis操作string数据类型方法总结
- js数据类型检测方法(总结)
- java反射之包装类和基础数据类型的坑(分享个反射工具方法)
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
- 判断js中各种数据的类型方法之 typeof() 和 Object.prototype.toString() 详解
- Cstring与char、string、int等数据类型的相互转换方法
- Cstring转char、string、int等数据类型的方法