JavaScript數組對象 , 正則對象 , String對象以及自定義對象介紹

1. Array數組對象

數組對象是使用單獨的變量名來存儲一系列的值。

1.1創建一個數組

創建一個數組,有三種方法。

【1】常規方式:

let 數組名 = new Array();

在這里插入圖片描述

【2】簡潔方式: 推薦使用

let 數組名 = new Array(數值1,數值2,...);

在這里插入圖片描述

【3】字面:在js中創建數組使用中括號 推薦使用

let 數組名 = [數值1,數值2,...];

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script type="text/javascript">/*創建數組對象方式一:*/let arr = new Array(10, 1.2, true, '鎖哥');//獲取數據1.2// console.log(arr[1]);//1 表示數組索引//遍歷數組//length 數組數組對象中的屬性,表示數組長度/* for (let i = 0; i < arr.length; i++) {//獲取數組數據let x = arr[i];console.log(x);}*///采用方式一即上述方式定義數組 let arr = new Array(10, 1.2, true, '鎖哥');注意:如果只給一個number類型的值,那么此時數值表示數組長度,數組中的數據都是emptylet arr2 = new Array(5);//報錯:Invalid array length 無效的數組長度//采用方式一即上述方式定義數組 let arr = new Array(10, 1.2, true, '鎖哥');注意:如果只給一個number類型的值,// 那么此時數值表示數組長度,要求不能給小數,數組長度不能是小數// let arr3 = new Array(1.2);//采用方式一即上述方式定義數組 let arr = new Array(10, 1.2, true, '鎖哥');注意:如果只給一個非number類型的值,// 那么此時數值表示數組的元素let arr4 = new Array('2');//向arr數組中存false// arr[4] = false;// console.log(arr[4]);//false//js中的數組長度是可變的//向數組中添加數據// arr[7] = 100;//[10, 1.2, true, '鎖哥', empty × 3, 100]console.log(arr.length);//修改前:長度是4//修改數組長度//修改數組長度arr.length = 2;console.log(arr.length);//修改前:長度是2,數據是 10 1.2
</script>
</body>
</html>

小結:

創建數組有三種方式:

1.常規方式:let arr=new Array();

2.簡寫方式:let arr=new Array(數據1,數據2.。。);

? 注意:如果小括號中只有一個number類型的值,表示數組長度,不能是小數。

在這里插入圖片描述

3.字面:let myCars=[數據1,數據2,數據3,…];

在這里插入圖片描述

4.js中的數組定義使用中括號,并且可以存儲不同類型的數據

1.2數組的特點

1.js中的數組可以存儲不同類型的數據

2.js中的數組長度是可變的

在這里插入圖片描述

3.可以使用數組名[索引]操作數組的數據

4.可以使用循環遍歷數組

在這里插入圖片描述

1.3數組中的函數

方法名功能
concat()用于拼接一個或多個數組
reverse()用于數組的反轉
join(separator)用于將整個數組使用分隔符拼接成一個字符串。相當于split()反操作
sort()對數組進行排序,不帶參數是按照編碼值進行排序。
如果不是按照編碼值排序,那么必須指定比較器。
說明:由于字符串都是按照編碼值比較大小的,所以也可以將這個方法這樣理解使用:
如果要對數字進行排序,必須指定比較器。如果是按字符串進行排序,那么就是無參。
pop()刪除并返回數組的最后一個元素
push()添加一個或者多個元素到數組的最后面

