亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 10:44:47
字體:
來源:轉載
供稿:網友

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

擁抱JavaScript

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

1.Object類型

1. 創建:

var dog = new Object(); 

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

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

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

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

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

2.Array類型

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

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

2.創建:

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

3.動態調整示例:

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

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 arrayvar count = colors.push("周杰倫", "王尼瑪"); //push two itemsalert(count); //2count = stars .push("張全蛋"); //push another item onalert(count); //3var item = colors.shift(); //get the first itemalert(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。功能強大。可以刪除、插入、替換。

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

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的包裝操作,創建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 Chinastore1[0]='Nike U.S.A.';alert(store2[0]); //Nike U.S.A.}chainStore();//在上面的代碼中,store2只進行了一次賦值,理論上它的值已定,但后面通過改寫store1的值,發現store2的值也發生了改變,這正是引用類型的特征,也是我們要注意的地方
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品午夜视频| 亚洲国产精品va在线看黑人| 国产成人精品一区二区三区| 亚洲成人精品久久久| 亚洲成人网在线观看| 亚洲精品国产suv| 欧美一级片一区| 亚洲免费视频观看| 久久久久久免费精品| 亚洲精品午夜精品| 国产主播喷水一区二区| 亚洲欧美日韩国产精品| 久久这里有精品| 日本精品视频网站| 欧美猛交ⅹxxx乱大交视频| 91沈先生作品| 亚洲视频在线播放| 久久精品一区中文字幕| 日韩女优在线播放| www.欧美视频| 欧美激情视频在线观看| 久久久久成人精品| 色哟哟亚洲精品一区二区| 久久久久国产精品免费| 欧美成人三级视频网站| 在线国产精品播放| 久久在线免费视频| 国产精品极品在线| 亚洲精品之草原avav久久| 久久精品成人动漫| 久久香蕉精品香蕉| 久久国内精品一国内精品| 久久久亚洲成人| 91av国产在线| 狠狠综合久久av一区二区小说| 欧美黑人视频一区| 一本色道久久88精品综合| 国产精品96久久久久久又黄又硬| 91福利视频网| 欧美精品激情在线观看| 欧美日韩国产页| 国产亚洲精品91在线| 国产黑人绿帽在线第一区| 91精品国产高清| 久久亚洲私人国产精品va| 久久久国产精品亚洲一区| 日韩成人在线视频| www.亚洲一区| 精品国产乱码久久久久久虫虫漫画| 在线性视频日韩欧美| 深夜成人在线观看| 国产91精品久久久久| 精品亚洲男同gayvideo网站| 欧美国产在线视频| 久久av资源网站| 丝袜一区二区三区| 国产精品久久久91| 美女久久久久久久久久久| 亚洲字幕一区二区| 国产999精品视频| 26uuu另类亚洲欧美日本一| 久久久久久久久久久网站| 日韩欧美国产网站| 综合136福利视频在线| 全色精品综合影院| 国产亚洲人成网站在线观看| 亚洲免费影视第一页| 精品一区二区三区四区在线| 国产成+人+综合+亚洲欧美丁香花| 91伊人影院在线播放| 69av视频在线播放| 成人免费激情视频| 欧美大片大片在线播放| 91精品久久久久久久久久久| 国产成人综合一区二区三区| 亚洲第一视频网站| 亚洲欧美另类中文字幕| 欧美精品福利在线| 国产欧美日韩精品专区| 国产欧美 在线欧美| 亚洲女性裸体视频| 亚洲欧美一区二区三区久久| 亚洲成人精品在线| 成人福利视频在线观看| 亚洲综合中文字幕68页| 欧美日韩在线另类| 久久综合亚洲社区| 亚洲一二三在线| 国产欧美一区二区三区久久| 久久理论片午夜琪琪电影网| 欧美裸体xxxx极品少妇软件| 久久精品久久久久| 一级做a爰片久久毛片美女图片| 久久久91精品| 久久精品国产亚洲| 国产精品jvid在线观看蜜臀| 亚洲精品福利资源站| 国产精品永久免费在线| 夜夜嗨av色综合久久久综合网| 欧美高清视频在线观看| 日韩成人中文电影| 欧美裸体xxxxx| 国产在线精品播放| 78m国产成人精品视频| 欧美精品在线播放| 国产亚洲视频中文字幕视频| 色狠狠久久aa北条麻妃| 91午夜在线播放| 国产v综合ⅴ日韩v欧美大片| 亚洲精品自拍视频| 中文字幕亚洲综合久久| 欧美性感美女h网站在线观看免费| 日韩小视频在线观看| 26uuu亚洲伊人春色| 91精品视频在线播放| 欧美视频在线免费| 韩剧1988免费观看全集| 色婷婷综合久久久久中文字幕1| 成人妇女淫片aaaa视频| 亚洲成人黄色网| 欧美老女人www| 91国自产精品中文字幕亚洲| 国产91精品在线播放| 92福利视频午夜1000合集在线观看| 欧美国产精品va在线观看| 亚洲xxx自由成熟| 日韩精品视频三区| 91久久精品美女高潮| 国产专区欧美专区| 欧美又大又硬又粗bbbbb| 一区二区福利视频| 欧美野外猛男的大粗鳮| 欧美一级淫片丝袜脚交| 九色精品免费永久在线| 亚洲欧美国产精品va在线观看| 日韩av免费网站| 亚洲第一精品夜夜躁人人躁| 精品偷拍一区二区三区在线看| 国产成人啪精品视频免费网| 日韩经典中文字幕| 中文字幕少妇一区二区三区| 69av视频在线播放| 欧美激情在线狂野欧美精品| 国内免费久久久久久久久久久| 成人伊人精品色xxxx视频| 91精品国产自产在线观看永久| 久久久女女女女999久久| 日韩精品福利网站| 欧美日韩在线影院| 国内精品一区二区三区| 亚洲国产精品人久久电影| 国产精品大陆在线观看| 久久久999国产| 国产亚洲综合久久| 国内自拍欧美激情| 欧美日韩中文字幕在线| 日韩在线观看视频免费| 日韩激情在线视频| 日韩精品视频在线免费观看| 欧美中文字幕在线| 亚洲色无码播放| 在线视频日韩精品| 免费av在线一区| 美日韩丰满少妇在线观看|