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.pswp.cn/diannao/41318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41318.shtml
英文地址,請注明出處:http://en.pswp.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) { // 僅在…