【1】代碼演示1

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*數組中的函數:1.concat()用于拼接一個或多個數組2.reverse()用于數組的反轉3.join(separator)用于將整個數組使用分隔符拼接成一個字符串。相當于split()反操作4.pop()刪除并返回數組的最后一個元素5.push()添加一個或者多個元素到數組的最后面*///1.concat()用于拼接一個或多個數組//定義數組let a1=[10,20,30];let a2=[1.1,200,false];let a3=['柳巖',3.14,true];//拼接 [10, 20, 30, 1.1, 200, false, "柳巖", 3.14, true]let a4 = a1.concat(a2,a3);//2.reverse()用于數組的反轉let a5 = a1.reverse();//[30, 20, 10]  此時a1的數據也是[30, 20, 10],a1和a5共享一個數空間//3.join(separator)用于將整個數組使用分隔符拼接成一個字符串。相當于split()反操作let str = a2.join("_");console.log(str);//1.1_200_false//4.pop()刪除并返回數組的最后一個元素console.log(a3.pop());//a3數組的數據是:["柳巖", 3.14]   pop函數返回的是true//5.push()添加一個或者多個元素到數組的最后面a2.push(10,'楊冪');//[1.1, 200, false, 10, "楊冪"]//splice(index,n) 從數組中刪除元素  。index表示從哪個索引刪除,n表示刪除數據個數let arr = [10,20,30,40];arr.splice(1, 2);console.log(arr);</script>
</body>
</html>

【2】代碼演示2:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*6.sort()對數組進行排序,不帶參數是按照編碼值進行排序。如果不是按照編碼值排序,那么必須指定比較器。說明:由于字符串都是按照編碼值比較大小的,所以也可以將這個方法這樣理解使用:如果要對數字進行排序,必須指定比較器。如果是按字符串進行排序,那么就是無參。*///定義數組let a1=['kaja','aha','abclaja','0aa','abcde','ahd','AKAJA'];//使用數組對象中的函數對上述數組進行排序a1.sort();//["0aa", "AKAJA", "abcde", "abclaja", "aha", "ahd", "kaja"] 默認是大小升序,按照編碼值升序排序let a2=[10,108,2,9,99,34,345,200];/*[10, 108, 2, 200, 34, 345, 9, 99] 這里是按照編碼值升序排序*/// a2.sort();/*對上述數組a2進行大小降序排序。分析:這里的需求不是按照編碼值排序了,是按照數值大小排序,那么我們在sort函數的參數位置必須傳遞一個比較器,即匿名函數function(o1,o2){代碼}升序:o1 - o2降序:o2 - o1最后結果:[345, 200, 108, 99, 34, 10, 9, 2] 數值大小降序*/a2.sort(function (o1,o2) {return o2 - o1;});</script>
</body>
</html>

小結:

? 對于排序函數sort如果操作的數組存儲的是字符串,那么就是無參的。按照編碼值升序排序。

? 對于排序函數sort如果操作的數組存儲的是數值,那么就是有參的。按照大小排序。

a2.sort(function (o1,o2) {//降序排序:o2 - o1return o2 - o1;//[456, 123, 100, 30, 9, 8, 2]});

2. RegExp正則對象(重點)

1.創建正則對象

有兩種方式:

【1】方式一

let 正則對象 = new RegExp("正則表達式");

【2】方式二推薦使用

let 正則對象 = /正則表達式/;
說明:這種寫法在雙斜杠中不用書寫引號

注意:

1.方式二在//中直接書寫正則表達式,不用書寫單引號 ^0-9$

2.在js中由于一些瀏覽器兼容問題,書寫正則符號的時候最好加上邊界詞:

以什么開始:^

以什么結尾:$

2.驗證函數

使用RegExp中的test函數,使用格式:

let result = 正則對象.test(被驗證的字符串);說明:如果被驗證的字符串滿足正則表達式則test函數返回true,否則返回false
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*需求:使用正則表達式驗證指定的字符串是否滿足長度是6.*///1.創建正則對象/*1.在正則表達式中任意字符使用符號: .2.在正則中表示出現的次數:{n,m} 最少出現n次,最多出現m次{n,} 最少出現n次{n} 正好出現n次3.   .{6}  表示正好出現6位任意字符4.  ^  表示以什么開始    $ 表示以什么結尾*/// let reg = new RegExp("^.{6}$");let reg =/^.{6}$/;//2.使用正則對象調用test函數驗證字符串let result = reg.test("abj1a9");console.log(result);</script>
</body>
</html>

小結:

1.創建正則表達式對象:

1)let reg = new RegExp('正則表達式');
2)let reg = /正則表達式/;
注意:別忘記在正則表達式中加上邊界詞:^  表示以什么開始$  表示以什么結尾

2.使用正則調用test函數驗證字符串是否滿足正則:

  let result = reg.test(字符串);

