W3C:JavaScript 對象

JavaScript 參考手冊
這個鏈接要參考,多使用

  • JavaScript 中的所有事物都是對象:字符串、數值、數組、函數...
    此外,JavaScript 允許自定義對象。
  • 對象只是帶有屬性和方法的特殊數據類型。
  • 屬性是與對象相關的值。
    訪問對象屬性的語法是:
objectName.propertyName
  • 方法是能夠在對象上執行的動作。
    您可以通過以下語法來調用方法:
objectName.methodName()
  • 這個例子創建了對象的一個新實例,并向其添加了四個屬性:
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

替代語法(使用對象 literals):

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
  • 本例使用函數來構造對象:
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}

一旦您有了對象構造器,就可以創建新的對象實例,就像這樣:

var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");
  • 方法只不過是附加在對象上的函數。
    在構造器函數內部定義對象的方法:
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    
    function changeName(name)
    {
        this.lastname=name;
    }
}
  • JavaScript 是面向對象的語言,但 JavaScript 不使用類。
    在 JavaScript 中,不會創建類,也不會通過類來創建對象(就像在其他面向對象的語言中那樣)。
    JavaScript 基于 prototype,而不是基于類的。
  • JavaScript for...in 語句循環遍歷對象的屬性。
    for...in 循環中的代碼塊將針對每個屬性執行一次。
    實例: 循環遍歷對象的屬性:
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
    txt=txt + person[x];
}

txt的值為BillGates56

Number 對象

  • JavaScript 只有一種數字類型。可以使用也可以不使用小數點來書寫數字。
  • JavaScript 不是類型語言。與許多其他編程語言不同,JavaScript 不定義不同類型的數字,比如整數、短、長、浮點等等。
    JavaScript 中的所有數字都存儲為根為 10 的 64 位(8 字節),浮點數。
  • 整數(不使用小數點或指數計數法)最多為 15 位。
    小數的最大位數是 17,但是浮點運算并不總是 100% 準確:
  • 如果前綴為 0,則 JavaScript 會把數值常量解釋為八進制數,如果前綴為 0 和 "x",則解釋為十六進制數
    絕不要在數字前面寫零,除非您需要進行八進制轉換。
    實例
var y=0377;      // 八進制
var z=0xFF;      // 十六進制
  • 數字屬性
    MAX VALUE
    MIN VALUE
    NEGATIVE INFINITIVE
    POSITIVE INFINITIVE
    NaN
    prototype
    constructor
  • 數字方法
    toExponential()
    toFixed()
    toPrecision()
    toString()
    valueOf()

字符串(String)對象

  • 計算字符串的長度
var txt="Hello World!"
document.write(txt.length)
  • 為字符串添加樣式
var txt="Hello World!"

document.write("<p>Big: " + txt.big() + "</p>")
document.write("<p>Small: " + txt.small() + "</p>")

document.write("<p>Bold: " + txt.bold() + "</p>")
document.write("<p>Italic: " + txt.italics() + "</p>")

document.write("<p>Blink: " + txt.blink() + " (does not work in IE)</p>")
document.write("<p>Fixed: " + txt.fixed() + "</p>")
document.write("<p>Strike: " + txt.strike() + "</p>")

document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")
document.write("<p>Fontsize: " + txt.fontsize(16) + "</p>")

document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")
document.write("<p>Uppercase: " + txt.toUpperCase() + "</p>")

document.write("<p>Subscript: " + txt.sub() + "</p>")
document.write("<p>Superscript: " + txt.sup() + "</p>")

document.write("<p>Link: " + txt.link("http://www.w3school.com.cn") + "</p>")
  • 使用 indexOf() 來定位字符串中某一個指定的字符首次出現的位置。
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
  • 使用 match() 來查找字符串中特定的字符,并且如果找到的話,則返回這個字符。
var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))
  • 使用 replace() 方法在字符串中用某些字符替換另一些字符。
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/,"W3School"))

Date(日期)對象

  • 可以通過 new 關鍵詞來定義 Date 對象。以下代碼定義了名為 myDate 的 Date 對象:
    Date 對象自動使用當前的日期和時間作為其初始值。
var myDate=new Date() 
  • 在下面的例子中,我們為日期對象設置了一個特定的日期 (2008 年 8 月 9 日):
var myDate=new Date()
myDate.setFullYear(2008,7,9)

注意:表示月份的參數介于 0 到 11 之間。也就是說,如果希望把月設置為 8 月,則參數應該是 7。

  • 在下面的例子中,我們將日期對象設置為 5 天后的日期:
var myDate=new Date()
myDate.setDate(myDate.getDate()+5)

注意:如果增加天數會改變月份或者年份,那么日期對象會自動完成這種轉換。

  • 日期對象也可用于比較兩個日期。
    下面的代碼將當前日期與 2008 年 8 月 9 日做了比較:
var myDate=new Date();
myDate.setFullYear(2008,8,9);

var today = new Date();

if (myDate>today)
{
    alert("Today is before 9th August 2008");
}
else
{
    alert("Today is after 9th August 2008");
}
  • getTime() 返回從 1970 年 1 月 1 日至今的毫秒數。
var d=new Date();
document.write("從 1970/01/01 至今已過去 " + d.getTime() + " 毫秒");
  • 使用toUTCString() 將當日的日期(根據 UTC)轉換為字符串。
var d = new Date()
document.write (d.toUTCString())
  • 使用 getDay() 和數組來顯示星期,而不僅僅是數字
