经过之前的学习我们复习一下数组的方法
var arr = new Array()
arr.push( 'a')//添加到末尾 返回新数组的长度 会 影响原本的数组
arr.pop()//删除末尾 返回对应的删除的元素 会 影响原本的数组
arr.unshift()//添加到开头 返回新数组的长度 会 影响原本的数组
arr.shift()//删除开头 的元素返回对应的删除的元素 会 影响原本的数组
arr.concat(['a'])//将俩个数组进行合并返回一个新数组 不会 影响原本的数组
arr.slice(0,2)//截取下标0到下标2(不包含下标2)返回一个新数组 不会 影响原本的数组
arr.reverse()//反转过来会改变原本的数组 返回值为 原本的 反转 的数组
arr.sort()//排序方法 会改变原本的数组返回值为排序好的 原本数组 默认 按照acsii码
//里面可以指定对应的比较方法
var cpFn = function(a,b){
return a - b //正序 如果返回b-a 就是倒序
}
arr.sort(cpFn)
join连接成字符串
arr.join(', ')//里面的参数为连接的字符默认为,返回值为一个对应的字符串
//返回是删除的元素组成的数组 会 改变 原本的数组
arr.splice(3)//删除方法从下标3删到末尾
arr.splice(3,2)//从下标为3开始删除删除2个元素
arr.splice(3,1,'a') //从下标为3开始删除删一个将a放入下标为3的位置
arr.splice(3,0, 'a')//从下标为3开始删除0个将a插入到下标为3的位置
//根据值找对应的下标如果没有找到返回-1找到返回对应的位置number值
arr.indexOf( 'a' )
arr.indexOf( 'a',2)//从下标2的位置开始找找到第一个匹配的下标
arr.lastIndexOf( 'a')//从后往前找
arr.lastIndexOf( 'a',2)//从下标为3的位置往前找 找到第一个匹配的下标
字符串定义
字符串是JavaScript的一种数据类型用""'括起来的就是字符串
数组是一个容器字符串也是一个容器
字符串是一个容器所以对应的存在增删改查的方法
但是由于字符串是只读增删改的方法是不会修改原本的字符串而是以返回一个新的字符串
字符串操作方法
通过下标查询对应的字符相当于字符串的下标获取
方法一:
var str = 'abc'
console.log(str[0]); //获取a
方法二:
console.log(str.charAt(0)); //str.charAt(0) 等同于 str[0]
获取ascii(charCodeAt)码获取对应下标位置的字符的ascii码
console.log(str.charCodeAt(0)); // 97 获取下标为0位置的字符a的ascii码
console.log(str.charCodeAt(1)); // 98 获取下标为1位置的字符b的ascii码
将ascii反转为字符
100 的字符为d fromCharCode静态方法 利用内置对象.对应的方法 这个方法为内置的静态方法
Math.pow 也是静态方法
fromCharCode 根据ascii转换为对应的字符串 ascii码解码为字符串
var codeStr = String.fromCharCode(100)
console.log(codeStr); //d
indexOf 根据字符串来返回对应的第一次出现的下标 找不到为-1
console.log(str.indexOf('a')); //0
console.log(str.indexOf('a', 1)); //-1
var str1 = 'abca'
console.log(str1.indexOf('a')); // 0
console.log(str1.indexOf('a', 1)); // 3
lastIdexOf 根据字符串返回第一个出现的下标 从后往前找
console.log(str1.lastIndexOf('a')); //3
console.log(str1.lastIndexOf('a', 1)); //0
查询方法(search)
var str = 'cbacbaabcabc'
//查询方法 返回第一个匹配的位置 返回的为当前找到的下标
//如果找不到返回 -1
var n = str.search('abc')
console.log(n); //返回的值为6
var n = str.search('ddd')
console.log(n); // 找不到返回-1
传入为string类型的时候 根据你传入的参数进行对比 返回第一次对比成功的下标 如果没有返回-1
正则表达式(RegExp)
RegExp 正则对象 一般以两个 // 包起来
var reg = /abc/ //正则对象
console.log(str.search(reg)); //返回的是6
什么是正则表达式 正则表达式是一个用于匹配的表达式 它可以用来匹配任意的字符串
RegExp为正则对象 一般以两个// 包起来 里面书写就是对应匹配的正则表达式
/abc/ 匹配 abc的正则
正则表示的常用内容
^表示开头 $表示结束
var reg = /^abc$/
var str = 'cbacbaabcabc'
console.log(str.search(reg)); //查找正则匹配的abc出现第一次出现的位置 -1
var str = 'abc'
console.log(str.search(reg)); //返回0
[]表示元素其中一个 {}表示个数
var str = 'abcefg'
var rex = /[df]/ //[df]表示df中的其中一个
console.log(str.search(rex)); //4
var str = 'abcdef'
var rex = /[ab]{2}/ //表示个数为两个 可以是a 也可以是b 匹配的ab aa bb ba
console.log(str.search(rex)); //0
var str = 'abcdef'
var rex = /[ac]{2}/ //表示个数为两个 可以是a也可以是c
console.log(str.search(rex)); //search搜索的内容必须要连在一起 确保返回的下标是一个
var str = 'acbccd'
var rex = /[ac]{2}/ //匹配的是aa 或 cc 都可以ca
console.log(str.search(rex)); //0
+ 表示一个或者多个
var str = 'bbaacca'
var rex = /[a]+/ //匹配的是a aaa aaaa....
console.log(str.search(rex)); //2
在[]内可以用-表示区间但是必须是正的区间
var rex = /[A-Z]/ //匹配的是A B C D.....Z 26个字母
var rex = /[0-9]/ //匹配的是0 1 2 3 4 .....10 个数值
var rex = /[a-zA-Z1-9]/ //匹配的就是小写的字母大写的字母以及1-9的数字
var rex = /[A-z]/ //正区间 大写字母 小写字母 以ascii码
\w表示字母数字以及下划线 \W相反 除了字母数字及下划线其他都匹配
var rex = /\w/ //匹配字母数字及下划线
var str = '_123456A'
console.log(str.search(rex)); //0
\s 空白符 \S 非空白符
连接 + 来连接
var str1 = "hello"
var str2 ="wor1d"
var str3 = str1+str2
console.log(str3);
concat字符串连接
var str1 = "hello"
var str2 ="wor1d"
console.log(str1.concat(str2));
//将里面的str2添加给str1返回一个新的数组str1没变
//相当于var str3 = str1.concat(str2)打印的是str
截取(substring)
截取(substring)方法返回新的字符串
var str = 'abcdefg'
var newStr = str.substring(1, 3) //开始位置下标 截取到结束位置下标 不包含结束位置
console.log(newStr); //bc
(slice)截取方法
截取对应的字符串组成一个新的字符串返回的是一个新的字符串返回的是一个新的字符串(不包含结束的位置)
sub
返回对应的sub元素包含对应的字符串
subStr 截取方法
根据对应的下标截取指定个数的字符串组成一个新的字符串返回的是一个新的字符申
分割(split)
1.分割(split)方法分割为数组 数组的join连接成字符串
var str = 'a,b,c,d,e'
// 可以根据正则截取 返回值为string类型数组
var strArr = str.split(',') //根据 ,来进行分割
console.log(strArr);
2.不写limit表示所有的全部填入数组 写上去就是填入指定个数的元素到数组(从前往后填入)
var strArr = str.split(',', 2) // limit 表示数量
console.log(strArr);
转大写(toUpperCase) 转小写(toLowerCase) 全部转换
var str = 'ABccddEF'
var str1 = str.toLowerCase(); //转小写
console.log(str1);
var str2 = str.toUpperCase(); //转大写
console.log(str2);
替换(replace)
替换匹配的值 变成另外一个值 返回一个新的字符串
var str = 'ababababa'
var newStr = str.replace('a','c') //将a替换为c 这里只能运行一次 他只会找到第一个a 将a替换为c
//replace只会找到第一个匹配的 将他替换为指定的字符串
console.log(newStr);
//将所有的a替换为c
// 循环遍历 indexOf 找到第一个下标 如果没有找到就返回-1
for(var i=0;i<str.length;i++){
if(str.indexOf('a')!=-1){//里面有a
str = str.replace('a','c') //进行替换将替换的完的数据设置给对应的字符串
}else{//里面没有a 就退出
break
}
}
console.log(str);
//replace也同样支持正则
//参数1为对应的搜索条件(支持string 或者 正则) 参数2为替换的内容
//replace 在 search 的基础上做替换
tostring方法
转为String类型
valueof方法
返回对应的原本的值
去掉前后空格trim()
只能去掉前后空格不能去掉中间空格
console.log(' a'.trim());
Math 数学他有一系列数学计算的函数(静态函数)
静态态属性 Π(PI)
console.log(Math.PI);
科学计术 E
console.log(Math.E);
关于Math的静态方法
求大小max最大值min最小值
console.log(Math.max(1, 2)); //2
console.log(Math.min(1, 2)); //1
关于取整的几个方法
向下取整(Math.floor)
向上取整(Math.ceil)
四舍五入(Math.round)
向下取整3.9 3
console.log(Math.floor(3.9)); //3
向上取整3.1 4
console.log(Math.ceil(3.1)); //4
四舍五入
console.log(Math.round(3.1)); // 3
console.log(Math.round(3.5)); // 4
幂次方(Math.pow)
console.log(Math.pow(1, 10)); //1的10次方 1
console.log(Math.pow(2, 3)); //2的3次方 8
开平方(Math.sqrt)
console.log(Math.sqrt(9)); //3
随机数(Math.random)
console.log(Math.random()); ///随机生成0-1的数 不包含1 包含0 (随机数没有均衡随机)
取绝对值-1 是 1 永远是正数
console.log(Math.abs(-1)); //1