1.字符串的概述
字符串基础数据类型属于值类型,值类型是不可以改变的。字符串的相关方法是不能改变原本的字符串的,以返回一个新的字符串做为对应的特性。字符串也是一个数据结构(存储结构)数据结构名叫做串(字符串一块组成的一个串),那么他就具备增删改查的方法。
2.字符串的声明创建
//第一种直接赋值(常用) var str = '哈哈哈' //单引号和双引号都是字符串 //第二种使用new关键词(重新开辟内存) var str = new string('哈哈哈')
注:new String 和 String 的区别
var str = "asdf"; var str1 = String(str); var str2 = new String(str); console.log(str1 == "asdf");//true 不会开辟新的内存空间,简单转换,转换的值位于栈上面 console.log(str2 === "asdf");//false 会开辟新的内存空间
Es6新增的字符串模板 ``
var number = 10 var str =`您的年纪是${number}岁` console.log(str) //您的年纪是10岁
3.字符串的相关方法(不会改变原本字符串的)
查询
1.indexOf(从前到后)
var str = 'abcdefghkabc'; console.log(str.indexOf('abc'));//结果为0,indexOf会返回第一次找到的下标 (从前到后) console.log(str.indexOf('abc',1));//从下标1开始往后面找,默认是下标0开始
2.lastIndexOf (从后往前)
var str = 'abcdefghkabc'; console.log(str.indexOf('abc'));//结果为9,indexOf会返回第一次找到的下标 (从后到前) console.log(str.indexOf('abc',5));//从下标5开始往前面找,默认从最后一位开始
3.search (从前到后 不支持指定对应的开始位置 支持正则表达式)
var str = 'abcdefghkabc'; console.log(str.search('abc')); //0 //当前这个正则表示查找abc 全局查找g以及不区分大小写i var regx = /abc/gi console.log(str.search(regx)); //0
截取
1.slice
var str = "wodmcs" var str1 = str.slice(1,3) //str.slice(开始的下标,结束的下标)不包含结束下标位置 console.log(str1) //od var str1 = str.slice()//截取全部 console.log(str1);//wodmcs var str1 = str.slice(-1)//从下标length-1截取到末尾 console.log(str1);//s
2.substring
var str = 'shjdf' var str1 = str.substring(1) //substring 必须具备开始位置(不支持负值) 结束位置可以写可以不写 console.log(str1) //hjdf
3.substr
var str = 'shjdf' var str1 = str.substr(1,3) //str.substr(开始位置,截取个数) console.log(str1) //hjd var str1 = str.substr(1) //从下标1截取到结尾 console.log(str1) //shjdf
连接
concat
//连接方法concat 相当 + var str = 'hello' var str1 = str.concat('world') console.log(str1);
返回
1.charAt (根据下标返回字符串)
// 字符串跟数组一样可以直接通过下标来访问对应的字符 var str = 'hello' console.log(str[0]); //h //根据下标获取对应的字符串 console.log(str.charAt(0));//h
2.charCodeAt (根据下标返回对应字符串的ascii码)
//根据下标获取对应的字符串的ascii码 找不到返回NaN console.log(str.charCodeAt(0));//返回h的ascii码 104
支持正则的方法 (4个)
1.search 查找下标
var str = 'abcAbcsi' var index = str.search(/abc/gi) //search 查找 根据正则查找对应的下标 找不到返回-1(类似于indexOf)(number) console.log(index);//0
2.split 分割
var str = 'abc,Abc,Ab' var splitArray = str.split(/,/gi) //split 分割的方法 将对应的字符串分割成对应的数组 (Array) console.log(splitArray);
3.match 匹配
var str = 'abc,Abc,Ab' //match 匹配的 将匹配的内容(如果没有g没有只匹配第一个填入)填充到对应的数组返回 (Array) var matchArray = str.match(/abc/gi) console.log(matchArray);
4.replace 替换
var str = 'abc,Abc,Ab' var newStr = str.replace(/abc/gi,'hello')//只会替换第一次找到的 (如果对应的正则里面有g那么 全部替换否则只替换第一次找到的) console.log(newStr);//如果没有全局 那么只会替换一次 有的话会全部替换
其他的辅助方法
1.trim 去除前后空格(中间空格去不了)
// trim 去除前后空格 var str = ' a b ' var str1 = str.trim() console.log(str1);
2.toUpperCase 转大写
var str = 'abcABcd' var str1 = str.toUpperCase()//转大写 console.log(str1); //ABCABCD
3.toLowerCase 转小写
var str = 'abcABcd' var str1 = str.toLowerCase()//转小写 console.log(str1); //abcabcd
4.fromCharCode 静态方法 将ascii码转为字符串(使用类名.对应的方法 调用 使用static进行修饰)
//静态方法 使用对应的类名直接点 使用static进行修饰的 fromCharCode var newStr = String.fromCharCode(97,98,99) //将ascii码变成字符串 console.log(newStr);//abc
重点:
1.字符串是基础值类型,不能被更改。
2.字符串的length属性是只读的,不能更改。
3.字符串的方法都是以返回一个新的字符串为基准,原本字符串不会受影响。
4.支持正则的方法4个 search ,match ,split,replace
5.字符串的截取方法 slice ,substring ,substr
6.indexOf根据对应的字符串获取对应的下标 ,charAt是根据下标来获取对应的字符串。
7.字符串转大写的方法 toUpperCase,toLowerCase
Math类
概述:Math类是用于数学运算的。他里面的属性及相关的方法都是静态的(方便调用)。
属性 property:
PI 圆周率Π E 科学计数法
方法 function:
Math.max 最大值 Math.min 最小值 Math.pow 幂次方 Math.sqrt 开平方 Math.ceil 向上取整 * Math.floor 向下取整 * Math.round 四舍五入 * Math.random 取随机数(0-1随机数 包含0不包含1)* Math.abs 取绝对值