對象
什么是對象
對象就是特指的,某一個(gè)。
例如:“天官賜?!边@本書就是個(gè)對象,“原耽”是一個(gè)類,“天官賜福”是包含在這個(gè)類里面的一個(gè)對象
對象里面做一些行為(動(dòng)詞)稱為:方法
JavaScript中的對象分為3種
內(nèi)置對象
自定義對象
瀏覽器對象
創(chuàng)建對象
**對象字面量** 方式創(chuàng)建
**對象字面量:**是封閉在花括號對 `{}` 中的一個(gè)對象的0個(gè)或多個(gè) `鍵:值` 無序列表
**鍵:**相當(dāng)于屬性名
**值:**相當(dāng)于屬性值,可以是任意類型的值(數(shù)值類型、字符串類型、布爾類型,甚至 函數(shù)類型)
對象調(diào)用
對象里面的屬性調(diào)用: ??**對象.屬性名 **
對象里面的屬性另外調(diào)用方式: ??**對象['屬性名']
對象里面的方法調(diào)用:**對象.方法名()
????**函數(shù)和方法的區(qū)別:**
? 函數(shù)是單獨(dú)存在的,調(diào)用的時(shí)候函數(shù)名()就可以了 ??
? 方法是再對象里面,調(diào)用的時(shí)候,對象.方法名() ????
new Object創(chuàng)建對象
new Object()是調(diào)用構(gòu)造函數(shù) ??因?yàn)闃?gòu)造函數(shù)需要new 來調(diào)用 ??同時(shí)再內(nèi)存中創(chuàng)建一個(gè)對象
自定義構(gòu)造函數(shù)
主要用來在創(chuàng)建對象時(shí)初始化對象,即為對象成員變量賦初始值,總與new運(yùn)算符一起使用在創(chuàng)建對象的語句中。
構(gòu)造函數(shù)用于創(chuàng)建某一大類對象,首字母要大寫。
構(gòu)造函數(shù)要和new一起使用才有意義。
new關(guān)鍵字
this詳解
this幾個(gè)特點(diǎn)
函數(shù)在定義的時(shí)候this是不確定的,只有在調(diào)用的時(shí)候才可以確定
一般函數(shù)直接執(zhí)行,內(nèi)部this指向全局window
函數(shù)作為一個(gè)對象的方法,被該對象所調(diào)用,那么this指向的是該對象(誰調(diào)用指向誰)
構(gòu)造函數(shù)中的this對象的實(shí)例 ?
遍歷對象的屬性
for in遍歷 對象
遍歷JSON格式
JSON數(shù)據(jù)的書寫格式是:名稱/值對
里面的屬性和值都要用雙引號括起來
內(nèi)置對象
JS語言自帶的一些對象,供開發(fā)者使用,這些對象提供了一些常用的或是最基本而必要的功能
MDN
Mozilla開發(fā)者網(wǎng)絡(luò)(MDN)提供有關(guān)開放網(wǎng)絡(luò)技術(shù)(Open Web)的信息,包括 HTML、CSS 和萬維網(wǎng)及 HTML5 應(yīng)用的 API。
????Math對象
? Math.random生成隨機(jī)數(shù)
? 隨機(jī)返回一個(gè)小數(shù),取值范圍是范圍[0,1) ?左閉右開 ????0 ?<= x ?< 1? ?
Date對象
? Date()的使用
? 獲取當(dāng)前時(shí)間
? var now = new Date();console.log(now);
? 如果Date()不寫參數(shù),就返回當(dāng)前時(shí)間
? 如果Date()里面寫參數(shù),就返回括號里面輸入的時(shí)間
? 倒計(jì)時(shí)
String對象
? 字符串對象的常用方法
? 根據(jù)位置獲取字符
? charAt(index)
? 返回指定位置的字符(index字符串的索引號)
? str.charAt(0)
? charCodeAt(index)
? 獲取指定位置處字符的ASCII碼 (index索引號)
? str.charCodeAt(0)
? str[index]
? 獲取指定位置處字符
? HTML5,IE8+支持 和charAt()等效
? 字符串操作方法
? concat(str1,str2,str3...)
? concat()方法用于連接兩個(gè)或多個(gè)字符串。拼接字符串,等效于+,+更常用
? substr(start,length)
? 從start位置開始(索引號) , length ?取的個(gè)數(shù) ??重點(diǎn)記住這個(gè)
? slice(start, end)
? 從start位置開始,截取到end位置,end取不到 (他們倆都是索引號)
? substring(start, end)
? 從start位置開始,截取到end位置,end取不到 ??基本和slice 相同 但是不接受負(fù)值
? 獲取字符串位置方法
? indexOf('要查找的字符', 開始的位置)
? 返回指定內(nèi)容在原字符串中的位置,如果找不到就返回-1,開始的位置是index 索引號,從索引值往后找
? lastIndexOf()
? 從后往前找,只找第一個(gè)匹配的,從索引值往前找
? replace()替換
? replace(被替換的字符串, 要替換為的字符串);//只能替換找到的第一個(gè)
? 轉(zhuǎn)換大小寫
? toUpperCase() //轉(zhuǎn)換大寫
? toLowerCase() //轉(zhuǎn)換小寫
? split切割字符串
? 切割完畢之后,返回的是一個(gè)新數(shù)組
Array對象
? 創(chuàng)建數(shù)組對象的兩種方式
? 字面量方式
? new Array()
? 檢測一個(gè)對象是否是數(shù)組
? instanceof
? Array.isArray() ????HTML5中提供的方法,有兼容性問題
? toString()
? 把數(shù)組轉(zhuǎn)換成字符串,逗號分隔每一項(xiàng)跟我們講過的split相反
? 數(shù)組常用方法
? push(參數(shù)1....)
? 修改原數(shù)組,末尾添加一個(gè)或多個(gè)元素
? 并返回新的長度
? shift()
? 把數(shù)組的第一個(gè)元素從其中刪除,把數(shù)組長度減1無參數(shù)
? 并返回第一個(gè)元素的值
? unshift(參數(shù)1...)
? 向數(shù)組的開頭添加一個(gè)或更多元素
? 并返回新的長度
? reverse()
? 顛倒數(shù)組中元素的順序,無參數(shù)
? 該方法會改變原來的數(shù)組
? sort()
? 對數(shù)組的元素進(jìn)行排序
? 該方法會改變原來的數(shù)組
? splice()
? indexOf()
? 數(shù)組添加刪除方法
? pop()
? 刪除數(shù)組的最后一個(gè)元素,把數(shù)組長度減1無參數(shù)
? 返回它刪除的元素的值