JavaScript基础三
在前面我们学习了很多JavaScript的记住知识,但是JavaScript的知识是非常多的,这次让我们继续来学习JavaScript的几个知识点吧
对象
对象是具有一些特殊特性的关联数组。
它们存储属性(键值对),其中:
-
属性的键必须是字符串或者 symbol(通常是字符串)。
-
值可以是任何类型。
我们可以用下面的方法访问属性:
-
点符号: obj.property。
-
方括号 obj["property"],方括号允许从变量中获取键,例如 obj[varWithKey]。
其他操作:
-
删除属性:delete obj.prop。
-
检查是否存在给定键的属性:"key" in obj。
-
遍历对象:for(let key in obj) 循环。
我们在这一章学习的叫做“普通对象(plain object)”,或者就叫对象。
JavaScript 中还有很多其他类型的对象:
-
Array 用于存储有序数据集合,
-
Date 用于存储时间日期,
-
Error 用于存储错误信息。
对象方法,"this"
-
存储在对象属性中的函数被称为“方法”。
-
方法允许对象进行像 object.doSomething() 这样的“操作”。
-
方法可以将对象引用为 this。
-
this 的值是在程序运行时得到的。
-
一个函数在声明时,可能就使用了 this,但是这个 this 只有在函数被调用时才会有值。
-
可以在对象之间复制函数。
-
以“方法”的语法调用函数时:object.method(),调用过程中的 this 值是 object。
请注意箭头函数有些特别:它们没有 this。在箭头函数内部访问到的 this 都是从外部获取的。
日期和时间
-
在 JavaScript 中,日期和时间使用 Date 对象来表示。我们不能只创建日期,或者只创建时间,Date 对象总是同时创建两者。
-
月份从 0 开始计数(对,一月是 0)。
-
一周中的某一天 getDay() 同样从 0 开始计算(0 代表星期日)。
-
当设置了超出范围的组件时,Date 会进行自我校准。这一点对于日/月/小时的加减很有用。
-
日期可以相减,得到的是以毫秒表示的两者的差值。因为当 Date 被转换为数字时,Date 对象会被转换为时间戳。
-
使用 Date.now() 可以更快地获取当前时间的时间戳。
和其他系统不同,JavaScript 中时间戳以毫秒为单位,而不是秒。
数组
数组是一种特殊的对象,适用于存储和管理有序的数据项。
-
声明:
// 方括号 (常见用法) let arr = [item1, item2...];
// new Array (极其少见) let arr = new Array(item1, item2...);
调用 new Array(number) 会创建一个给定长度的数组,但不含有任何项。
-
length 属性是数组的长度,准确地说,它是数组最后一个数字索引值加一。它由数组方法自动调整。
-
如果我们手动缩短 length,那么数组就会被截断。
我们可以通过下列操作以双端队列的方式使用数组:
-
push(...items) 在末端添加 items 项。
-
pop() 从末端移除并返回该元素。
-
shift() 从首端移除并返回该元素。
-
unshift(...items) 从首端添加 items 项。
遍历数组的元素:
for (let i=0; i<arr.length; i++) — 运行得最快,可兼容旧版本浏览器。
数组方法
数组方法备忘单:
-
添加/删除元素:
-
push(...items) —— 向尾端添加元素,
-
pop() —— 从尾端提取一个元素,
-
shift() —— 从首端提取一个元素,
-
unshift(...items) —— 向首端添加元素,
-
splice(pos, deleteCount, ...items) —— 从 pos 开始删除 deleteCount 个元素,并插入 items。
-
slice(start, end) —— 创建一个新数组,将从索引 start 到索引 end(但不包括 end)的元素复制进去。
-
concat(...items) —— 返回一个新数组:复制当前数组的所有元素,并向其中添加 items。如果 items 中的任意一项是一个数组,那么就取其元素。
-
-
搜索元素:
-
indexOf/lastIndexOf(item, pos) —— 从索引 pos 开始搜索 item,搜索到则返回该项的索引,否则返回 -1。
-
includes(value) —— 如果数组有 value,则返回 true,否则返回 false。
-
find/filter(func) —— 通过 func 过滤元素,返回使 func 返回 true 的第一个值/所有值。
-
findIndex 和 find 类似,但返回索引而不是值。
-
-
遍历元素:
- forEach(func) —— 对每个元素都调用 func,不返回任何内容。
-
转换数组:
-
map(func) —— 根据对每个元素调用 func 的结果创建一个新数组。
-
sort(func) —— 对数组进行原位(in-place)排序,然后返回它。
-
reverse() —— 原位(in-place)反转数组,然后返回它。
-
split/join —— 将字符串转换为数组并返回。
-
reduce/reduceRight(func, initial) —— 通过对每个元素调用 func 计算数组上的单个值,并在调用之间传递中间结果。
-
-
其他:
- Array.isArray(arr) 检查 arr 是否是一个数组。
请注意,sort,reverse 和 splice 方法修改的是数组本身。
这些是最常用的方法,它们覆盖 99% 的用例
今天我们就学习这些知识,未完待续哟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!