JavaScript---ECMA對象

来源:https://www.cnblogs.com/horror/archive/2018/07/25/9368589.html
-Advertisement-
Play Games

1、對象的概念及分類 1.1 ECMAScript中沒有類,但定義了“對象”,邏輯上等價於其他程式設計語言中的類。 var o = new Object(); 1.2 本地對象(native object)和宿主對象(host object) 由ECMAScript定義的本地對象.獨立於宿主環境的 ...


1、對象的概念及分類

1.1 ECMAScript中沒有類,但定義了“對象”,邏輯上等價於其他程式設計語言中的類。

  var o = new Object();

1.2 本地對象(native object)和宿主對象(host object)

  • 由ECMAScript定義的本地對象.獨立於宿主環境的 ECMAScript 實現提供的對象.(native object)
  • ECMAScript 實現提供的、獨立於宿主環境的所有對象,在 ECMAScript 程式開始執行時出現.這意味著開發者不必明確實例化內置對象,它已被實例化了。ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是本地對象,根據定義,每個內置對象都是本地對象)。(built-in object)
  • 所有非本地對象都是宿主對象(host object),即由 ECMAScript 實現的宿主環境提供的對象。所有 BOM 和 DOM 對象都是宿主對象。

1.3 object 對象

ECMAScript 中的所有對象都由這個對象繼承而來;Object 對象中的所有屬性和方法都會出現在其他對象中

1 ToString() :  返回對象的原始字元串表示。
2 ValueOf()  : 返回最適合該對象的原始值。對於許多對象,該方法返回的值都與 ToString() 的返回值相同。

1.4 內置對象(11種)

  Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp , Object

  在JavaScript中除了nullundefined以外其他的數據類型都被定義成了對象,也可以用創建對象的方法定義變數,StringMathArrayDateRegExp都是JavaScript中重要的內置對象,在JavaScript程式大多數功能都是通過對象實現的

 1 <script language="javascript">
 2 var aa=Number.MAX_VALUE; 
 3 //利用數字對象獲取可表示最大數
 4 var bb=new String("hello JavaScript"); 
 5 //創建字元串對象
 6 var cc=new Date();
 7 //創建日期對象
 8 var dd=new Array("星期一","星期二","星期三","星期四"); 
 9 //數組對象
10 </script>

2、 內置對象介紹

2.1 String對象

2.1.1 創建方式(2種)

自動創建字元串對象:

1 var str1="hello world";
2 alert(str1.length);
3 alert(str1.substr(1,5));

調用字元串的對象屬性或方法時自動創建對象,用完就丟棄

手工創建字元串對象

1 var str1= new String("hello word");
2 alert(str1.length);
3 alert(str1.substr(1,3));

採用new創建字元串對象str1,全局有效

2.1.2 String對象的屬性

1 獲取字元串長度
2 length

var str1="String對象";

var str2="";

alert("str1長度 "+str1.length);

alert("str2長度 "+str2.length);

2.1.3 String對象的方法

String對象的方法(1) —— 格式編排方法

格式編排方法返回值列表

1 書寫格式:
2 
3 String對象提供了一組針對HTML格式的方法,如x.anchor()返回錨定義字元串<a>x</a>4 x.bold()返回粗體表示字元串<b>x</b>,x.sup()返回上標格式字元串<sup>x</sup>5 -----------------------------------------
6 
7 var x="hello";
8 var y="x.italics():"+x.italics();
9 document.write(y.fontsize(10));//<font size="10">x.italics():<i>hello</i></font>
View Code

String對象的方法(2)——  大小寫轉換

1 var str1="AbcdEfgh"; 
2 
3 var str2=str1.toLowerCase();
4 var str3=str1.toUpperCase();
5 alert(str2);
6 //結果為"abcdefgh"
7 alert(str3);
8 //結果為"ABCDEFGH"
View Code

String對象的方法(3) —— 獲取指定字元

 1 書寫格式
 2 
 3 x.charAt(index)
 4 
 5 x.charCodeAt(index)
 6 
 7 使用註解
 8 
 9 x代表字元串對象
10 index代表字元位置
11 index從0開始編號
12 charAt返回index位置的字元
13 charCodeAt返回index位置的Unicode編碼
14 ----------------------
15 var str1="welcome to the world of JS! 苑昊";
16 
17 var str2=str1.charAt(28);
18 var str3=str1.charCodeAt(28);
19 alert(str2);
20 //結果為""
21 alert(str3);
22 //結果為33489
View Code

String對象的方法(4)——  查詢字元串

 1 //書寫格式
 2 //
 3 //x.indexOf(findstr,index)
 4 //x.lastIndexOf(findstr)
 5 //-------------------------------------
 6 var str1="welcome to the world of JS!";
 7 
 8 var str2=str1.indexOf("l");
 9 var str3=str1.lastIndexOf("l");
