Javascript中Object、Array、String

Object

在JavaScript中,Object 类型是一种复杂的数据类型,用于存储键值对集合。它提供了多种方法来操作这些键值对,以及执行其他常见的操作。这里,我列出了一些 Object 类型的常见方法或特性,它们在日常编程中非常有用:

  1. 属性访问
    • 点符号(.:如果属性名是一个有效的标识符(例如,没有空格、不是以数字开头等),你可以使用点符号来访问属性。obj.propertyName
    • 方括号([]:如果属性名不是有效的标识符(比如包含空格或特殊字符),或者你想动态地访问属性,你可以使用方括号。obj['propertyName'] 或 obj[variableName]
  2. Object.keys()

    • 返回一个由给定对象的自身属性的键组成的数组,数组中属性键的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致(两者的主要区别是 for...in 循环还会枚举其原型链上的属性)。
  3. Object.values()
    • 返回一个由给定对象自身的所有可枚举属性值的数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(但只包含对象自身的属性)。
  4. Object.entries()
    • 返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(同样只考虑对象自身的属性)。
  5. Object.assign()

    • 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。注意,它只复制自有属性,不会复制继承的或不可枚举的属性。
  6. Object.create()

    • 创建一个新对象,使用现有的对象来提供新创建的对象的 __proto__(即原型)。
  7. Object.getPrototypeOf()
    • 返回指定对象的原型(即内部 [[Prototype]] 属性的值)。
  8. Object.hasOwnProperty()
    • 用来判断一个对象是否有某个属性,不管该属性是自身的还是继承的。它只判断属性是否存在于对象本身,不判断其是否存在于原型链中。
  9. Object.is()

    • 判断两个值是否严格相等。它与严格相等运算符(===)的区别在于处理 NaN 和 +0 与 -0 的方式不同
  10. Object.freeze()
    • 冻结一个对象。一个被冻结的对象不能被修改;即不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的值,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改该对象原型的指向。返回冻结后的对象。
  11. Object.defineProperty()

    • 在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。这个方法允许精确添加或修改对象的属性。
  12. Object.getOwnPropertyDescriptor()
    • 返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接附加在对象上的属性,而不是继承自其原型的属性)。

这些是 Object 类型的一些基本且常用的方法或特性,它们在处理JavaScript对象时非常有用。

 Array

在JavaScript中,Array 类型提供了许多内置的方法来操作数组,包括添加、删除、遍历、搜索、排序等。以下是一些常见的 Array 方法:

  1. push()
    • 向数组的末尾添加一个或多个元素,并返回新的数组长度。
  2. pop()
    • 删除并返回数组的最后一个元素。
  3. shift()
    • 删除并返回数组的第一个元素。
  4. unshift()
    • 在数组的开头添加一个或多个元素,并返回新的数组长度。
  5. concat()
    • 用于合并两个或多个数组。此方法不会改变现有的数组,而是返回一个新数组
  6. slice()
    • 返回一个浅拷贝的新数组对象,这个对象是一个由 begin 到 end(不包括 end)选择的数组的一部分浅拷贝。原始数组不会被修改。
  7. splice()

    • 通过删除现有元素和/或添加新元素来更改一个数组的内容。这个方法会改变原数组
  8. join()
    • 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
  9. sort()
    • 对数组的元素进行排序,并返回数组。排序不一定是稳定的。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的。
  10. reverse()
    • 颠倒数组中元素的顺序。
  11. indexOf()
    • 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
  12. lastIndexOf()
    • 返回指定值在数组中的最后一个索引,如果不存在则返回-1。从数组的后面向前查找。
  13. forEach()

    • 对数组的每个元素执行一次提供的函数。
  14. map()

    • 创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
  15. filter()

    • 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
  16. reduce()
    • 对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
  17. reduceRight()
    • 它的工作原理类似于 reduce(),不同的是它是从数组的末尾开始向前遍历。
  18. find()
    • 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
  19. findIndex()
    • 返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
  20. flat()
    • 按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回
  21. flatMap()
    • 首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 flat 方法的结合非常相似,但 flatMap 通常在性能上更优。

String 

在JavaScript中,String 类型提供了许多内置的方法来操作字符串,这些方法可以用于字符串的查找、替换、截取、转换等操作。以下是一些常见的 String 方法:

  1. length
    • 属性,用于获取字符串的长度。
  2. charAt(index)
    • 方法,返回在指定位置的字符。索引(index)从0开始计算。
  3. charCodeAt(index)
    • 方法,返回在指定的位置的字符的Unicode编码。索引(index)从0开始计算。
  4. concat(...strings)

    • 方法,用于连接两个或多个字符串,并返回连接后的新字符串。
  5. fromCharCode(...codes)
    • 静态方法,接受一个或多个Unicode编码值,然后返回一个字符串。注意,这是String对象的一个静态方法,因此应该通过String.fromCharCode()来调用。
  6. indexOf(searchValue, fromIndex)
    • 方法,返回指定值在字符串中首次出现的位置索引。如果未找到,则返回-1。fromIndex是可选的,表示开始搜索的位置。
  7. lastIndexOf(searchValue, fromIndex)
    • 方法,返回指定值在字符串中最后一次出现的位置索引,从字符串的末尾向前搜索。fromIndex是可选的,表示开始搜索的位置。
  8. match(regexp)

    • 方法,在字符串内检索与正则表达式相匹配的结果。如果没有找到匹配项,则返回null
  9. replace(searchValue/regexp, replaceValue)

    • 方法,在字符串中查找匹配的子串或正则表达式,并用新的子串替换它们。默认情况下,只替换第一个匹配项。如果replaceValue是一个函数,则对每个匹配项执行该函数,其返回值将用作替换文本。
  10. search(regexp)
    • 方法,检索与正则表达式相匹配的值。返回第一个匹配项的索引;如果没有找到匹配项,则返回-1。注意,search()方法不执行全局匹配,它总是从字符串的开始进行检索。
  11. slice(start, end)

    • 方法,提取字符串的一部分,并返回一个新字符串(被提取的部分)。start是开始提取的位置(包含),end是结束提取的位置(不包含)。如果省略end,则提取到字符串的末尾。
  12. split(separator, limit)

    • 方法,通过分隔符将字符串分割成子字符串数组。separator是分隔符,limit是可选的,用于限制返回数组的长度。
  13. substr(start, length)
    • 方法(注意:在较新的JavaScript版本中可能不推荐使用),从字符串中提取从start位置开始的指定数量的字符。如果省略length,则提取到字符串的末尾。
  14. substring(start, end)
    • 方法,提取字符串中介于两个指定下标之间的字符。返回的新字符串包括start处的字符,但不包括end处的字符。如果省略end,则提取到字符串的末尾。
  15. toLowerCase()
    • 方法,将字符串中的所有大写字符转换为小写字符,并返回新的字符串。
  16. toUpperCase()
    • 方法,将字符串中的所有小写字符转换为大写字符,并返回新的字符串。
  17. trim()
    • 方法,从字符串的两端删除空白字符。空白字符包括空格、制表符、换行符等。trim()方法不会改变原始字符串,而是返回一个新的字符串。
  18. includes(searchString, position)
    • 方法,判断字符串是否包含指定的子字符串,根据情况可指定开始搜索的位置。返回布尔值。
  19. startsWith(searchString, position)
    • 方法,判断字符串是否以指定的子字符串开头,根据情况可指定开始搜索的位置。返回布尔值。
  20. endsWith(searchString, position)
    • 方法,判断字符串是否以指定的子字符串结尾,根据情况可指定开始搜索的位置(但endsWith方法中的position参数实际上是限定在position之前的字符中搜索,而不包括position本身的字符)。返回布尔值。
  21. replaceAll(searchValue, replaceValue)
    • 方法(ES2021引入),在字符串中查找所有匹配的子串,并替换它们。与replace()方法不同,replaceAll()会替换所有匹配项,而不仅仅是第一个。

以上是一些JavaScript中String类型的常见方法,它们在处理字符串时非常有用。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开思通智网-科技快报20240704:全球首个,人工智能之城,AI填报志愿

【本周新进展】 天大开发全球首个可开源片上脑机接口智能交互系统 https://tech.opensnn.com/chip/article/2826792 AI系统绘出“多彩”大脑布线图 https://news.sciencenet.cn/htmlnews/2024/7/525678.shtm 北京亦庄将建全域人工智能之城 https://tech.opensnn.com/chip/arti…

基于深度学习的文本框检测

基于深度学习的文本框检测(Text Box Detection)是一项重要的计算机视觉任务,旨在从图像中自动检测和定位文本区域。它在光学字符识别(OCR)、自动文档处理、交通标志识别等领域具有广泛的应用。以下是关于这一领域的系统…

快递物流运输中的锁控系统优缺点探讨

一、物流运输中锁控系统的重要性 1.1 保障货物安全 在物流运输过程中,货物安全是物流公司最为关注的问题之一。传统机械锁虽然在一定程度上提供了安全保障,但其缺点逐渐暴露,成为物流运输中的一个痛点。 易被破解:传统机械锁通…

drawio打开不显示,不在当前屏幕的解决方案

如果把drawio拖在外接显示器,关机前没有拖回主屏幕,那么下次打开它时如果用的不是原来那个显示器,它就无法正常显示。在任务栏上能看到有它,但是就是显示不出来。 经过卸载和其他的方式没有解决,就想到了,应…

基于MCU平台的HMI开发的性能优化与实战(下)

继上篇《基于MCU平台的HMI开发的性能优化与实战(上)》深入探讨了提升MCU平台HMI开发效率和应用性能的策略后,本文将专注于NXP i.MX RT1170 MCU平台的仪表盘开发实践。我们将重点介绍Qt for MCUs的优化技巧,展示如何通过实际案例应…

Qt:7.QWidget属性介绍(cursor属性-光标形状、font属性-控件文本样式、tooltip属性-控件提示信息)

目录 一、cursor属性-光标形状: 1.1cursor属性介绍: 1.2获取当前光标形状——cursor(): 1.3 设置光标的形状——setCursor(): 1.4 设置自定义图片为光标: 二、font属性-控件文本样式: 2.1font属性介绍…

antd-Table-可视化数据滚动

代码 // 使用方式 const Index () > {useScroll();return <Table />; }import { useEffect, useRef, useState } from react;export const useScroll (() > {let timer;function start() {const [isScroll, setIsScroll] useState(true);const scrollTopRef u…

代码随想录算法训练营Day59|110.字符串接龙、105.有向图的完全可达性、106.岛屿的周长

字符串接龙 110. 字符串接龙 (kamacoder.com) 主要参考代码随想录 代码随想录 (programmercarl.com) 目标&#xff1a;得到从beginStr转变为endStr所需的最少步数 过程&#xff1a;每次变换一个字母&#xff0c;每次变换的结果要在strList中。 对于一个图来说&#xff0c;…

excel批量修改一列单价的金额并保留1位小数

1.打开表格&#xff0c;要把单价金额变成现在的两倍&#xff0c;数据如下&#xff1a; 2.把单价这一列粘贴到一个新的sheet页面&#xff0c;在B2单元格输入公式&#xff1a;A2*2 然后按enter回车键,这时候吧鼠标放到B2单元格右下角&#xff0c;会出现一个黑色的小加号&#xf…

重大更新来袭!!《植物大战僵尸杂交版V2.1+修改器+融合版》

大家好&#xff01;每个软件更新总是令人兴奋不已。前段时间介绍的《植物大战僵尸》系列以其独特的策略玩法和丰富的植物角色&#xff0c;赢得了很多玩家的喜爱。而在今天&#xff0c;这款经典游戏全网最新版本——《植物大战僵尸&#xff1a;杂交版V2.1》正式推出&#xff0c;…

docker 环境下failed to start lsb故障解决

背景&#xff1a;从深信服超融合迁移虚拟机到VMWARE集群后&#xff0c;迁移后的虚拟机 centos 7 运行systemctl start network ,报错 Restarting network (via systemctl): Job for network.service failed. See systemctl status network.service and journalctl -xn for d…

Redis组建哨兵模式

主172.17.60.131 从172.17.60.130、172.17.60.129 redis部署 [rootlocalhost app]# tar xf redis-6.2.9.tar.gz [rootlocalhost app]# cd redis-6.2.9/ [rootlocalhost redis-6.2.9]# make MALLOClibc [rootlocalhost redis-6.2.9]# make install PREFIX/usr/local/redis…

Docker 中查看及修改 Redis 容器密码的实用指南

在使用 Docker 部署 Redis 容器时&#xff0c;有时我们需要查看或修改 Redis 的密码。本文将详细介绍如何在 Docker 中查看和修改 Redis 容器的密码&#xff0c;帮助你更好地管理和维护你的 Redis 实例。 一、查看 Redis 容器密码 通常在启动 Redis 容器时&#xff0c;我们会…

构建LangChain应用程序的示例代码:56、如何实现一个多智能体模拟,其中没有固定的发言顺序。智能体自行决定谁来发言,通过竞价机制实现

多智能体分散式发言人选择 示例展示了如何实现一个多智能体模拟,其中没有固定的发言顺序。智能体自行决定谁来发言,通过竞价机制实现。 我们将在下面的示例中展示一场虚构的总统辩论来演示这一过程。 导入LangChain相关模块 from typing import Callable, Listimport tenac…

正向代理反向代理

nginx的正向代理和反向代理: 正向代理以及缓存配置: 代理:客户端不再是直接访问服务端&#xff0c;通过代理服务器访问服务端。 正向代理&#xff1a;面向客户端&#xff0c;通过代理服务器的ip地址访问目标服务端 服务端只知道代理服务器的地址&#xff0c;真正的客户端ip可以…

【MySQL系列】隐式转换

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ctfshow web入门 nodejs

web334 有个文件下载之后改后缀为zip加压就可以得到两个文件 一个文件类似于index.php 还有一个就是登录密码登录成功就有flag username:ctfshow password:123456因为 return name!CTFSHOW && item.username name.toUpperCase() && item.password passwor…

产科管理系统 专科电子病历系统源码,前后端分离架构,多家医院产科广泛运用,系统稳定,功能齐全

产科管理系统 专科电子病历系统源码&#xff0c;前后端分离架构&#xff0c;多家医院产科广泛运用&#xff0c;系统稳定&#xff0c;功能齐全 产科管理系统&#xff0c;特别是产科信息管理系统&#xff08;Obstetrical Information Management System&#xff0c;简称OIMS&…

智能井盖监测系统:守护城市安全的新防线

​ ​​在快速发展的现代都市中&#xff0c;井盖作为连接地上与地下世界的“隐形门”&#xff0c;其安全状态直接关系到市民的生命财产安全。随着物联网、大数据及人工智能技术的飞速发展&#xff0c;智能井盖监测系统的出现为解决传统井盖管理难题提供了创新方案&#xff0…

【算法笔记自学】入门篇(2)——算法初步

4.1排序 自己写的题解 #include <stdio.h> #include <stdlib.h>void selectSort(int A[], int n) {for(int i 0; i < n - 1; i) { // 修正索引范围int k i;for(int j i 1; j < n; j) { // 修正索引范围if(A[j] < A[k]) {k j;}}if (k ! i) { // 仅在…