内置对象
global对象
在浏览器中,全局对象是window+global,单就js而言,global对象才是全局对象
- 属性:Infinity,NaN
- 方法:escape,unescape,eval,isNaN,isFinite,parseFloat,parseInt
math对象
所有的内置对象都是作为global对象的属性,不然无法通过原型链访问
- 属性:PI,LN2,LOG2E,……
- 方法:ceil,round,floor,random,……
本地对象
在使用时需要使用new关键字创建的对象
Object对象(文中图片作为参考,那是我并没有吃透的地方)
- 方法:
- assign(a, …b),把任意多个对象的可枚举属性拷贝给a,然后返回a
- create(obj,attr)创建一个拥有指定原型和若干个指定属性的对象。
let a=Object.create(null,{
name:{
value:'lsq'
},
age:{
value:23
}
})
console.log(a)
-
defineProperties(obj, props):为obj对象新增或修改属性
-
defineProperties(obj, props):为obj对象新增或修改多个属性
let a={name:'lsq'} Object.defineProperty(a,'friends',{value:'qd'}) Object.defineProperties(a,{ name:{value:'aaa'}, bbb:{value:'bbb'}}) console.log(a)
Function对象
- 方法:apply,call,bind
Array对象
不改变原数组,返回新数组或值的方法:
-
concat,连接两个或多个数组
-
indexOf,搜索数组中的元素并返回所在的位置
-
lastIndexOf,从后往前搜索数组中的元素并返回所在位置
-
isArray,判断是否是数组对象
-
includes,判断数组是否包含一个元素
-
Join,把数组所有元素用字符串分开,转换为字符串
-
toString,数组转换为字符串并返回结果
-
slice,复制数组的片段,slice(0)复制该数组
-
valueOf,返回数组对象的原始值,就是返回该数组对象
-
find,返回符合条件的元素,只返回第一个
-
findIndex,返回符合条件元素的索引,只返回第一个
改变原数组的方法:
-
pop,删除数组最后一个元素返回删除的元素
-
push,向数组末尾添加一个或多个元素
-
shift,删除并返回数组的第一个元素
-
unshift,向数组开头添加一个或多个元素
-
splice,三个参数,开始位,删除项数,添加的元素,灵活控制
-
reverse,反转数组元素顺序
-
sort,升序排列数组
sort排序的时候是按照字符编码排序,所以说sort是给字符串排序的,如果想给数字排序就需要传入排序的比较函数
let a=[123,28,13,29,9]
a.sort()
console.log(a)//[123, 13, 28, 29, 9]
a.sort(function(a,b){
if (a < b) return -1
else if (a > b) return 1
else return 0
})
console.log(a)//[9, 13, 28, 29, 123]
-
fill,用固定值填充数组
-
reduce,将数组减少为一个值
reduce,接收两个参数,一是一个函数,二是传递给这个函数的初始值(这个初始值在使用的时候总觉得很鸡肋也没有用到过),这个函数可以有四个参数,前两个必须的参数是初始值与当前元素,可选的是当前索引和当前元素所属的数组对象。
reduce函数还有一种遍历的感觉在里面,内部实现的时候应当是用到for循环了
let a=[1,2,3,4]
let c= a.reduce(function(a,b){
return a+b
})
console.log(c)//10
//相当于
let a=[1,2,3,4]
let b=0
for(let i=0;i<a.length;i++){
b+=a[i]
}
console.log(b)//10
数组的迭代方法:
-
every(f),数组每个值都符合条件则返回true
-
Some(f),数组有值符合条件则返回true
-
Filter(f),返回所有符合条件的值组成的数组
-
Map(f),返回各项运行函数后返回值组成的数组
-
forEach(f),与for循环类似,占用内存少,无返回值
数组的其他方法:
- Array.of(),将参数中所有值作为元素组成数组
- Array.from(),将类数组对象或可迭代对象转化为数组
- flat,嵌套数组转一维数组
数组的遍历方法:
-
entries,遍历键值对
-
keys,遍历键名
-
values,遍历键值
arr=[1,2,3] for(let key of arr.keys()){ console.log(key)//0,1,2 } for(let value of arr.values()){ console.log(value)//1,2,3 } for(let[key,value] of arr.entries()){ console.log(key,value)//0 1,1 2,2 3 }
String对象
方法:
-
indexOf,查找字符串第一次出现的下标,没找到返回-1
-
lastIndexOf,查找字符串最后一次出现的下标,没找到返回-1
-
Trim,去除字符串首尾空格
-
toUpperCase,转大写
-
toLowerCase,转小写
-
concat,字符串拼接
-
slice,接收两个参数begin,end,截取begin-end间的字符,包括begin不包括end,begin不能大于end,参数为负值时会判断为length-该参数
-
substr,两个参数,begin,num,从begin开始截取num个字符
-
substring,与slice相似,不同在于当参数为负数时会忽略负号,begin大于end时会自动翻转参数
-
split,会将字符串拆分成由字符串组成的数组,返回数组,参数有两,第一个是必选,字符串或正则表达式,从该参数指定地方分割字符串,第二个可选,指定返回的数组的最大长度。
-
replace('a','b'),将字符串中第一个a转换为b,返回替换后的结果,如果需要全部替换可以用正则实现
-
charAt,返回在指定索引位置的字符
-
includes,是否包含
-
endsWith,是否以指定字符串或字符结尾
-
startWith,是否以指定字符串或字符开头
-
repeat,复制字符串指定次数并连接到一起返回
Boolean对象
布尔值的0表示false,1表示true
Number对象
方法:
- toFixed,数字转换为字符串,保留指定位数的小数
- isFinite,判断指定参数是否为无穷大
- toString,数字转换为字符串
- toPrecision,数字格式化为指定长度
Date对象
方法:
- Date(),返回当日的日期和时间。
- getDate(),从Date对象返回一个月中的某一天(1 ~ 31)。
- getDay(),从Date对象返回一周中的某一天(0 ~ 6)。
- getMonth(),从Date对象返回月份(0 ~ 11)。
- getFullYear(),从Date对象以四位数字返回年份。
- getHours(),返回Date对象的小时(0 ~ 23)。
- getMinutes(),返回Date对象的分钟(0 ~ 59)。
- getSeconds(),返回Date对象的秒数(0 ~ 59)。
- getMilliseconds(),返回Date对象的毫秒(0 ~ 999)。
- getTime(),返回1970年1月1日至今的毫秒数。
- getTimezoneOffset(),返回本地时间与格林威治标准时间(GMT)的分钟差。
- getUTCDate()根据世界时从Date对象返回月中的一天(1 ~ 31)。
- parse(),返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
- setDate(),设置Date对象中月的某一天(1 ~ 31)。
- setMonth(),设置Date对象中月份(0 ~ 11)。
- setFullYear(),设置Date对象中的年份(四位数字)。
- setHours(),设置Date对象中的小时(0 ~ 23)。
- setMinutes(),设置Date对象中的分钟(0 ~ 59)。
- setSeconds(),设置Date对象中的秒钟(0 ~ 59)。
- setMilliseconds(),设置Date对象中的毫秒(0 ~ 999)。
- setTime()以毫秒设置Date对象。
- toString(),把Date对象转换为字符串。
- toTimeString(),把Date对象的时间部分转换为字符串。
- toDateString(),把Date对象的日期部分转换为字符串。
- toLocaleString(),根据本地时间格式,把Date对象转换为字符串。
- toLocaleTimeString(),根据本地时间格式,把Date对象的时间部分转换为字符串。
- toLocaleDateString(),根据本地时间格式,把Date对象的日期部分转换为字符串。
RegExp正则对象
RegExp 对象方法
方法:
-
compile,编译正则表达式
-
exec,检索字符串中指定的值。返回找到的值,并确定其位置。
-
test,检索字符串中指定的值。返回true或false。
支持正则表达式的 String 对象的方法
方法:
-
search,检索与正则表达式相匹配的值。
-
match,找到一个或多个正则表达式的匹配。
-
replace,替换与正则表达式匹配的子串。
-
split,把字符串分割为字符串数组。
Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError,错误对象
-
Error是基类型,其他错误类型继承该类型,该类型错误少见如果有也是浏览器抛出,主要用于开发人员自定义错误
-
EvalError, 使用eval()函数时抛出的异常
-
RangeError, 数值超出相应范围
-
ReferenceError,查询所有嵌套的作用域都找不到该变量 抛出该错误
-
TypeError 对一个变量的值做不合理的操作时抛出该错误
ReferenceError是跟作用域判别失败有关 TypeError是作用域判别成功后对结果非法操作或者不合理
-
SyntaxError,语法错误抛出
-
URLError,错误地使用全局URI处理功能时抛出
宿主对象
浏览器中window对象以及其下边所有的子对象