内置对象
String Number Boolean ——包装类型
Array Date Math RegExp
Error
Function Object
Global(全局对象)在浏览器中被window代替
String
多个字符组成的只读数组
vs 数组 相同:下标 .length for遍历 slice()
不同: 两者类型不同,API 不同
API: 所有String API都无权修改原字符串,只能返回新字符串
大小写转换
str.toUpperCase()
str.toLowerCase()
获取指定位置字符
str.charAt(i) =>str[i]
转Unicode
码 var unicode=str.charCodeAt(i)
Unicode
码转回来 String.fromCharCode(uncode)
选取子字符串
str.slice(starti,endi+1)
str.substring(starti,endi+1)
str.substr(starti.n) => str.substring(starti,starti+n)
查找关键词
-
查找一个固定的关键词出现的位置
str.indexOf(‘关键词’,fromi) //返回从fromi位置开始查找下一个关键词的位置
str.lastIndexOf(‘关键词’) //专门查找最后一个关键词的位置
固定套路:查找所有关键词出现的位置
var i=-1; while((i=str.indexOf('关键词',i+1))!=-1){ i //本次找到的关键词位置 }
-
判断是否包含符合规定的关键词
str.search(/正则表达式/i) i表示不区分大小写,返回第一个出现关键词的位置
-
获取所有关键词的内容
str.match(/正则表达式/ig) g表示返回所有,默认是返回第一个位置的内容
-
既获取内容又获取位置
var arr=reg.exec(str) 在str中找下一个关键词的内容和位置
返回值:arr[0] :本次查找内容
arr[index]:本次查找位置
替换
str=str.replace(/reg/ig,‘新值’) 新值为"" :删除
切割
str.split(‘分隔符’) str.split(/正则表达式/) 返回数组
Array
转字符串
String(arr) 将arr中的每个元素转为字符串,用逗号链接
arr.join(‘连接符’)
拼接和选取(不改变原数组)
拼接:var newArr=arr1.concat(值1,值2,arr2…) 打散数组arr2再拼接
选取:arr.slice(starti,endi+1)
修改数组(改变原数组)
arr.splice(starti,n) 删除starti开始的n个元素,返回删除的数组
arr.splice(starti,0,值1,值2) 在starti位置插入
arr.splice(starti,n,值1,值2) 先删除后插入
翻转
arr.reverse();
排序
arr.sort() 将每个元素转为字符串,在升序排列
arr.sort((a,b)=>b-a) 降序
出入栈
开头出入栈:入:arr.unshift(值) 出:arr.shift()
结尾出入栈:入:arr.push(值) 出:arr.pop()
RegExp
验证
reg.test(str) 正则前加^ 后加$
查找关键词
reg.exec(str)
Math
取整
-
上取整 Math.ceil(num)
-
下取整
Math.floor(num) 只能对纯数字内容 — 若传入的不是数字,先Number()
vs parseInt(str) 先去掉字符串后非数字字符再省略小数部分 — 若传入的不是字符串,先String();
vs parseFloat(str) 只去非数字字符
-
四舍五入取整
Math.round(num) 返回number
vs num.toFixed(d) 返回string
乘方和开平方
乘方 Math.pow(底数,幂)
开平方 Math.sqrt(num)
最大值和最小值
Math.max/min(值1,值2,…)
问题:不支持查找一个数组中的最大值/最小值
解决:Math,max/min(…arr) 或 Math.max/min.apply(null,arr)
随机数
Math.random() 0~1
在min~max之间生成随机整数 parseInt(Math.random()*(max-min+1)+min)
Date
创建
-
自动获取客户端当前系统时间
var now = new Date()
-
创建日期对象保存自定义时间
var date=new Date(“yyyy-MM-dd hh:mm:ss”)
-
可用一个毫秒数转化为时间
var date=new Date(ms)
-
复制一个日期对象
var date2=new Date(date1)
原因:日期的计算都是直接修改原日期对象,需要复制一个副本进行计算
API
单位:
FullYear Month(+1) Date Day
Hours Minutes Seconds Milliseconds
每个单位都有一对getXXX / setXXX方法,get获取,set设置
Error
try{
可能发生错误的正确代码
}catch(err){
一旦发生错误,就自动执行的错误处理代码
}finally{
无论是否出错都必须执行的代码
}
错误类型
SyntaxError 语法错误
ReferenceError 引用错误 要用的变量没找到
RangeError 范围错误 参数超范围
TypeError 类型错误 错误的使用了(),[]等。
URIError URI错误
EvalError Eval错误