var d=new Date()
var weekday=new Array(7)
weekday[0]="星期日"
weekday[1]="星期一"
weekday[2]="星期二"
weekday[3]="星期三"
weekday[4]="星期四"
weekday[5]="星期五"
weekday[6]="星期六"

document.write("今天是" + weekday[d.getDay()])

Array(數組)對象

  • 創建數組,為其賦值,然后輸出這些值。
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (i=0;i<mycars.length;i++)
{
    document.write(mycars[i] + "<br />") 
}
  • 使用 for...in 聲明來循環輸出數組中的元素。
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)     // 這里的x是指下標,和OC有點不一樣
{
    document.write(mycars[x] + "<br />")
}
  • 使用 concat() 方法來合并兩個數組。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(arr.concat(arr2))
  • 使用 join() 方法將數組的所有元素組成一個字符串。
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr.join());
document.write("<br />");
document.write(arr.join("."));
  • 使用 sort() 方法從字面上對數組進行排序。
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.sort())
  • 使用 sort() 方法從數值上對數組進行排序。
function sortNumber(a, b)
{
    return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

Boolean(邏輯)對象

  • 您可以將 Boolean 對象理解為一個產生邏輯值的對象包裝器。
    Boolean(邏輯)對象用于將非邏輯值轉換為邏輯值(true 或者 false)。
    如果邏輯對象無初始值或者其值為 0、-0、null、""、false、undefined或者 NaN,那么對象的值為false。否則,其值為 true(即使當自變量為字符串 "false" 時)!
var b1=new Boolean( 0)
var b2=new Boolean(1)
var b3=new Boolean("")
var b4=new Boolean(null)
var b5=new Boolean(NaN)
var b6=new Boolean("false")

document.write("0 是邏輯的 "+ b1 +"<br />")                  // false
document.write("1 是邏輯的 "+ b2 +"<br />")                  // true
document.write("空字符串是邏輯的 "+ b3 + "<br />")            // false
document.write("null 是邏輯的 "+ b4+ "<br />")               // false
document.write("NaN 是邏輯的 "+ b5 +"<br />")                // false
document.write("字符串 'false' 是邏輯的 "+ b6 +"<br />")      // true

Math(算數)對象

  • Math(算數)對象的作用是:執行普通的算數任務。
    Math 對象提供多種算數值類型和函數。無需在使用這個對象之前對它進行定義。
  • 下面的例子使用了 Math 對象的 round 方法對一個數進行四舍五入。
document.write(Math.round(4.7));
  • 下面的例子使用了 Math 對象的 random() 方法來返回一個介于 0 和 1 之間的隨機數:
document.write(Math.random())
  • 下面的例子使用了 Math 對象的 floor() 方法和 random() 來返回一個介于 0 和 10 之間的隨機數:
document.write(Math.floor(Math.random()*11)) 
  • JavaScript 提供 8 種可被 Math 對象訪問的算數值:
Math.E            // 常數e
Math.PI           // 圓周率
Math.SQRT2        // 2 的平方根
Math.SQRT1_2      // 1/2 的平方根
Math.LN2          // 2 的自然對數
Math.LN10         // 10 的自然對數
Math.LOG2E        // 以 2 為底的 e 的對數
Math.LOG10E       // 以 10 為底的 e 的對數

RegExp 對象

  • RegExp 對象用于存儲檢索模式。
    通過 new 關鍵詞來定義 RegExp 對象。以下代碼定義了名為patt1 的 RegExp 對象,其模式是 "e"
    當您使用該 RegExp 對象在一個字符串中檢索時,將尋找的是字符 "e"
var patt1=new RegExp("e");

*test() 方法檢索字符串中的指定值。返回值是 truefalse

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));  // true
  • exec() 方法檢索字符串中的指定值。返回值是被找到的值。如果沒有發現匹配,則返回 null
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));  // e

您可以向 RegExp 對象添加第二個參數,以設定檢索。例如,如果需要找到所有某個字符的所有存在,則可以使用 "g" 參數 ("global")。
在使用 "g" 參數時,exec() 的工作原理如下:
(1) 找到第一個"e",并存儲其位置
(2) 如果再次運行 exec(),則從存儲的位置開始檢索,并找到下一個 "e",并存儲其位置

var patt1=new RegExp("e","g");
do
{
    result=patt1.exec("The best things in life are free");
    document.write(result);
}
while (result!=null) 

由于這個字符串中 6 個 "e" 字母,代碼的輸出將是:eeeeeenull

  • compile() 方法用于改變 RegExp。
    compile() 既可以改變檢索模式,也可以添加或刪除第二個參數。
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));

patt1.compile("d");
document.write(patt1.test("The best things in life are free"));

由于字符串中存在"e",而沒有"d",以上代碼的輸出是:truefalse

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 通過 HTML DOM,可訪問 JavaScript HTML 文檔的所有元素。 HTML DOM (文檔對象模型...
    夜幕小草閱讀 459評論 0 10
  • JavaScript 提供多個 內建 對象,比如 String、Date、Array 等等。對象只是帶有 屬性 和...
    逍遙嘆6閱讀 310評論 0 0
  • 1.JavaScript 中的所有事物都是對象:字符串、數值、數組、函數... 此外,JavaScript 允許自...
    ancientear閱讀 299評論 0 2
  • 第1章 認識JS JavaScript能做什么?1.增強頁面動態效果(如:下拉菜單、圖片輪播、信息滾動等)2.實現...
    mo默22閱讀 1,338評論 0 5
  • 1.HTML DOM (Document Object Model) document.getElementByI...
    廖馬兒閱讀 1,450評論 0 17