$5 引用類型

引用類型是一種數(shù)據(jù)結(jié)構(gòu)瓢阴,描述了一類對象所具有的屬性和方法咐蚯。它具有以下幾種形式:

Object類型:

1.創(chuàng)建Object實例的方法:

a. new操作符

      var person = new Object();
      person.name="gly";

b.對象字面量

      var person={
          name:"gly"
      }

2.訪問對象屬性方法:

a.點表示方法(一般性方法)
person.name

b.方括號表示方法(當(dāng)屬性為變量時可以采用該方法)
person["name"]

Array類型

1.創(chuàng)建數(shù)組
a. Array

var colors=new Array();

b. 數(shù)組字面量

var colors=[1,2,3]

2.檢測數(shù)組:Array.isArray(value)

Paste_Image.png

3.棧方法:push() pop() //在尾部加入刪除
4.隊列方法:shift() push() //shift() 在頭部刪除
反隊列方法:unshift() pop() //unshift()在頭部加入

5.重排序方法:

a.反轉(zhuǎn)數(shù)組reverse()
b.排序sort() //注意:sort()方法比較的是字符串,對于數(shù)值型會排序錯誤,并且會直接修改原數(shù)組
字符串排序解決方法:加入compare()函數(shù)進(jìn)行比較


Paste_Image.png

6.操作方法:

a.創(chuàng)建副本以及合并concat()
可以創(chuàng)建原數(shù)組的副本并且將新添加的放到副本中


Paste_Image.png

b.切割數(shù)組中的一部分slice()


Paste_Image.png

c.大boss苛让,最強大的方法沟蔑,可以做刪除湿诊、插入、替換splice()

Paste_Image.png

第一個參數(shù)為從第幾個位置開始瘦材,第二個參數(shù)為要刪除幾項厅须,第三個參數(shù)為需要加入的內(nèi)容,最后更改的是原數(shù)組a食棕,bcd是刪除掉的數(shù)組朗和。

7.查找元素位置方法:

a. indexOf()從前往后查:第一個參數(shù)為要查找的元素,第二個參數(shù)為查找的起始位置
b. lastIndexOf()從后往前查

Paste_Image.png

8.迭代方法:

  a. every()  //每一項都符合返回true
  b. some()  //有一項符合就返回true
  c. forEach()  //無返回值
  d. filter()  //返回符合的原數(shù)據(jù)
  e. map()  //返回結(jié)果集
Paste_Image.png

9.歸并方法:
reduce() reduceRight()二者方向不同簿晓,這兩個方法都會對數(shù)組進(jìn)行迭代眶拉,四個參數(shù)

Paste_Image.png

Date類型

創(chuàng)建方式:var now=new Date();

Paste_Image.png

返回表示日期的毫秒數(shù):
a. Date.parse()
b. Date.UTC()

Paste_Image.png

獲取現(xiàn)在的時間:Date.now()

RegExp類型

創(chuàng)建方式:

a. 字面量方法:
var pattern= /bat/i;

b.構(gòu)造函數(shù)方法:
var pattern=new RegExp("bat","i");

g :全局模式
i :忽略大小寫
m:多行模式

Function類型

函數(shù)名是一個指向函數(shù)對象的指針!c径6撇恪!

1.創(chuàng)建方式:
a. 函數(shù)聲明:

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

b.函數(shù)表達(dá)式:

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

c.Function構(gòu)造函數(shù)

    var sum=new Function("a","b","return a+b");

2.函數(shù)聲明與函數(shù)表達(dá)式的不同:

函數(shù)聲明提升

Paste_Image.png

變量sum1提升皿曲,但是不會保存對函數(shù)的引用。

Paste_Image.png

3.函數(shù)內(nèi)部屬性

  1. callee : 一個指針吴侦,指向擁有arguments對象的函數(shù)(arguments: 保存?zhèn)魅牒瘮?shù)的所有參數(shù)屋休,以數(shù)組形式保存)
function factorial(num){
    if(num<=1)
     return 1;
   } else{          
      return num*arguments.callee(num-1);  //argument.callee等價于factorial,好處:函數(shù)變名時對內(nèi)部沒有影響
   }
}
  1. caller: 誰調(diào)用了該函數(shù),返回它的引用

誰調(diào)用了b()??哦备韧,是a(),那就返回a()的引用劫樟,也就是函數(shù)a()

Paste_Image.png