10 alert(str2);
11 //結果為2
12 alert(str3);
13 //結果為18
14 
15 //-------*********************************************************-------
16 
17 //書寫格式
18 //
19 //x.match(regexp)
20 //
21 //x.search(regexp)
22 //
23 //使用註解
24 //
25 //x代表字元串對象
26 //
27 //regexp代表正則表達式或字元串
28 //
29 //match返回匹配字元串的數組,如果沒有匹配則返回null
30 //
31 //search返回匹配字元串的首字元位置索引
32 //-------------------------------------
33 var str1="welcome to the world of JS!";
34 
35 var str2=str1.match("world");
36 var str3=str1.search("world");
37 alert(str2[0]);
38 //結果為"world"
39 alert(str3);
40 //結果為15
View Code

String對象的方法(5) ——子字元串處理

截取子字元串

 1 //截取子字元串
 2 //
 3 //書寫格式
 4 //
 5 //x.substr(start, length)
 6 //
 7 //x.substring(start, end)
 8 //
 9 //使用註解
10 //
11 //x代表字元串對象
12 //
13 //start表示開始位置
14 //
15 //length表示截取長度
16 //
17 //end是結束位置加1
18 //
19 //第一個字元位置為0
20 
21 
22 var str1="abcdefgh";
23 var str2=str1.substr(2,4);
24 var str3=str1.substring(2,4);
25 alert(str2);
26 //結果為"cdef"
27 alert(str3);
28 //結果為"cd"
29 
30 //-------*********************************************************-------
31 //x.slice(start, end)
32 
33 
34 var str1="abcdefgh";
35 var str2=str1.slice(2,4);
36 var str3=str1.slice(4);
37 var str4=str1.slice(2,-1);
38 var str5=str1.slice(-3,-1);
39 alert(str2);
40 //結果為"cd"
41 alert(str3);
42 //結果為"efgh"
43 alert(str4);
44 //結果為"cdefg"
45 alert(str5);
46 //結果為"fg"
View Code

替換子字元串

1 //x.replace(findstr,tostr)
2 
3 var str1="abcdefgh";
4 var str2=str1.replace("cd","aaa");
5 alert(str2);
6 //結果為"abaaaefgh"
View Code

分割字元串

1 var str1="一,二,三,四,五,六,日"; 
2 
3 var strArray=str1.split(",");
4 
5 alert(strArray[1]);
6 //結果為""
View Code

連接字元串

 1 //y=x.concat(addstr)
 2 //
 3 //使用註解
 4 //
 5 //x代表字元串對象
 6 //addstr為添加字元串
 7 //返回x+addstr字元串
 8     
 9 var str1="abcd"; 
10 var str2=str1.concat("efgh");
11 
12 alert(str2);
13 //結果為"abcdefgh"
View Code

2.2 Array 對象

創建數組對象

 1 Array 對象用於在單個的變數中存儲多個值。
 2 語法:
 3 
 4 創建方式1:
 5 var a=[1,2,3];
 6 
 7 創建方式2:
 8 new Array();     //  創建數組時允許指定元素個數也可以不指定元素個數。
 9 new Array(size);//if 1個參數且為數字,即代表size,not content
10     初始化數組對象:
11     var cnweek=new Array(7);
12         cnweek[0]="星期日";
13         cnweek[1]="星期一";
14         ...
15         cnweek[6]="星期六";
16 
17 new Array(element0, element1, ..., elementn)//也可以直接在建立對象時初始化數組元素,元素類型允許不同
18 
19 var test=new Array(100,"a",true);
View Code

創建二維數組

 1 var cnweek=new Array(7);
 2 for (var i=0;i<=6;i++){
 3     cnweek[i]=new Array(2);
 4 }
 5 cnweek[0][0]="星期日";
 6 cnweek[0][1]="Sunday";
 7 cnweek[1][0]="星期一";
 8 cnweek[1][1]="Monday";
 9 ...
10 cnweek[6][0]="星期六";
11 cnweek[6][1]="Saturday";
View Code

Array對象的屬性

獲取數組元素的個數:length

 1 var cnweek=new Array(7);
 2 cnweek[0]="星期日";
 3 cnweek[1]="星期一";
 4 cnweek[2]="星期二";
 5 cnweek[3]="星期三";
 6 cnweek[4]="星期四";
 7 cnweek[5]="星期五";
 8 cnweek[6]="星期六";
 9 for (var i=0;i<cnweek.length;i++){
10   document.write(cnweek[i]+" | ");
11 }
View Code

Array對象的方法

