注意:原生类型的数据本身是没有属性、方法的。但是 有的原始类型(如 string),当他 调用属性或方法时,JS引擎会先对原始类型数据进行包装(即隐式的转换为相应的对象) https://www.cnblogs.com/websir/p/5192095.html
一、数字(整型不会隐式转换成对象,需要自己手动通过 new Number(123) 转换成 Number对象;浮点型数据 会 隐式转化)http://www.runoob.com/jsref/jsref-obj-number.html
属性:
constructor、prototype ---- 【这两个属性所有的对象都有,下面的就不写了】
方法:(es6及以上的方法属性,字体设为 青色)
toFixed【转换为有小数点的字符串】、toString
不常用:sFinite、toExponential(x)【转化为 指数 计算法】、toPrecision(x)【转化为 类似指数计算法的指定长度数据】、valueOf()、isInteger【判断给定的参数是否为整数】、isSafeInteger【判断参数值是否是一个"安全整数"】
二、字符串(会隐式转换成对象) :http://www.runoob.com/jsref/jsref-obj-string.html
属性:
length
方法:
indexOf、lastIndexOf、replace【某些字符替换另一些字符】、toUpperCase【大小写转换】、toLowerCase、split【转为数组】、charAt【指定位置的字符】、charCodeAt【指定位置字符的Unicode码】、includes【是否包含指定字符串】、match【匹配】、
search【类似indexOf,查找匹配字符串的下标】、slice【截取指定下标位置的字符串】、substr【截取指定长度的字符串】、substring【这个功能和slice类似】、trim【去除字符串两边的空白】、
不常用:concat【字符串拼接,一般用+号】、fromCharCode、lastIndexOf、repeat、startsWith、toLocaleLowerCase、toLocaleUpperCase、valueOf、toString
三、正则表达式 http://www.runoob.com/jsref/jsref-obj-regexp.html
属性:
global【是否设置g修饰符】、ignoreCase、multiline、lastIndex【规定下次匹配的起始位置】、source【返回正则表达式的匹配模式】
方法:
exec【检索字符串中指定的值 的 位置】、test【检索字符串中指定的值】
不常用:toString
四、数组 http://www.runoob.com/jsref/jsref-obj-array.html
属性:
length
方法:
concat【连接两个或更多的数组】、forEach【数组每个元素都执行一次回调函数】、includes【判断一个数组是否包含一个指定的值】、indexOf【搜索数组中的元素,并返回它所在的位置】、
lastIndexOf【和indexOf功能一样,不过是从后面找的】、isArray【判断对象是否为数组】、join【把数组的所有元素放入一个字符串,默认逗号分隔】、map【通过根据指定函数,返回处理后的数组】、
pop【删除数组的最后一个元素并返回删除的元素】、push【向数组的末尾添加一个或更多元素,并返回新的长度】、shift【删除并返回数组的第一个元素】、unshift【数组的开头添加一个或更多元素,并返回新的长度】、
reduce【根据指定的函数,将数组元素计算为一个值】、reduceRight【和reduce一样的用法,不过是从右边开始计算】、reverse【反转数组的元素顺序】、slice【选取数组的的一部分,并返回一个新数组】、
some【检测数组元素中是否有元素符合指定条件】、sort【通过指定函数,对数组进行排序】、splice【从数组中添加或删除元素】、
不常用:copyWithin、entries、every【检测数组元素的每个元素是否都符合条件】、fill【使用固定值来填充数组】、filter【检测数值元素,并返回符合函数条件所有元素的数组。】、valueOf【返回数组对象的原始值】
find【返回符合传入函数 条件的数组元素】、findIndex【返回符合传入函数条件的数组元素索引】、keys、toString【把数组转换为字符串,并返回结果。是以逗号分隔的。一般使用join方法实现】
es6 新增的方法:
构造函数的方法: from【类数组转化为数组】、filter【过滤数组,返回一个满足要求的数组】
五、Date 对象 (实践对象,通过new Date() 创建,里面参数不同,创建不同格式的时间) http://www.runoob.com/jsref/jsref-obj-date.html 或 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date(推荐,MDN)
创建 Date 对象的4中方式:new Date() 的参数不同,最后创建的时间对象是一样的,只是时间不同而已。 https://blog.csdn.net/yue31313/article/details/79609661
new Date() // Thu Mar 21 2019 21:41:25 GMT+0800 (中国标准时间) 相当于传入 当前时间点 作为参数获取的时间对象
new Date(2017,06,06) // Thu Jul 06 2017 00:00:00 GMT+0800 (中国标准时间) 过去某个时间的时间对象 (以整数作为参数,有几种模式) new Date(“2017/06/06”) // Tue Jun 06 2017 00:00:00 GMT+0800 (中国标准时间) 过去某个时间的时间对象 (以字符串作为参数,有几种模式) new Date(毫秒数) // Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间) 从1970年1月1日开始算起的毫秒数 的对应的时间对象
注:所有主流浏览器都支持的格式为: var dateTime = new Date("2017/09/12 13:42:00"); 即参数为 yyyy/MM/dd hh:mm:ss 格式 字符串
方法:
getFullYear【获取对象中的年,4位数返回】、getMonth【获取对象中的月,获取的月份要加1】、getDate【获取 Data对象中的 几号】、getDay【获取 Data对象中的 星期几】、getHours【获取对象中的 时】、getMinutes【获取对象中的分】、getSeconds【获取对象的秒】、
getMilliseconds【获取对象中的 毫秒】、getTime【获取时间戳】
toDateString【将 Date对象的部分(日期),以字符串(Fri Mar 22 2019)输出】、toString【将 Date对象,转换为字符串(Fri Mar 22 2019 13:07:00 GMT+0800 (中国标准时间))】、
toTimeString【将 Date对象的部分(时间),以字符串(13:11:54 GMT+0800 (中国标准时间))输出】、
toLocaleDateString【根据本地时间格式,将 Date对象的 年/月/日 输出】、toLocaleTimeString【根据本地时间格式,把Date对象的 时:分:秒 输出】、toLocaleString【根据本地时间格式,把Date对象的 年月日 时分秒 输出】
不常用:getUTCDate【根据世界时从 Date 对象返回月中的一天 (1 ~ 31)】、toISOString【ISO标准时间格式,字符串】、toJSON【ISO标准时间格式,以 JSON 数据格式返回日期字符串】、getTimezoneOffset【与标准时间的差,以分为单位】、
setFullYear【设置时间对象中的年】、setMonth()、setDate【设置时间对象中 几号】、setHours()、setMinutes()、setSeconds()、setMilliseconds()、setTime【以毫秒设置Date对象】、valueOf【返回 Date 对象的原始值,即一个时间戳】
构造函数的方法(非时间对象):parse【获取某个时间到1970年的时间戳】(即转化为时间戳,参数可以是时间字符串,也可以是时间对象)
注意:1、时间对象是可以直接比较大小的,如 new Date('2018-8-8 17:35:00')>new Date('2018-8-8 19:20:11') // true。
2、时间对象 一旦参与运算,就会自动中转化为时间戳。所以上面的时间可以进行比较。 如
+new Date() // 输出 1575438671452
六、Math 对象 (不用创建,本身就是实例对象) http://www.runoob.com/jsref/jsref-obj-math.html
属性:
PI【圆周率】、E【算术常量 e】 其它几个基本不用,这里不提
方法:(一般数值是作为方法传进去的)
ceil【对数进行上舍入】、floor【对数进行下舍入】、max(x,y,z,...,n)【返回 x,y,z,...,n 中的最高值】、min【返回最低值】、pow(x,y)【 x 的 y 次幂】、random【0~1随机数】、round【四舍五人】、
不常用:abs、三角函数、exp(x)、log(x)、sqrt(x)
七、Error 对象 http://www.runoob.com/jsref/jsref-obj-error.html
属性: Error 对象现有属性,没有方法
name【设置或返回一个错误名】、message【设置或返回一个错误信息】
八、全局方法: http://www.runoob.com/jsref/jsref-obj-global.html (typeof 属于关键字,不是方法)
方法:
decodeURI【解码某个编码的 URI】、encodeURI【把字符串编码为 URI】、isNaN【检查某个值是否是数字,不区分数据类型】、Number【转换为数字,转不了的 返回 NaN】、
decodeURIComponent【解码一个编码的 URI 组件,比decodeURI编码的字符更多】、encodeURIComponent【同理】、
parseFloat【字符串转变为一个浮点数,转不了的 返回NaN】、parseInt【字符串变成10进制的整型,任意进制的数据都可以转化】、String【转换为字符串】
不常用:escape【对字符串进行编码】、unescape【对由 escape编码的字符串进行解码】、eval【把字符串作为脚本来执行】、isFinite
字符串(URL)编码 方法: 参考 https://www.cnblogs.com/wfblog/p/10582944.html
九、 函数对象:
属性:
es6的属性:name【返回定义时的函数名】、
十、FormData 对象 https://developer.mozilla.org/zh-CN/docs/Web/API/FormData
方法:
append【追加新的属性值】、delete【删除一个键值对】、get【返回与给定键关联的第一个值】、getAll【返回与给定键关联的所有值的数组】、
set【设置属性值,如果有就覆盖掉】、has【是否包含某些键】、
十一、
es6 中各种方法请参考:https://www.runoob.com/w3cnote/es6-tutorial.html
九、Symbol (是原始数据类型): let sy = Symbol("KK"); (个人理解:Symbol数据,可让两个一样的字符串,表达的是两个不同的名称,即 Symbol() != Symbol())
用法: 由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。(感觉没什么用,虽然使用Symbol 不会出现重名覆盖的问题,但是)
1、Symbol 是原始数据类型,所以 sy 没有属性、方法。
2、Symbol 有两个全局方法: Symbol.for()【全局搜索 Symbol 中是否有该字符对应的 Symbol 值,有九返回Symbol 值】、 Symbol.keyFor()【返回一个已登记的 Symbol 类型值的 key】
十、Map(映射)对象: (map对象 类似 object对象,但是键名可以是任意类型的数据。字典型数据上常用,字典名可以是任意数据) https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map
属性:
size【键值对的数量】、constructor【对象原型】
方法:
set【设值】、get【取值】、has【是否有值】、forEach【Map的迭代】、clear【清除对象中的元素】、delete【移除某个键值对】、 其他的用法参考链接
特殊用法:for...of【Map的迭代】、Map 与 Array的转换
十一、Set(集合)对象:( set对象 类似 数组,本质是一个集合,set对象的键是数字,不能指定键的名称,目前 不能通过键获取值,需要遍历实现) https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set
属性:
size【set对象的值的个数】、constructor【对象原型】
方法:
add【设值】、has【是否有值】、forEach【Set的迭代】、clear【清除对象中的元素】、delete【移除某个元素】、 其他的用法参考链接
特殊用法:利用set对象的储存值的唯一性,可以实现 数组去重、并集、交集、差集 等功能
十二、Promise 对象(注意,Promise只是一个对象 不是方法,参数是一个回调函数,创建对象时立即执行):
如果要实现 调用某个函数后 变成一个 Promise 对象,只要这个函数 return 出来一个promise 对象就可以了。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
function ajax(URL) { return new Promise(function (resolve, reject) { // return 一个 promise对象 var req = new XMLHttpRequest(); req.open('GET', URL, true); req.onload = function () { if (req.status === 200) { resolve(req.responseText); // pending 状态 变成 fulfilled(成功) } else { reject(new Error(req.statusText)); // pending 状态 变成 rejected(失败) } }; req.onerror = function () { reject(new Error(req.statusText)); }; req.send(); }); }
方法:
Promise 实例的方法: then、cath
Promise 构造器的方法: Promise.resolve【将现有对象转为Promise对象】、Promise.reject【将现有对象转为Promise对象】