
前言
快到雙十一了,又到了一年一度的觸景生情的時候了.對象,作為本屌絲的我只能在是JavaScript或者是OC創(chuàng)建一個對象了??....不過希望所有程序猿(媛)能在雙十一成功脫單,往愛情的道路上前進一步.在這個特殊的日子將要來臨的時候,我們說說關(guān)于JavaScript對象相關(guān)的內(nèi)容.

JavaScript對象介紹
下面敘述的所有演示代碼均在<script>標(biāo)簽中進行.
與OC類似,正所謂萬物皆對象,JavaScript所有事物都是對象.JavaScript對象是包含著屬性和方法.JavaScript對象類似于OC中的字典類型,這是前面文章中說過的.如下所示,這是JavaScript創(chuàng)建對象的一種形式.

下面我們就創(chuàng)建一個person對象.然后給它添加姓名、年齡屬性.
var people = {name:'SaoDong',age:18};
然后,我們給person對象添加一個方法.
car.action = function() {
alert("你好!");
};
當(dāng)然了,我們不但可以在對象初始化的時候給對象添加屬性,我們也可以在初始化完成之后給對象添加屬性.
var people = {name:'SaoDong',age:18};
people.car = "daHuangFeng";
那么我們該如何訪問對象的屬性已經(jīng)方法呢?我們需要用點語法(語法糖)來訪問對象的屬性以及方法.如下所示.
people.car//訪問對象的屬性
people.action();//訪問對象的方法
JavaScript內(nèi)建對象類型
上面我們介紹了基本對象類型,下面就對幾種常用的JS內(nèi)建對象類型做一下介紹以及說明.更多是介紹它自身所帶有的方法.
字符串
對于字符串的創(chuàng)建,我們在上一篇文章中已經(jīng)說過了,下面我就對字符串對象的一些常見方法做一下列舉.包括字體型號,字體顏色,超鏈接等. 當(dāng)然,我只是介紹幾種常用的屬性....
fontsize()//字體型號
fontcolor()//字體顏色
link()//超鏈接
strike()//中劃線
示例如下所示.
<body>
<p id='label1'></p>
<p id='label2'></p>
<p id='label3'></p>
<p id='label4'></p>
</body>
<script>
var myString = "搞事,搞事,一天到晚就知道搞事";
document.getElementById('label1').innerHTML = myString.fontsize(20);
document.getElementById('label2').innerHTML = myString.fontcolor('Red');
document.getElementById('label3').innerHTML = myString.link("http://www.itdecent.cn/users/e39da354ce50/latest_articles");
document.getElementById('label4').innerHTML = myString.strike();
</script>
效果圖如下.

數(shù)組
JavaScript數(shù)組對象的創(chuàng)建比較簡單,如下所示.
var myArray = new Array;
myArray[0] = "騷棟";
myArray[1] = "棟哥";
myArray[2] = "賓哥";
myArray[3] = "達哥";
數(shù)組對象所對應(yīng)的方法就比較多了,這里也說一下幾個常用的.我就直接拿上面創(chuàng)建的數(shù)組來做示例說明了.
-
數(shù)組排序
數(shù)組的排序是使用函數(shù)sort()實現(xiàn)的,包括實現(xiàn)字符串?dāng)?shù)組和數(shù)字?jǐn)?shù)組的排序.該方法會改變原來的數(shù)組,而不會創(chuàng)建新的數(shù)組.示例如下所示.
document.write("原始數(shù)組:"+"<br>"+myArray + "<br>" + "<br>");
myArray.sort();
document.write("操作后的數(shù)組:"+"<br>"+myArray + "<br>");
結(jié)果如下所示.

-
數(shù)組顛倒
數(shù)組顛倒主要是使用reverse()方法用于顛倒數(shù)組中元素的順序.該方法會改變原來的數(shù)組,而不會創(chuàng)建新的數(shù)組.示例如下所示.
document.write("原始數(shù)組:"+"<br>"+myArray + "<br>" + "<br>");
myArray.reverse();
document.write("操作后的數(shù)組:"+"<br>"+myArray + "<br>");
結(jié)果如下所示.

-
數(shù)組刪除/插入元素
OC中的數(shù)組插入和刪除元素完全的兩個方法,但是在JavaScript中數(shù)組的插入和刪除shift用splice()這一個方法即可解決.函數(shù)形式以及參數(shù)解釋如下所示.

比如我們現(xiàn)在要在下標(biāo)為2的位置添加元素,并不刪除任何原數(shù)組的任何一個元素,那么我們只需要把index設(shè)置為2,howmany參數(shù)為0,然后插入?yún)?shù)即可.代碼可以如下.
document.write("原始數(shù)組:"+"<br>"+myArray + "<br>" + "<br>");
myArray.splice(2,0,"三爺");
document.write("操作后的數(shù)組:"+"<br>"+myArray + "<br>");
效果圖如下所示.

