随笔 - 23  文章 - 1  评论 - 0  阅读 - 2530

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% 的用例

今天我们就学习这些知识,未完待续哟

posted on   菱蘭  阅读(33)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示