字符串相关介绍:
创建方式:
var str = new String("abc"); --object
var str=“abc”; --string
字符串属于类数组 :
类数组的概念:也叫伪数组,在js中有一些对象它也拥有length属性,且拥有为非负整数的属性(索引),但是它又不能调用数组的方法,这种对象被称为类数组对象。
字符串是类数组;arguments是类数组
为什么基本类型具有属性和方法 :
包装对象的概念:当要操作字符串、数字、布尔值的属性时,js会在内存中自动创建一个对象,用来对内置类型进行包装,使内置类型暂时拥有普通对象功能,可以存取属性,一旦引用结束,包装对象自动销毁。
字符串的方法:
charAt(num): 返回对应字符串索引的内容
var str = '我很喜欢javascript';
console.log(str.charAt(2)); //喜
console.log(str[2]); //喜
charCodeAt(num): 返回对应的字符串索引的内容的unicode编码
var str = '我很喜欢javascript';
console.log(str.charCodeAt(7)); //97
console.log(str.charCodeAt(2)); //21916
console.log(str.charCodeAt(3)); //27426
String.fromCharCode(unicode编码);将参数中的unicode编码返回成对应的字符串的内容, 多个编码用逗号分隔。
console.log(String.fromCharCode(25105, 24456, 21916, 27426, 20320)); //我很喜欢你
trim() 创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果
var str = ' abc de ffff ';
console.log(str.trim()); //abc de ffff
replace() 替换,这个方法接受两个参数:第一个参数可以是一个 RegExp 对象或者一个字符串,第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串
var str = 'hellohello';
console.log(str.replace('e', '*')); //h*llohello
split()根据分隔符、将字符串拆分成数组。把一个字符串分割成一个数组。通过传递一个参数来分割。第一个参数就是分割字符串的符号。如果参数为空,也是数组,只有一个数据。第二个参数用来限制数组的长度,多余的切掉
var str = 'abcdefg';
console.log(str.split()); // ["abcdefg"]
console.log(str.split('d')); // ["abc", "efg"]
console.log(str.split('')); //["a", "b", "c", "d", "e", "f", "g"]
console.log(str.split('', 5)); // ["a", "b", "c", "d", "e"]
// 测试: abcdefg变成gfedcba
var str1 = 'abcdefg'
console.log(str1.split('').reverse().join('')); //gfedcba
substring():用来截取字符串的内容
var str = 'javascript';
//没有参数全部截取。相当于从第0位开始截取。
console.log(str.substring()); //javascript
//一个参数代表截取从参数的位置往后的字符串。
console.log(str.substring(2)); //vascript
//两个参数代表截取两个参数之间的字符串,包括第一个参数的位置。
console.log(str.substring(2, 6)); //vasc
//两个参数的时候,当第二个参数小于第一个参数,自动交换位置。
console.log(str.substring(6, 2)); //vasc
//如果是负数,当做0来处理。
console.log(str.substring(1, -5)); //j
console.log(str.substring(0, 1)); //j
console.log(str.substring(1, 0)); //j
substr(start, length); 用来截取字符串的内容
//start:开始的索引,如果为负数,从后往前进行数,包括开始的索引。
//length:截取的长度。
var str = 'javascript';
console.log(str.substr(2, 5)); //vascr
console.log(str.substr(-7, 5)); //ascri
console.log(str.substr(-2, 5)); //pt
大小写字母转换的方法:toUpperCase()转换成大写;toLowerCase()转换成小写
var str = 'HELLO';
console.log(str.toLowerCase()); //hello
console.log('javascript'.toUpperCase()); //JAVASCRIPT
字符串与数组公用方法:
1.slice() 截取字符串的方法, 如果为负数, 从后往前进行截取, 包括开始的索引。
var str = 'javascriptjava';
console.log(str.slice(2, -3)); //vascriptj
2.indexOf和lastIndexOf(): 区别是如果第二个参数为负数, 数组是从后往前找, 字符串是当做0处理。
var str = 'javascriptjava';
console.log(str.indexOf('a')); //1
console.log(str.indexOf('a', 2)); //3
console.log(str.indexOf('a', -5)); //1
console.log(str.indexOf('a', 0)); //1
3.concat(): 和数组方法使用一致。
var str = 'javascriptjava';
console.log(str.concat(str)); //javascriptjavajavascriptjava