4.函數(shù)屬性和方法:
a. 在特定的作用域中調(diào)用函數(shù): apply(作用域,參數(shù)數(shù)組)
call(作用域织堂,參數(shù))

用sayColor對象的方法作用于window和o對象上叠艳。(調(diào)用其他對象的方法)

Paste_Image.png

b. bind():也是在特定的作用域中調(diào)用函數(shù),只是bind方法會產(chǎn)生一個函數(shù)實例易阳,只有對它調(diào)用時才會得到結(jié)果附较。所以如果想立即得到結(jié)果就用apply(),call(),如果不是潦俺,則使用bind().

基本包裝類型:

Boolean Number String(注意與boolean number string不同)

基本包裝類型:讀取基本類型時拒课,后臺會創(chuàng)建一個基本包裝類型對象,讓我們可以對其調(diào)用方法操作數(shù)據(jù)事示。

Paste_Image.png

在執(zhí)行第二行代碼時早像,后臺會有以下過程:
a. 創(chuàng)建string類型的一個實例; var s1= new String("abcd");
b. 在實例上調(diào)用方法肖爵; var s2=s1.substring(s1);
c. 銷毀實例卢鹦。 var s1=null;

基本包裝類型與引用類型的區(qū)別:生存期不同。(引用類型只有在脫離作用域后才會銷毀劝堪,基本包裝類型只有在執(zhí)行該代碼時才存在冀自,一旦執(zhí)行完畢就銷毀)

Paste_Image.png

構(gòu)造函數(shù)(有new)與轉(zhuǎn)型函數(shù)(無new)的不同:

Paste_Image.png

String類型:

String對象提供了很多字符串操作的方法:
1.字符串拼接concat()
2.提取部分字符:slice() substring() substr()
3.確定字符串的位置indexOf() lastIndexOf()
4.刪除前后的空格trim()
5.字符串大小寫方法:toLowerCase() toUpperCase() toLocaleLowerCase() toLocaleUpperCase()
6.字符串匹配:match() search() replace() split()
7.字符串比較: localeCompare()

單體內(nèi)置對象

在執(zhí)行代碼之前揉稚,這些對象已經(jīng)存在了。

1.Global對象
eval()方法:解析字符串凡纳,會將字符串當(dāng)作實際的代碼執(zhí)行
eval("console.log(1)") //1
eval()中創(chuàng)建的變量和函數(shù)不會被提升窃植。

Global對象如何訪問:在Web瀏覽器中,Global對象是window對象的一部分荐糜。

2.Math對象:提供完成計算的屬性和方法巷怜。
最大最小max() min()
向上舍入向下舍入四舍五入 ceil() floor() round()
0-1隨機數(shù) random()
產(chǎn)生一個介于[low,up]之間的整數(shù)的函數(shù):

    function selectFrom(low,up){
        var choices=up-low+1;
        return Math.floor(Math.random()*8+2);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市暴氏,隨后出現(xiàn)的幾起案子延塑,更是在濱河造成了極大的恐慌,老刑警劉巖答渔,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件关带,死亡現(xiàn)場離奇詭異,居然都是意外死亡沼撕,警方通過查閱死者的電腦和手機宋雏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來务豺,“玉大人磨总,你說我怎么就攤上這事×ぃ” “怎么了蚪燕?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奔浅。 經(jīng)常有香客問我馆纳,道長,這世上最難降的妖魔是什么汹桦? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任鲁驶,我火速辦了婚禮,結(jié)果婚禮上舞骆,老公的妹妹穿的比我還像新娘灵嫌。我一直安慰自己,他們只是感情好葛作,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布寿羞。 她就那樣靜靜地躺著,像睡著了一般赂蠢。 火紅的嫁衣襯著肌膚如雪绪穆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音玖院,去河邊找鬼菠红。 笑死,一個胖子當(dāng)著我的面吹牛难菌,可吹牛的內(nèi)容都是我干的围段。 我是一名探鬼主播精盅,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蕊肥?” 一聲冷哼從身側(cè)響起勾习,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤轧坎,失蹤者是張志新(化名)和其女友劉穎股耽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褐健,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡付鹿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚜迅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舵匾。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谁不,靈堂內(nèi)的尸體忽然破棺而出纽匙,到底是詐尸還是另有隱情,我是刑警寧澤拍谐,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站馏段,受9級特大地震影響轩拨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜院喜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一亡蓉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喷舀,春花似錦砍濒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拿愧,卻和暖如春杠河,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工券敌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唾戚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓待诅,卻偏偏與公主長得像叹坦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卑雁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容