一、字符串的创建 两种方式
1.字面量 引号之间的就是字符串
var str = "dfdafd";
console.log(str);//dfdafd
2.内置构造函数创建方式;
var str = new String("abc");
console.log(typeof str);//object
console.log(str);//String {"abc"}
二、包装对象的概念 (重点)
var str = "abcd";
// js系统内部会把str 包装成一个对象
function fn(str,type){
var newstr = new String(str); //系统会自动把字符串包装成对象,就可以使用对象里的split方法
// newstr变成对象(包装对象)
return newstr.split(type); // 使用对象里的方法
// 把包装对象在销毁掉
}
var res = fn(str,"");
console.log(res);//(4) ["a", "b", "c", "d"]
var str = "abcd";
var str = new String("abcd"); //内置构造函数创建字符串
console.log(typeof str);//object
var arr = str.split("");
console.log(arr);//(4) ["a", "b", "c", "d"]
总结: .语法在js里属于 对象 的获取值的方式。万物皆对象。 后台系统会通过自己的构造函数来创建自己的一个临时对象,因为创建的只是一个临时对象,写的属性和方法只存在于临时对象上,引用完后随即销毁。
三.对象的split 方法 :可以根据指定的字符把字符串分成数组;(类比数组的join方法)
//第一种:通过"-"分割成数组
//var str="a-b-c-d";
//var arr=str.split("-");
//console.log(arr);//(4) ["a", "b", "c", "d"]
//第二种:通过""分割成数组
var str = "abcd";
var arr = str.split("");//通过spli("")分割将字符串成数组
console.log(arr);//(4) ["a", "b", "c", "d"]
var newStr = arr.join("");//通过数组方法join("")将数组转化成字符串
console.log(newStr);//abcd
四、数组的扁平化 : 把多维数组转成一维数组
var arr = [1, 2, [3, 4], 5, [6, [7, [8]]], 9];
// 1.把数组转成字符串
// console.log(arr);
var str = arr.toString();
console.log(str);
// 2.把字符串切割成数组
var newarr = str.split(",");
console.log(newarr); // 一维数组
五、字符串的常用方法
1.字符串拼接 通过一个 + 号
2.charAt: 可以根据字符串的索引获取具体的值
语法 :对应索引的字符 = 字符串.charAt(索引);
1)不会改变原本的字符串 2)返还值就是查找到的字符
var str = "abcdefg";
var res = str.charAt(2);
console.log(res);//c
console.log(str[2]);//c
3. charCodeAt :根据索引值返还该字符对应的ASCII编码 (十进制)
var str = "abcde";
var res = str.charCodeAt(0);//a
console.log(res);//97
4.indexOf : 查找指定字符出现的索引位置值,如果没有找到该字符就返还-1
var str = "abcdefg";
var res = str.indexOf("d");
console.log(res);//3
5. substring :字符串截取
语法 :字符串.substring(开始截取索引的位置,结束截取索引的位置) (包前不包后)
(如果只传一个数,说明是以它开始截取位置,截取到末尾;)
1)不会改变原本的字符串 2)返还值是截取到的字符串;
var str="shenshd";
var res=str.substring(3,6);//包前不包后
var newres=str.substring(3);//只传一个数,就是从这个索引位置截取至末尾
console.log(res);//nsh
console.log(newres);//nshd
6.substr :字符串截取
语法 : 字符串.substr(开始截取的索引位置 , 截取字符的长度);
1.不会改变原本字符串 2. 返还值就是截取到的字符
var str="shenshd";
var res=str.substr(2,4);//从索引2开始截取,截取长度为4
console.log(res);//ensh
7.toLowerCase:可以将字母转成小写字母 toLowercase
语法:小写的字符 = 字符串.toLowerCase();
1.不会改变原本字符串 2.返还值是转换好的小写字母
var str = "aAbBcCdD";
var res = str.toLowerCase();
console.log(res);//aabbccdd
8.toUpperCase : 可以将字母转成大写字母 恰好跟toLowerCase相反
引申一个案例
function fn(type){
if(type.toLowerCase()=='man'){
console.log("输入是男的");
}else{
console.log("输入的是其他值");
}
}
fn("man");//这样不管这里输入man/mAN/....都可以实现"输入是男的"
9.replace :把字符串里的指定字符替换成另外的字符
var str = "abcdefg";
var res = str.replace("de", "**");
console.log(res);//abc**fg