JS内置类型
原始类型调用方法
原始类型是简单的值,默认不能调用属性和方法,javascript为了可以使其可以获取属性和调用方法,对其封装了对应的包装类型。
- String
- Number
- Boolean
- Symbol
- BigInt
包装类型的使用过程
- 根据原始值,创建一个原始类型对应的包装类型对象
- 调用对应的属性或者方法,返回一个新的值
- 创建的包装类对象被销毁
- 通常JavaScript引擎会进行很多的优化,它可以跳过创建包装类的过程在内部直接完成属性的获取或者方法的调用。
null、undefined没有任何方法和属性,也不存在包装类型
Math对象
- Math.PI: 圆周率
- Math.floor: 向下取整
- Math.ceil: 向上取整
- Math.round: 四舍五入
- Math.random(): 随机[0,1)
- Math.pow(2,4): 2**4
数组
-
push
-
pop
-
unshift
-
shift
-
arr.at(-1)
-
arr.splice(start,delCount,[item1],[item2]...): 修改原数组
-
length
var name = [2,3,4] console.log(name.length) // 3 name.length = 5 // [ 2, 3, 4, <2 empty items> ] name.length = 2 // [ 2, 3 ]
-
arr.slice(start,end): 不会修改原数组
-
arr.concat(arr1):不会修改原数组
-
arr.join(flag):
-
indexOf(): 返回索引或-1
-
lastIndexOf()
-
includes()
-
find(fn)
-
findIndex(fn)
-
sort(a,b)
-
reverse()
-
froEach(fn):
-
filter(fn)
-
map(fn)
-
reduce(fn):
// 高阶函数,函数作为参数 var stu = find(function(item){ // 依次调用此函数 if (item.id === 101) { return true } }) // forEach原理 function hyForEach(fn) { for (var i=0;i<names.length;i++) { fn(names[i],i,names) } } hyForEach(function(item,index,names){ // do some thing }) // foreach 终极版本 Array.prototype.hyForEach = function(fn){ for (var i=0;i<this.length;i++) { fn(this[i],i,this) } } var arr = [1,2,3,4] arr.hyForEach(function(item,i,arr){ console.log(item,i,arr) }) // reduce var numr = [1,2,3,4,5,6] var res = 0 numr.reduce(function(total,item,i,arr){ return total+item },0)
var name = ['1','e','50']
name[0]
name.at(0) // .at(-1), 从尾部数
name[0] = 'hyf'
name[3] = 'hyf01'
// delete name[0] // [empty,'e','50','hyf01']
name.push('aa','bb') // ['1','e','50','hyf01','aa','bb']
name.pop() // // ['1','e','50','hyf01','aa']
name.unshift('cc','dd') // ['cc','dd','e','50','hyf01','aa','bb']
name.shift() // ['dd','e','50','hyf01','aa','bb']
// 增、删、改
name.splice(0,2) // ['50','hyf01','aa','bb']
name.splice(0,0,'a1','a2') // ['a1','a2','50','hyf01','aa','bb']
name.splice(0,2,'b1','b2') // ['b1','b2' ,'50','hyf01','aa','bb']
Date对象
- RFC 2822标准
new Date() Tue Dec 27 2022 00:37:53 GMT+0800 (中国标准时间)
- ISO 8601标准:
2022-12-26T16:43:16.100Z
- YYYY: 0000-9999
- MM: 01-12
- DD: 01-31
- T:物特殊含义,分割日期和时间,可以省略
- HH: 00-24
- mm:00-59
- ss:秒 00-59
- .sss:毫秒
- Z: 时区
var date1 = new Date()
var date2 = new Date(1000) // 毫秒数
var date3 = new Date('2022-08-09')
var date4 = new Date(2022,08,09,09,09,09)
-
getFullYear()
-
getMonth(): 0-11,需要加1
-
getDate():天 1-31
-
getHours(): 时
-
getMinutes():分
-
getSeconds(): 秒
-
getDay(): 一周中的第几天
-
setXXXX(): 修改时间如setFullYear(2033)
// 获取时间戳 date1.getTime() date1.valueOf() +date1 // 当前时间戳 Date.now()
-
Date.parse
Date.parse(timeString) // 获取时间戳 等同于new Date(timeString).getTime()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具