連接數組-join方法

 1 //書寫格式
 2 //x.join(bystr)
 3 //使用註解
 4 //
 5 //x代表數組對象
 6 //bystr作為連接數組中元素的字元串
 7 //返回連接後的字元串
 8 //與字元串的split功能剛好相反
 9     
10 var arr1=[1, 2, 3, 4, 5, 6, 7];
11 
12 var str1=arr1.join("-");
13 
14 alert(str1);
15 //結果為"1-2-3-4-5-6-7"
View Code

連接數組-concat方法

 1 //連接數組-concat方法
 2 //
 3 //x.concat(value,...)
 4 
 5 
 6 var a = [1,2,3];
 7 var a = new Array(1,2,3);
 8 var b=a.concat(4,5) ;
 9 
10 
11 alert(a.toString());
12 //返回結果為1,2,3
13 alert(b.toString());
14 //返回結果為1,2,3,4,5
View Code

數組排序-reverse sort

 1 //x.reverse()
 2 //x.sort()
 3 
 4 var arr1=[32, 12, 111, 444];
 5 //var arr1=["a","d","f","c"];
 6 
 7 arr1.reverse(); //顛倒數組元素
 8 alert(arr1.toString());
 9 //結果為444,111,12,32
10 
11 arr1.sort();    //排序數組元素
12 alert(arr1.toString());
13 //結果為111,12,32,444
14 
15 //------------------------------
16 arr=[1,5,2,100];
17 
18 //arr.sort();
19 //alert(arr);
20 //如果就想按著數字比較呢?
21 
22 function intSort(a,b){
23     if (a>b){
24         return 1;//-1
25     }
26     else if(a<b){
27         return -1;//1
28     }
29     else {
30         return 0
31     }
32 }
33 
34 arr.sort(intSort);
35 
36 alert(arr);
37 
38 function IntSort(a,b){
39     return a-b;
40 }
View Code

數組切片-slice

 1 //x.slice(start, end)
 2 //
 3 //使用註解
 4 //
 5 //x代表數組對象
 6 //start表示開始位置索引
 7 //end是結束位置下一數組元素索引編號
 8 //第一個數組元素索引為0
 9 //start、end可為負數,-1代表最後一個數組元素
10 //end省略則相當於從start位置截取以後所有數組元素
11 
12 var arr1=['a','b','c','d','e','f','g','h'];
13 var arr2=arr1.slice(2,4);
14 var arr3=arr1.slice(4);
15 var arr4=arr1.slice(2,-1);
16 
17 alert(arr2.toString());
18 //結果為"c,d" 
19 alert(arr3.toString());
20 //結果為"e,f,g,h"
21 alert(arr4.toString());
22 //結果為"c,d,e,f,g"
View Code

刪除子數組

 1 //x. splice(start, deleteCount, value, ...)
 2 //
 3 //使用註解
 4 //
 5 //x代表數組對象
 6 //splice的主要用途是對數組指定位置進行刪除和插入
 7 //start表示開始位置索引
 8 //deleteCount刪除數組元素的個數
 9 //value表示在刪除位置插入的數組元素
10 //value參數可以省略
11 
12 
13 var a = [1,2,3,4,5,6,7,8];
14 a.splice(1,2);
15 //a變為 [1,4,5,6,7,8]
16 alert(a.toString());
17 a.splice(1,1);
18  //a變為[1,5,6,7,8]
19 alert(a.toString());
20 a.splice(1,0,2,3);
21  //a變為[1,2,3,5,6,7,8]
22 alert(a.toString());
View Code

數組的進出棧操作(1)

 1 //push pop這兩個方法模擬的是一個棧操作
 2 
 3 //x.push(value, ...)  壓棧
 4 //x.pop()             彈棧      
 5 //使用註解
 6 //
 7 //x代表數組對象
 8 //value可以為字元串、數字、數組等任何值
 9 //push是將value值添加到數組x的結尾
10 //pop是將數組x的最後一個元素刪除
11 
12 
13 var arr1=[1,2,3];
14 arr1.push(4,5);
15 alert(arr1);
16 //結果為"1,2,3,4,5"
17 arr1.push([6,7]);
18 alert(arr1)
19 //結果為"1,2,3,4,5,6,7"
20 arr1.pop();
21 alert(arr1);
22 //結果為"1,2,3,4,5"
View Code

數組的進出棧操作(2)

 1 // unshift shift 
 2 //x.unshift(value,...)
 3 //x.shift()
 4 //使用註解
 5 //
 6 //x代表數組對象
 7 //value可以為字元串、數字、數組等任何值
 8 //unshift是將value值插入到數組x的開始
 9 //shift是將數組x的第一個元素刪除