再例如,我們只想刪除從下標(biāo)2開始的兩個元素,那么我們的代碼操作就可以如下所示.
document.write("原始數(shù)組:"+"<br>"+myArray + "<br>" + "<br>");
myArray.splice(2,2);
document.write("操作后的數(shù)組:"+"<br>"+myArray + "<br>");
效果如下所示.

日期
日期對象也是一種比較常用的對象類型.我們創(chuàng)建一個日期對象,如果不對這個對象進行任何賦值操作,那么它默認(rèn)的就是當(dāng)前日期,如下所示.
var nowDate = new Date;
document.write("<br>"+nowDate);
效果如下所示.

與OC類似,我們可以通過set/get方法分別對當(dāng)前的date對象設(shè)置時間和獲取時間.常用方法列表如下所示.
| 名稱 | 設(shè)置(輸入?yún)?shù)) | 獲取(具有返回值) |
|---|---|---|
| 天 | setDate() | getDate() |
| 月 | setMonth() | getMonth() |
| 年 | setFullYear() | getFullYear() |
| 星期幾 | setDay() | getDay() |
| 時 | setHours() | getHours() |
| 分 | setMinutes() | getMinutes() |
| 秒 | setSeconds() | getSeconds() |
| 毫秒 | setMilliseconds() | getMilliseconds() |
| 距1970.1.1的毫秒數(shù) | setTime() | parse() |
| 時間部分字符串 | 無 | toTimeString() |
| 日期部分字符串 | 無 | toDateString() |
比如我們設(shè)置天以及獲取天數(shù),代碼如下所示.頁面當(dāng)然就是顯示7了.
var nowDate = new Date;
nowDate.setDate(7);
document.write("<br>"+nowDate.getDate());
JavaScript 算數(shù)對象
JavaScript的算數(shù)對象主要是用于計算任務(wù),比如輸入0~1之間的隨機數(shù),我們可以如下輸入代碼.
var number = Math.random();
document.write(number);
再例如我們可以比較兩個數(shù)的大小.用max()和min()兩個函數(shù)即可.例如
var maxNumber = Math.max(1,2);
document.write(maxNumber);
然后,我看看教程還有一些常用的算數(shù)值,這里做一個列表分享出來.
| 算數(shù)值名稱 | Math對象表示 |
|---|---|
| 常數(shù) | Math.E |
| 圓周率 | Math.PI |
| 2 的平方根 | Math.SQRT2 |
| 1/2 的平方根 | Math.SQRT1_2 |
| 2 的自然對數(shù) | Math.LN2 |
| 10 的自然對數(shù) | Math.LN10 |
| 以 2 為底的 e 的對數(shù) | Math.LOG2E |
| 以 10 為底的 e 的對數(shù) | Math.LOG10E |
JavaScript 正則表達式
JavaScript 的RegExp對象跟OC的謂詞的功能差不多,主要是用于字符串的比較,以前我就在華山論劍之iOS NSPredicate(謂詞)的使用(一)寫過OC的謂詞使用,并且在華山論劍之iOS NSPredicate(謂詞)的使用(二)中說到過關(guān)于常用正則表達式的使用.今天我們說一下JS中的RegExp對象的使用.
RegExp對象創(chuàng)建函數(shù)實際上是有pattern和attributes兩個參數(shù),pattern參數(shù)用來填寫正則表達式的模式或其他正則表達式.attributes參數(shù)則是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用于指定全局匹配、區(qū)分大小寫的匹配和多行匹配。
RegExp(pattern, attributes)
RegExp對象主要有三個方法,test()和exec()以及compile().
-
test()
test()函數(shù)檢索字符串中的指定值,返回值是 true 或 false.示例如下所示.
var searching = new RegExp('D');
var nameString = 'ShenJingSaoDong';
document.write(searching.test(nameString));
返回值為true.
-
exec()
和test()函數(shù)不同的是,exec()雖然也是檢索字符串中的指定值,但是它的返回值是檢索值或者是null.例如,
var searching = new RegExp('D');
var nameString = 'ShenJingSaoDong';
document.write(searching.exec(nameString));
-
compile()
compile()主要是用于修改pattern和attributes這兩個參數(shù).例如,
var searching = new RegExp('D');
var nameString = 'ShenJingSaoDong';
document.write(searching.exec(nameString));
searching.compile('S');
document.write(searching.exec(nameString));
結(jié)束
JavaScript對象的分析講解基本就到這了,這里我決定分享關(guān)于JavaScript對象方法的詳細內(nèi)容傳送門??,初學(xué)JavaScript,可能有很多地方寫的不是很全面,希望各個大神前來批評指導(dǎo),最后祝大家在雙十一的日子里能找到屬于自己的另外一半,成功脫單.
