javascript基礎加固5—-對象
2.1 什麽是對象
JavaScript 的所有數據都可以被視為對象,而每個對象都有其 屬性(properties)和 方法(methods)。
對象的 屬性 是反映該對象某些特定的性質的,例如:字符串的長度、圖像的長寬、文字框(Textbox)裏的文字等;
對象的 方法 能對該對象做一些事情,例如,表單的“提交”(Submit),窗口的“滾動”(Scrolling)等。
比如當申請一個變量的時候:
var my_var="shiyanlou";
其實也就是創建了一個 字符串對象 ,這個對象擁有內建的屬性 my_var.length = 9
同時,這個字符串對象還有數個內建的方法,比如 my_var.toUpperCase() 方法可以將字符轉為大寫;my_var.charAt(n) 方法可以返回第 n 個字符。
2.2 創建對象
JavaScript 提供了一些常用的內置對象(稍後介紹),但是有些情況下我們需要自定義地創建對象,以達到特殊的、豐富的功能。
比如我們創建一個“student”對象,並為其指定幾個 屬性 和 方法:
student = new Object(); // 創建對象“student” student.name = "Tom"; // 對象屬性 名字 student.age = "19"; // 對象屬性 年齡 student.study =function() { // 對象方法 學習 alert("studying"); }; student.eat =function() { // 對象方法 吃 alert("eating"); };
采用函數的方式新建對象:
function student(name,age) { this.name = name; this.age = age; this.study = function() { alert("studying"); }; this.eat = function() { alert("eating"); } }
然後通過 new 創建 student 對象的實例:
var student1 = newstudent(‘Tom‘,‘19‘); var student2 = new student(‘Jack‘,‘20‘);
2.3 訪問對象的屬性和方法
對象的存在意義,就是為了方便地操作數據,我們可以很容易地訪問對象的屬性或調用對象的方法,通過符號“.”。
比如我們剛才新建的 student1 對象,可以這樣使用:
<script> var x = student1.name; // 訪問對象的屬性 var y = student1.age; document.write(x); document.write(y); student1.study(); // 調用對象的方法 </script>
當我們需要 反復訪問 某對象的時候,可以使用 with 語句簡化操作,而不需要反復地用“.”符號,比如:
with(student1) { var x = name; var y= age; study(); eat(); }
2.4 常用內置對象
JavaScript 為我們提供了一些非常有用的常用內置對象,這樣我們就不用每次自己編代碼來實現一些常用功能。
現在我們舉例介紹 String、Math、Array 三中常用對象及其屬性和方法。
2.4.1 String 字符串對象
一開始就舉例介紹過 String 對象,每當創建一個字符串變量的時候,也就相當於創建了一個 String 對象。
(1)String 的屬性
該對象只有一個屬性,即 length,表示字符串中的字符個數,包括所有的空格和符號:
var test_var = "I love You!"; document.write(test_var.length);
顯示結果是“11”因為字符串長度將符號和空格也計算在內:
(2)String 的方法
String 對象共有 19 個內置方法,主要包括字符串在頁面中的顯示、字體大小、字體顏色、字符的搜索以及字符的大小寫轉換等功能,下面是一些常用的:
-
charAt(n) :返回該字符串第 n 位的單個字符。(從 0 開始計數)
-
charCodeAt(n) :返回該字符串第 n 位的單個字符的 ASCII 碼。
-
indexOf() :用法:string_1.indexOf(string_2,n); 從字符串 string_1 的第 n 位開始搜索,查找 string_2,返回查找到的位置,如果未找到,則返回 -1,其中 n 可以不填,默認從第 0 位開始查找。
-
lastIndexOf() :跟 indexOf() 相似,不過是從後邊開始找。
-
split(‘分隔符‘) :將字符串按照指定的分隔符分離開,返回一個數組,例如:‘1&2&345&678‘.split(‘&‘);返回數組:1,2,345,678。
-
substring(n,m) :返回原字符串從 n 位置到 m 位置的子串。
-
substr(n,x) :返回原字符串從 n 位置開始,長度為 x 的子串。
-
toLowerCase() :返回把原字符串所有大寫字母都變成小寫的字符串。
-
toUpperCase() :返回把原字符串所有小寫字母都變成大寫的字符串。
2.4.2 Math 對象
“數學”對象,提供對數據的數學計算。
(1)Math 的屬性
Math 的幾個屬性,是數學上幾個常用的值:
-
E :返回常數 e (2.718281828...)。
-
LN2 :返回 2 的自然對數 (ln 2)。
-
LN10 :返回 10 的自然對數 (ln 10)。
-
LOG2E :返回以 2 為底的 e 的對數 (log2e)。
-
LOG10E :返回以 10 為底的 e 的對數 (log10e)。
-
PI :返回π(3.1415926535...)。
-
SQRT1_2 :返回 1/2 的平方根。
-
SQRT2 :返回 2 的平方根。
(2)Math 的方法
Math 的內置方法,是一些數學上常用的數學運算:
- abs(x) :返回 x 的絕對值。
- round(x) :返回 x 四舍五入後的值。
- sqrt(x) :返回 x 的平方根。
- ceil(x) :返回大於等於 x 的最小整數。
- floor(x) :返回小於等於 x 的最大整數。
- sin(x) :返回 x 的正弦。
- cos(x) :返回 x 的余弦。
- tan(x) :返回 x 的正切。
- acos(x) :返回 x 的反余弦值(余弦值等於 x 的角度),用弧度表示。
- asin(x) :返回 x 的反正弦值。
- atan(x) :返回 x 的反正切值。
- exp(x) :返回 e 的 x 次冪 (e^x)。
- pow(n, m) :返回 n 的 m 次冪 (nm)。
- log(x) :返回 x 的自然對數 (ln x)。
- max(a, b) :返回 a, b 中較大的數。
- min(a, b) :返回 a, b 中較小的數。
- random() :返回大於 0 小於 1 的一個隨機數。
2.4.3 Array 數組對象
數組對象是對象的集合,裏邊的對象可以是不同類型的。數組的每一個成員對象都有一個“下標”,用來表示它在數組中的位置(從 0 開始計數)。
數組下標表示方法是用方括號括起來,比如:
myArray[2]="hello"
註意:JavaScript只有一維數組,要使用多維數組,請用這種虛擬法:
var myArray = new Array(new Array(), new Array(), new Array(), ...);
其實這是一個一維數組,裏邊的每一個元素又是一個數組。調用這個“二維數組”的元素時:
myArray[2][3] = ...;
(1)Array 的屬性
length :返回數組的長度,即數組裏有多少個元素。它等於數組裏最後一個元素的下標加一。
因此,想添加一個元素,只需要:
myArray[myArray.length] = ...;
####(2)Array 的方法 - join("指定分隔符") :返回一個字符串,把數組元素串起來,元素間用指定分隔符隔開。 - toString() :把數組轉為字符串,並返回結果。 - reverse() :使數組元素倒序。 - slice(n,m) :返回子數組,從數組第 n 個元素到第 m 個元素。 - sort(SortFunction) :按照指定的 SortFunction 將數組的元素排序。 - concat(Array\_1,Array\_2) :用於連接兩個或多個數組。
javascript基礎加固5—-對象