最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript學習筆記整理之引用類型

 更新時間:2016年01月22日 09:47:32   作者:煎餅果子多放蔥  
引用類型是JavaScript中很重要的內容,通過本文給大家介紹JavaScript學習筆記整理之引用類型,對js引用類型相關知識感興趣的朋友一起學習吧

引用類型是JavaScript中很重要的內容。引用類型是一種數據結構,用于將數據和功能組織在一起。它描述的是一類對象所具有的屬性和方法。Object是一個基礎類型,Array是數組類型,Date是日期類型,RegExp是正則表達式類型,等。

擁抱JavaScript

曾經名不經傳的JavaScript隨著AJAX的流行而身價倍增,現在JavaScript不再僅僅是WEB開發(fā)中一個可有可無的輔助工具,甚至有了專門屬于它的職位“JavaScript工程師”,那怕你僅僅是一名WEB后臺開發(fā)程序員,你都必須了解JavaScript,至少在一些相關招聘職位要求上你可以看到“熟悉JavaScript優(yōu)先”的字眼。甚至我還要告訴你,你將可以用JavaScript開發(fā)桌面軟件,這得益于Adobe AIR的另外一種開發(fā)模式,即用HTML+CSS+JavaScript開發(fā)AIR。

1.Object類型

1. 創(chuàng)建:

var dog = new Object(); 

常應用于存儲和傳輸數據。比如存儲:

var person = new Object();
person.name = "Nicholas";
person.age = 29; 

創(chuàng)建的第二種方式:(在創(chuàng)建時,屬性名也可以是字符串格式,即:可以給屬性名加引號。)

var person = {
name : "Nicholas",
age : 29
}; 

2.取出屬性值:person["name"];或者:person.name;

2.Array類型

同一個數組可以保存任意類型的數據(大雜燴)。

1.數組可以動態(tài)調整(多加一個數據,它自己就增長一個長度,不是死的。)。

2.創(chuàng)建:

var stars=new Array();//方式1
var stars=new Array(20);//方式2
var stars=new Array("周杰倫","林俊杰","孫燕姿");//方式3
var stars=Array(20);//方式4
var stars=["周杰倫","孫燕姿","林俊杰"];//方式6 

3.動態(tài)調整示例:

var stars=["周杰倫","林俊杰","孫燕姿"];
stars[1]="JJ";//動態(tài)改變(把林俊杰變?yōu)镴J)
stars[3]="皮褲汪";//動態(tài)增長(加了一個長度)
stars.length=1;//動態(tài)強制縮減(林俊杰、孫燕姿、皮褲汪強制移除,長度變?yōu)?) 

4.檢測數組:Array.isArray(value);

5.用join()把數組轉換成有分隔符的字符串:

var stars = ["周杰倫", "王尼瑪", "張全蛋"];
alert(stars .join(",")); //周杰倫,王尼瑪,張全蛋
alert(stars .join("-")); //周杰倫-王尼瑪-張全蛋 

6.可以像棧一樣使用數組(pop()出來,push()進去)。

7.可以像隊列一樣使用數組。(結合shift()和push()):

var stars = new Array(); //create an array
var count = colors.push("周杰倫", "王尼瑪"); //push two items
alert(count); //2
count = stars .push("張全蛋"); //push another item on
alert(count); //3
var item = colors.shift(); //get the first item
alert(item); //周杰倫
alert(colors.length); //2
/**所謂棧變隊列,其實就是把棧顛倒過來再拉取*/ 

8.排序。

1.reverse()翻轉數組順序;(返回經過排序后的數組)

2.sort()從小到大排序。但是是按字符串排序,不是按數字排序:(返回經過排序后的數組)。

var values = [, , , , ];
values.sort();
alert(values); //,,,,

要想按你預期的方式排序,可以給sort()里面加一個比較函數當作參數:

function compare(value, value) {
if (value < value) {
return -;
} else if (value > value) {
return ;
} else {
return ;
}
}
var values = [, , , , ];
values.sort(compare);
alert(values); //,,,, 

簡化版本的比較函數(sort只關心返回的是正數、負數還是0):