10 
11 var arr1=[1,2,3];
12 arr1.unshift(4,5);
13 alert(arr1);
14 //結果為"4,5,1,2,3"
15 arr1. unshift([6,7]);
16 alert(arr1);
17 //結果為"6,7,4,5,1,2,3"
18 arr1.shift();
19 alert(arr1);
20 //結果為"4,5,1,2,3"
View Code

總結js的數組特性:

1 //  js中數組的特性
2          //java中數組的特性,  規定是什麼類型的數組,就只能裝什麼類型.只有一種類型.
3          //js中的數組特性1: js中的數組可以裝任意類型,沒有任何限制.
4          //js中的數組特性2: js中的數組,長度是隨著下標變化的.用到多長就有多長.
5          var arr5 = ['abc',123,1.14,true,null,undefined,new String('1213'),new Function('a','b','alert(a+b)')];
6         /*  alert(arr5.length);//8
7          arr5[10] = "hahaha";
8          alert(arr5.length); //11
9          alert(arr5[9]);// undefined */
View Code

2.3 Date 對象

創建Date對象

 1 //方法1:不指定參數
 2 var nowd1=new Date();
 3 alert(nowd1.toLocaleString( ));
 4 //方法2:參數為日期字元串
 5 var nowd2=new Date("2004/3/20 11:12");
 6 alert(nowd2.toLocaleString( ));
 7 var nowd3=new Date("04/03/20 11:12");
 8 alert(nowd3.toLocaleString( ));
 9 //方法3:參數為毫秒數
10 var nowd3=new Date(5000);
11 alert(nowd3.toLocaleString( ));
12 alert(nowd3.toUTCString());
13 
14 //方法4:參數為年月日小時分鐘秒毫秒
15 var nowd4=new Date(2004,2,20,11,12,0,300);
16 alert(nowd4.toLocaleString( ));
17 //毫秒並不直接顯示
View Code

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Objective-C語言是iOS開發的專用語言,雖然現在在逐步被swift語言取代,但是仍可以作為基礎學習,學會Objective-C之後入手swift也是相當快速。今天我來簡談一下關於OC中的類。 如果有過C++,Java基礎的同學就會對類有了初步的瞭解。類,是一個抽象的概念,將一個事物抽象後概 ...
  • 因為自帶的listView不能滿足項目需求,通過實現自己的Adapter去繼承ArrayAdapter 來實現自定義ListView的Item項目。 出現點擊ListView的每一項都不會執行setOnItemClickListener 裡面的onItemClick 方法。 原因是item裡面存在一 ...
  • 1、在android studio 安裝adb wifi插件 2、打開命令行 運行adb tcpip 5555 和 adb connect 192.168.10.163 IP地址查看手機wifi的ip 要求手機和電腦在同一個區域網 3、點擊 運行 >調式- 就可以看到 連接的設備 ...
  • 一.小程式開發的兩種選項 ①小游戲開發:內部對應的入口配置文件為game.json丶game.wxml之類的文件或者項目。 ②小程式開發:內部對應的入口配置文件為app.json丶app.wxml之類的文件或者項目。 小程式: 小游戲: 所以當我們使用小游戲的appid去發佈一個小程式的時候就會出現 ...
  • 淺談自記憶函數 最近閱讀《JavaScript忍者秘籍》看到了一種有趣的函數:自記憶函數。 簡介 何為自記憶函數?書中提到: 記憶化(memoization)是一種構建函數的處理過程,能夠記住上次計算結果 通過這句話可以得出,自記憶函數其實就是能夠記住上次計算結果的函數。在實現中,我們可以這樣進行處 ...
  • 沒學過 css,學過一點點 html,這些天看了一些模板樣式很 nice 的博客,跟大家分享下: 其實只是我的個人看法而已,但是 their 創意和各種特效還是很酷的,雖然這兩天我改的博客模板也就這個樣子,也不知道怎麼透明化,但是改個大體上的模板實際上是不難的。有一個簡書上發佈的圖解操作,我就是從這 ...
  • 1 常用指令 v-if指令 v-show指令 v-else指令 v-for指令 v-bind指令 v-model v-on指令 v-text指令 1.1 v-if是條件渲染指令,它根據表達式的真假來刪除和插入元素,它的基本語法如下: expression是一個返回bool值的表達式,表達式可以是一個 ...
  • 為了實現一個可定製化高的react工程,我們往往會自己搭建一個react工程。所以本文會從零開始搭建一個react腳手架工程。解釋webpack中配置的含義。 基於webpack 4.0 。包含 開發環境配置,生產環境配置,代碼分離,css提取,gzip壓縮,base64載入資源,打包分析,ssh一... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...