3.String對象

在js中string屬于基本類型(原始數據類型),然后js將其包裝成了引用類型(復合數據類型)。

【1】創建String對象方式
1.let txt = new String(“string”); 使用構造方法創建對象 了解
2.let 對象名 = “字符串”; 使用雙引號 理解
3.let 對象名 = ‘字符串’; 使用單引號 掌握
4.let 對象名 = 字符串; 使用反單引號(鍵盤上的波浪線,在esc下面) 掌握 從es6開始的目的是為了簡化字符串的拼接

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*【1】創建String對象方式:1.let txt = new String("string"); 使用構造方法創建對象 了解2.let 對象名 = "字符串"; 使用雙引號 理解3.let 對象名 = '字符串'; 使用單引號 掌握4.let 對象名 = `字符串`; 使用反單引號(鍵盤上的波浪線,在esc下面) 掌握  從es6開始的目的是為了簡化字符串的拼接*///1.let txt = new String("string"); 使用構造方法創建對象 了解let s = new String("柳巖");//s保存地址值console.log(s.toString());//柳巖// 2.let 對象名 = "字符串"; 使用雙引號 理解let s1 = "楊冪";console.log(s1);//楊冪//3.let 對象名 = '字符串'; 使用單引號 掌握let s2 = '趙麗穎';console.log(s2);//趙麗穎// 4.let 對象名 = `字符串`; 使用反單引號(鍵盤上的波浪線,在esc下面) 掌握  從es6開始的目的是為了簡化字符串的拼接let i = 10;let s3 = '哈哈' + i + '呵呵';//+是拼接console.log(s3); //哈哈10呵呵//在反單引號中${獲取數據的變量名}let s4=`嘿嘿${i}嘻嘻`;//es6的新語法console.log(s4);//嘿嘿10嘻嘻</script>
</body>
</html>

小結:

創建String對象方法:

1.雙引號
2.構造方法 了解 let s1=new String("abc");
3.單引號 推薦  let s2='def';
4.反單引號:let s3 = `efg`;注意:使用反單引號主要目的為了方便字符串的拼接,省去了字符串+拼接的麻煩let s3 = `efg`;`${s3}鎖哥` 結果是  efg鎖哥${變量}這種寫法只能書寫在反單引號中,${變量}大括號中的變量不一定是反單引號定義的,可以是單引號定義的

4.自定義對象(重要)

  • 格式
let 對象名稱 = {屬性名稱1:屬性值1,屬性名稱2:屬性值2,...函數名稱:function (形參列表){}...};
  • 代碼實現
<!-- 文檔類型聲明標簽,告知瀏覽器這個頁面采取html版本來顯示頁面 -->
<!DOCTYPE html>
<!-- 告訴瀏覽器這是一個英文網站,本頁面采取英文顯示,單也可以書寫中文 -->
<html lang="en"><head><!-- 必須書寫,告知瀏覽器以UTF-8編碼表編解碼中文,如果不書寫就會亂碼 --><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 標題標簽 --><title>Title</title>
</head>
<body>
<script type="text/javascript">/*自定義對象:************************************很重要let 對象名稱 = {屬性名稱1:屬性值1,屬性名稱2:屬性值2,...函數名稱:function (形參列表){}...};*///自定義對象 person表示對象名let person ={username:"柳巖",age:20,//定義函數eat:function(a){//a=100//在自定義對象的函數中不能直接使用自定義對象中的屬性,否則報錯:selfObjectDemo06.html:32 Uncaught ReferenceError: username is not defined// console.log(username+"干飯人,干飯魂,a="+a);//使用對象person調用屬性名可以獲取屬性值// console.log(person.username+"干飯人,干飯魂,a="+a);//后期經常使用的方式:這里的this表示當前自定義對象personconsole.log(this.username+"干飯人,干飯魂,a="+a);}};//如果在自定義對象外部獲取自定義對象中的屬性值,那么格式:對象名.屬性名// console.log(person.username);//"柳巖"// console.log(person.age);//20//調用自定義對象中的函數:對象名.函數名(實參);person.eat(100);//干飯人,干飯魂,a=100
</script>
</body>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38515.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ubuntu 】使用samba配置共享用戶home目錄和其他具體路徑