function compare(value1,value2){
return value2 - value1; 
} 

9.對數組的操作:聯結、切片、拼接。

1.聯結:使用concat,記憶:concat-->concatenate:連結,連鎖。

舉例:

var stars = ["周杰倫", "王尼瑪", "張全蛋"];
var stars = stars .concat("太子妃", ["花千骨", "梅長蘇"]);
alert(stars); //周杰倫,王尼瑪,張全蛋 
alert(stars); //周杰倫,王尼瑪,張全蛋,太子妃,花千骨,梅長蘇 

2.切片。使用slice,記憶:slice翻譯:切片。舉例:

var stars = ["梅長蘇", "譽王", "靖王", "霓凰", "飛流"];
var stars= stars.slice();
var stars= stars.slice(,);
alert(stars); //譽王,靖王,霓凰,飛流(從第一個位置開始切)
alert(stars); //譽王,靖王,霓凰(從第個位置切到第個位置,表示半封閉,不包含) 

3.拼接。splice。功能強大??梢詣h除、插入、替換。

 1.刪除任意數量的項:比如:splice(0,2),刪除第0,1項(半封閉區(qū)間)(返回刪除項)。

2.指定位置插入任意數量的項:比如:splice(2,0,"周杰倫","王尼瑪"),從第2個位置開始插入周杰倫、王尼瑪兩項。

3.指定位置插入任意數量的項且同時刪除任意數量的項。比如:splice(2,1,"周杰倫","王尼瑪"),從第2個位置刪除1項,然后開始插入周杰倫、王尼瑪兩項。

10.位置方法:indexOf,lastIndexOf;

11.迭代方法:分為:全部合格才通過、任意一個合格就通過、過濾部分渣渣,一對一映射,迭代查詢,縮減。

1.全部合格才通過:

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return (item > 2);
});
alert(everyResult); //false 

上例中每一項都大于2才返回true。

2.任意一個合格就通過:

var numbers = [1,2,3,4,5,4,3,2,1];
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true 

上例中,有一個大于2就返回true。

3.過濾部分渣渣:

var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3] 

上例中,把大于2的都過濾掉。

4.一對一映射:

var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2] 

上例中,給每一項都乘以2.

5.迭代:使用for-each。

6.縮減:reduce。

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum);//15

累加求和返回,5項縮為1項?!?br />

3.RegExp類型

1.var expression=/ pattern / flags;

2.flags分三種:g(global全局模式,應用于所有字符串)、i(case-insensive,忽略字母大小寫)、m(multiline,多行模式,一行檢驗完了接著下一行。)。舉例:

/**匹配字符串中所有'at'的實例*/
var pattern1=/at/g;
/**匹配第一個'bat'或'cat',不分大小寫*/
var pattern2 =/[bc]at/i;
/**匹配所有以'at'結尾的3個字符組合,不分大小寫*/
var pattern3=/.at/gi; 

3.模式中所有的元字符必須轉義,元字符:( { [ \ ^ $ | ) ? * + . ] }

4.Function類型

1.每個函數都是Function類型的實例,而且與其他引用類型一樣,都有屬性和方法。

2.函數的兩種定義方法:

方法1:

function sum(a,b){
return a + b; 
} 

方法2:

var sum=function(a,b){
return a + b;
} 

3.函數沒有重載。

5.Boolean、Number、String:基本包裝類型

var a="Jay Chou is a superstar";
var b=a.substring(0,8); 

上例中,a是基本類型,但是a可以調用substring方法,是因為,后臺自動完成a的包裝操作,創(chuàng)建String類型的一個實例。Boolean,Number也類似。

6.單體內置對象,不需要實例化,直接使用,如:Math,Global。

1.所有全局作用域中定義的函數、變量,都是Global對象的方法,比如:parseInt,isNaN等。

2.eval()方法也是Global對象的方法,它負責解析javascript。

3.Math對象是保存數學公式和相關信息的。它有很多方法, 如:min求最小值,max求最大值,ceil()向上取整,floor向下取整,round四舍五入,random取隨機數。

