1.简介:
对于字符串,在现实生活中,字符串无处不在。包括我们说的每一句话,例如,baidu.com,甚至写的文字也算是字符串的一种。在计算机的世界中,对于不同的编程语言,前端和后端的数据交互,字符串都是一种通用的传输,就好像json。
2.创建:
对象形式创建:
var str = new String(\'baidu.com\');
字面量形式创建:
var str = \'helloWorld\';
3.检测:
使用typeof检测:
var str1 = \'baidcu.com\'; var str2 = new String(\'helloWorld\'); console.log(typeof str1,typeof str2);//string Object
注:我们知道,只要对象才有方法,通过字面量创建的字符串不是一个对象,当调用其方法时,系统会自动转化为Object类型,所以才可以使用字符串的方法。
4.字符串提供的API(我们可以自己猜一下可能会有的API,对字符串我们可能需要大小写转换,去空白,截断,查找....):
1)通过length属性获取字符串长度:
var str = \'helloWorld\'; console.log(str.length); //10
2)大小写转换:
console.log(\'hello\'.toUpperCase()); //HELLO console.log(\'HELLO\'.toLowerCase()); //hello
3)移除空格(在用户输入密码时,空格应该移除):
console.log(\' passwd \'.length); //11 console.log(\' passwd \'.trim().length); //6 console.log(\' passwd \'.trimLeft().length); //8 console.log(\' passwd \'.trimRight().length); //9
4)获取单个字符串:
//通过charAt()函数: console.log(\'hello\'.charAt(4)); //o
//通过数字索引: console.log(\'hello\'[3]);
5)查找字符串:
//通过indexOf()从开始查找,找不到返回-1(以为索引不可能为负数): //lastIndexOf()从后面向前找 console.log(\'hello\'.indexOf(\'he\')); //0 console.log(\'hello\'.indexOf(\'k\')); //-1 console.log(\'hello\'.indexOf(\'he\',1));//-1 //search() 方法用于检索字符串中指定的子字符串,也可以使用正则表达式搜索 console.log(\'baidu.com\'.search(\'com\')); //6 console.log(\'baidu.com\'.search(/\.com/i)); //5 //includes 字符串中是否包含指定的值,第二个参数指查找开始位置,返回的是布尔值: console.log(\'baidu.com\'.includes(\'com\')); //true
6)截断字符串(对于某些字符串,我们可能只需要重要的部分,因此需要截断):
//使用slice(),substr,subString()都可以截断字符串 //第一个参数都是从什么位置开始 //slice(),subString()为结束位置,substr()为需要截取的数量 var params = \'user:admin\'; console.log(params.slice(5,10)); //admin console.log(params.substr(5,2)); //ad console.log(params.substring(5,8));//adm
7)替换字符串
//使用replace()函数可以替换字符串,不改变原字符串 var str = \'baidu.com\'; var str1 = str.replace(\'baidu\',\'google\') console.log(str,str1); //baidu.com google.com
8)重复生成:
//使用repeat()重复生成字符 var phoneNum = \'18165082368\'; function fun(phoneNum) { return phoneNum.slice(0,-3) + \'*\'.repeat(3); } console.log(fun(phoneNum)); //18165082***
9)类型转换(重要):
转为字符串:
//1.隐式转换,通过拼串: var str = 99 + \'\'; console.log(typeof str); //2.调用构造函数String(): var str = 99; var b = String(str); console.log(typeof str,typeof b); //Number,String //3.js中大部分类型都是对象,可以使用类方法 toString转化为字符串 var str = 99; var b = str.toString(); console.log(typeof str,typeof b); //Number,String
字符串转其他:
//split()方法,将一个字符串转为数组 var str = \'1,2,3\'; var a = str.split(\',\'); console.log(typeof str,typeof a); //String Object //使用点语法 var str = \'123\'; var a = [...str]; console.log(a,str); //[\'1\',\'2\',\'3\'] 123