目錄 1 安裝samba 2 修改Samba配置文件 3 增加Rose用戶的samba帳號 4 重啟samba 5 測試 1 安裝samba 使用如下命令安裝samba&#xff1a; sudo apt-get updatesudo apt-get install samba openssh-server 2 修改Samba配置文件 sudo cp /etc/samba/smb.conf /etc/samba…

試用筆記之-收錢吧安卓版演示源代碼,收錢吧手機版感受

首先下載&#xff1a; https://download.csdn.net/download/tjsoft/89499105 安卓手機安裝 如果有收錢吧帳號輸入收錢吧帳號和密碼。 如果沒有收錢吧帳號點我的注冊 登錄收錢吧帳號后就可以把手機當成收錢吧POS機用了&#xff0c;還可以掃客服的付款碼哦 源代碼技術交流QQ:42…

Docker安裝MySQL5

Docker安裝MySQL5 前言 MySQL 是一個開源的關系型數據庫管理系統&#xff0c;廣泛用于各種 Web 應用程序的開發和生產環境中。MySQL 5 是 MySQL 數據庫的一個較早版本&#xff0c;雖然不再是最新版本&#xff0c;但仍然被一些項目所使用和支持。 在 Docker 中安裝 MySQL 5 可…

Docker 手冊

幫助命令 docker 命令 --help鏡像命令 docker images (-a所有 &#xff5c; -q只顯示容器的ID) docker search 鏡像名 docker pull 鏡像名&#xff1a;版本號 docker rmi -f ID&#xff5c;鏡像名&#xff1a;版本號 // 刪除本地一個或多個鏡像 docker rmi -f $(docker …

U盤數據恢復實戰指南:原因、方案與預防措施

一、引言&#xff1a;U盤數據恢復概述 在數字化時代&#xff0c;U盤作為一種便攜式存儲設備&#xff0c;廣泛應用于個人和企業中。然而&#xff0c;由于各種原因&#xff0c;U盤數據丟失的問題時有發生。U盤數據恢復技術便是在這種情況下應運而生&#xff0c;它幫助用戶在數據…

TPS61085非同步650kHz,1.2MHz, 18.5V升壓DCDC芯片

1 特點 TPS61085外觀和絲印PMKI 2.3 V 至 6 V 輸入電壓范圍 具有 2.0A 開關電流的 18.5V 升壓轉換器 650kHz/1.2MHz 可選開關頻率 可調軟啟動 熱關斷 欠壓閉鎖 8引腳VSSOP封裝 8引腳TSSOP封裝 2 應用 手持設備 GPS接收器 數碼相機 便攜式應用 DSL調制解調器 PCMCIA卡 TFT LCD…

MySQL之事務特性ACID、并發事務問題、隔離級別

1、事務特性ACID 原子性&#xff1a;事務是不可分割的最小操作單元&#xff0c;要么全部成功&#xff0c;要么全部失敗。一致性&#xff1a;事務完成時&#xff0c;必須使所有數據都保持一致狀態。隔離性&#xff1a;數據庫系統提供的隔離機制&#xff0c;保證事務在不外部并發…

Java并發編程基礎知識點

目錄 Java并發編程基礎知識點1、線程&#xff0c;進程概念及二者的關系進程相關概念線程相關概念進程與線程的關系補充小知識點&#xff1a; 2、線程的狀態Java線程的狀態&#xff1a;Java線程不同狀態之間的切換圖示 3、Java程序中如何創建線程&#xff1f;①、繼承Thread類②…

2024年華為OD機試真題-傳遞悄悄話 -C++-OD統一考試(C卷D卷)

2024年OD統一考試(D卷)完整題庫:華為OD機試2024年最新題庫(Python、JAVA、C++合集) 題目描述: 給定一個二叉樹,每個節點上站著一個人,節點數字表示父節點到該節點傳遞悄悄話需要花費的時間。 初始時,根節點所在位置的人有一個悄悄話想要傳遞給其他人,求二叉樹所有節…

【漏洞復現】用友NC——文件上傳漏洞

聲明&#xff1a;本文檔或演示材料僅供教育和教學目的使用&#xff0c;任何個人或組織使用本文檔中的信息進行非法活動&#xff0c;均與本文檔的作者或發布者無關。 文章目錄 漏洞描述漏洞復現測試工具 漏洞描述 用友NC是由用友公司開發的一套面向大型企業和集團型企業的管理軟…

貴不一定好,申請SSL證書一定要找到合適自己的

SSL&#xff08;Secure Sockets Layer&#xff09;的主要作用是保護網絡中的數據傳輸過程安全可靠。通過使用加密技術&#xff0c;SSL在客戶端和服務器之間建立一條安全通道&#xff0c;確保敏感數據在網絡上傳輸時不易被竊聽、篡改或偽造. 例如&#xff1a;阿里云 目前SSL證…

C語言 | Leetcode C語言題解之第207題課程表

題目&#xff1a; 題解&#xff1a; bool canFinish(int numCourses, int** prerequisites, int prerequisitesSize, int* prerequisitesColSize) {int** edges (int**)malloc(sizeof(int*) * numCourses);for (int i 0; i < numCourses; i) {edges[i] (int*)malloc(0);…

SQL中使用IF語句實現條件判斷

SQL中使用IF語句實現條件判斷 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將深入探討在SQL中如何使用IF語句進行條件判斷。IF語句在SQL中是一種強大…

【Linux】部署NFS服務實現數據共享

&#x1f468;?&#x1f393;博主簡介 &#x1f3c5;CSDN博客專家 ??&#x1f3c5;云計算領域優質創作者 ??&#x1f3c5;華為云開發者社區專家博主 ??&#x1f3c5;阿里云開發者社區專家博主 &#x1f48a;交流社區&#xff1a;運維交流社區 歡迎大家的加入&#xff01…

Python基礎總結之isinstance()

Python基礎總結之isinstance() 在Python中&#xff0c;isinstance() 是一個非常有用的內置函數&#xff0c;用于判斷一個對象是否是一個已知的類型。這個函數在處理繼承和多態時特別有用&#xff0c;因為它會考慮繼承關系。 技術介紹 isinstance() 函數的基本語法如下&#xf…

4-數據提取方法2(xpath和lxml)(6節課學會爬蟲)

4-數據提取方法2&#xff08;xpath和lxml&#xff09;&#xff08;6節課學會爬蟲&#xff09; 1&#xff0c;Xpath語法&#xff1a;&#xff08;1&#xff09;選擇節點&#xff08;標簽&#xff09;&#xff08;2&#xff09;“//”:能從任意節點開始選擇&#xff08;3&#xf…

ArcGIS Pro SDK (七)編輯 7 操作Blob字段

ArcGIS Pro SDK &#xff08;七&#xff09;編輯 7 操作Blob字段 目錄 ArcGIS Pro SDK &#xff08;七&#xff09;編輯 7 操作Blob字段1 使用屬性檢查器讀取和寫入 Blob 字段2 在回調中使用行游標讀取和寫入 Blob 字段 環境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro…

計算機網絡面試TCP篇之TCP三次握手與四次揮手

TCP 三次握手與四次揮手面試題 任 TCP 虐我千百遍&#xff0c;我仍待 TCP 如初戀。 巨巨巨巨長的提綱&#xff0c;發車&#xff01;發車&#xff01; PS&#xff1a;本次文章不涉及 TCP 流量控制、擁塞控制、可靠性傳輸等方面知識&#xff0c;這些知識在這篇&#xff1a; TCP …

第3章:數據結構

樹 對稀疏矩陣的壓縮方法有三種&#xff1a; 1、三元組順序表 2、行邏輯連接的順序表 3、十字鏈表 同義詞才會占用同個位置&#xff0c;從而需要進行多次比較。這些關鍵字的第一個可以不是e的同義詞&#xff0c;可以是排在e之前的關鍵字正好占了那個位置。 Dijkstra算法主要特點…

何處理Java中的ZipException異常?

如何處理Java中的ZipException異常&#xff1f; 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在Java編程中&#xff0c;處理壓縮文件&#xff08;如ZIP文件…