ps:引用類型理解:變量的交換等于把現有一間店的鑰匙(變量引用地址)復制一把給了另外一個老板,此時兩個老板同時管理一間店,兩個老板的行為都有可能對一間店的運營造成影響。

引用類型例子

function chainStore()
{
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0]='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代碼中,store2只進行了一次賦值,理論上它的值已定,但后面通過改寫store1的值,發(fā)現store2的值也發(fā)生了改變,這正是引用類型的特征,也是我們要注意的地方

相關文章

  • 微信小程序 css使用技巧總結

    微信小程序 css使用技巧總結

    這篇文章主要介紹了微信小程序 css使用技巧總結的相關資料,需要的朋友可以參考下
    2017-01-01
  • JavaScript中的值是按值傳遞還是按引用傳遞問題探討

    JavaScript中的值是按值傳遞還是按引用傳遞問題探討

    這篇文章主要介紹了JavaScript中的值是按值傳遞還是按引用傳遞問題探討,本文講解了按值傳遞、按引用傳遞、按共享傳遞、基本類型的不可變(immutable)性質等內容,需要的朋友可以參考下
    2015-01-01
  • JS獲取隨機數函數可自定義最小值最大值

    JS獲取隨機數函數可自定義最小值最大值

    這篇文章主要介紹的是一個JS獲取隨機數的函數可自定義最小值最大值,需要的朋友可以參考下
    2014-05-05
  • 如何使用JS獲取世界不同時區(qū)的當前時間

    如何使用JS獲取世界不同時區(qū)的當前時間

    文章介紹了在前端開發(fā)中使用JavaScript獲取不同時區(qū)當前時間的幾種方法,文章還提醒開發(fā)者要注意國際化和本地化最佳實踐,并進行充分的測試以確保代碼在不同環(huán)境和時區(qū)中的正確性,感興趣的朋友一起看看吧
    2024-12-12
  • javascript控制層顯示或隱藏的方法

    javascript控制層顯示或隱藏的方法

    這篇文章主要介紹了javascript控制層顯示或隱藏的方法,涉及javascript操作頁面元素樣式的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • 利用JavaScript實現一個日期范圍選擇器

    利用JavaScript實現一個日期范圍選擇器

    日期范圍選擇器是一個常見的Web應用功能,它允許用戶選擇一個日期范圍,本文我們將使用JavaScript來實現這個功能,感興趣的小伙伴可以了解下
    2024-01-01
  • 詳解JS函數重載

    詳解JS函數重載

    本文主要介紹了利用JavaScript中的特殊對象arguments來模擬函數重載的解決方案,非常的實用,給需要的小伙伴參考下
    2014-12-12
  • javascript中JSON對象與JSON字符串相互轉換實例

    javascript中JSON對象與JSON字符串相互轉換實例

    這篇文章主要介紹了javascript中JSON對象與JSON字符串相互轉換,實例分析了json對象與字符串常用的幾種轉換技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • JavaScript傳參的6種方式總結

    JavaScript傳參的6種方式總結

    js中的傳值方式,對于簡單類型(好比字符串和數值)就是值傳遞和引用傳遞,下面這篇文章主要給大家介紹了關于JavaScript傳參的6種方式,需要的朋友可以參考下
    2023-03-03
  • javascript:以前寫的xmlhttp池,代碼

    javascript:以前寫的xmlhttp池,代碼

    用javascript寫的xmlhttp池代碼,最下面有調用方法
    2008-05-05

最新評論

元谋县| 池州市| 宣武区| 陇南市| 巴林右旗| 治多县| 河曲县| 南安市| 伊吾县| 丽水市| 金昌市| 曲周县| 陆川县| 赫章县| 大同市| 杭锦后旗| 平昌县| 曲靖市| 桐梓县| 柯坪县| 屯昌县| 平邑县| 江永县| 苗栗县| 措勤县| 手机| 龙门县| 苏尼特右旗| 辽阳市| 台江县| 鄱阳县| 收藏| 恩平市| 合肥市| 蕲春县| 河北区| 辉县市| 伊金霍洛旗| 讷河市| 天柱县| 如东县|