傳智播客學習筆記就業班js_第1頁
傳智播客學習筆記就業班js_第2頁
傳智播客學習筆記就業班js_第3頁
傳智播客學習筆記就業班js_第4頁
傳智播客學習筆記就業班js_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、JS 鞏固與加強三js 面向對象目錄JS 鞏固與加強三js 面向對象1一、什么是面向對象3二、在 js 中,有哪些常用的系統類31、字符串類 String42、日期類 Date43、數學類 Math4三、自定義類51) 面向對象中兩個基本概念52) 自定類的定義61、構造器方式62、擴展:Object 方式63) 對象的創建74) 對象的屬性75)屬性可以哪些類型的值?86) js 與 php 類區別小結87) 在 Javascript 中一切都是對象88)面向對象過程中常用的幾個.9四、對象在內存中的形式9五、回收機制11六、this 的使用11七、函數中參數的傳遞方式13八、對象作為返回值

2、14九、對象的遍歷16十、屬性的刪除操作16十一:成員方法17十二:json 對象191、什么是 json192、快速入門193、json 對象的調用?194、深入研究 json 對象,其到底從哪里來?205、如果通過 json 對象保存多個人的信息?206、json 在 php 中的應用211) json_encode(數組或對象)212) json_decode(JSON 對象)227、json 應用場景:23十三、原型鏈231、什么是原型對象232、原型對象的功能?233、原型對象在實際開發中的應用244、思考題245、如何證明構造器與原型對象存在互相指向的關系?256、原型繼承26十四

3、、作業27一、什么是面向對象1、面向2、面向過程3、面向對象咨詢報名繳費分班 上 課function 咨詢() function 報名() function 繳費() common.php咨詢()報名()繳費()高內聚,低耦合咨詢報名繳費classfunction 咨詢() function 報名() function 繳費() $zhangsan = new$zhangsan->咨詢();$zhangsan->報名();$zhangsan->繳費();();二、在 js 中,有哪些常用的系統類1、字符串類 Stringllllll獲取字符串中字符的長度 str=hello獲

4、取某字符在字符串中出現的位置lengthindexOf(string)substr(num1,num2) 字符串的截取,num1 開始位置,num2 結束位置轉化為小寫轉化為大寫字符串替換,str1 代表要替換的字符串,str2 代表替換后的字符toLowerCase()toUpperCase()replace(str1,str2)串2、日期類 Datelllllllll獲取年份(會有兼容性的問題),從 1900 年 1 月 1 日獲取完整年份獲取月份(0-11) 獲取天數(1-31)getYear()getFullYear() getMonth() getDate() getDay()get

5、Hours() getMinutes()getSeconds()獲取幾獲取小時獲取分鐘獲取秒數getMilliseconds() 獲取毫秒數3、數學類 Mathl ceil(數值)l floor(數值)獲取大于或等于該數的最小整數獲取小于或等于該數的最大整數19.98llllllmin(數值 1,數值 2) 返回最小數max(數值 1,數值 2) 返回最大數pow(數值 1,數值 2) 返回數值 1 的數值 2 次方pow(2,2)4返回隨機數(0-1)四舍五入random()round(數值) sqrt(數值)返回平方根 164class() static $count;.count;Mat

6、h.ceil()注:Math 下面所有屬性和方法都是靜態的。三、自定義類1)面向對象中兩個基本概念類:某類事物的描述(抽象)對象:某個事物的描述(具體)2)自定類的定義1、構造器方式function 類名() 在 js 中是沒有類的定義語句的(如 class),那么在 js 中,當我們定義一個函數,系統會默認該函數為同名類下的構造函數,我們也可以把這個函數稱之為構造器。以上例子說明,當我們創建一個構造函數,我們也可以稱之為函數時,系統會默認認為,該函數是的構造器類下的2、擴展:Object 方式基類:Objectvar 對象名 = new Object();3)對象的創建var 對象名 = n

7、ew 類名();4)對象的屬性1)通過對象名.屬性調用類的屬性2)還可以通過文本下標的方式進行調用var arr = new Array();arr0 = zhangsan;arr1 = lisi;arrfirst = wangwu;arrsecond = zhaoliu;5)屬性可以哪些類型的值?l數字l字符串l值l對象window.document.getElementById5、創建對象時,我們的構造器主要做了那些事?1)在內存中(堆內存)開辟空間2)調用同名類下的構造函數6)js 與 php 類區別小結在 php 中定義類,采用的是類的語法(class)在 js 中定義類,采用的是 f

8、unction 類名() ,創建同名類下面的構造函數的方式進行創建7)在 Javascript 中一切都是對象/調用 Number 對象var num = 10;var str =hello;/調用 String 對象/調用類型的對象var flag = true;(); /自定義創建對象var per = newstr.lengthstr.substr();8)面向對象過程中常用的幾個lconstructor:調用對象的構造器alert( p.constructor );ltypeof:類型alert( typeof p );l);instanceof:某個對象是否屬于某個類alert( p

9、 instanceof四、對象在內存中的形式思考題 1:如果創建第二個對象,會擁有 name 和 age 屬性嗎?var p1 = new(); = zhangsan;p1.age = 30;var p2 = new();思考題 2:如果創建第二個對象 p2,使用 p1 為 p2 賦值會怎樣?var p1 = new(); = zhangsan;p1.age = 30;var p2 = p1;思考題 3:如果刪除了 p2 對象,是否會影響到 p1 對象p2 = null;五、回收機制計數器六、this 的使用在 php 中,this 指向哪里?答:誰調用當前類,那么

10、類中的 this 就指向“誰”class$name;$age;public function($name,$age) $this->name = $name;$this->age = $age;$p = new();1、在 js 中,誰調用構造器,那么構造器內部的 this 指針就指向“誰”。2、如果不同對象調用不同的值,如何改進?3、深入理解this 指針function test()this.i=100;i=10;test();alert(this.i);:4、在 js 全局變量作用域中,this 指向 window 對象this.i=window.i七、函數中參數的傳遞方式值

11、傳遞傳遞1、函數形參值的改變,影響實參2、對象作為參數進行傳遞以上例子結果總結:函數形參值的改變,影響實參(對象傳值例外)八、對象作為返回值思考:函數的返回值結果是一個還是多個,如果通過函數返回多個結果?例 2:實際應用:如何通過對象作為返回值,返回一個函數的四則運算?display(200,100);返回:相加:300相減:100 相乘:20000 相除:2示例代碼:九、對象的遍歷p.agearrnamearrageforin以上代碼中通過 p1.i 無法調用當前對象的屬性,:通過點號調用對象的屬性,那么 p1.i相當于調用 p1 對象下的 i 屬性,由于在 p1 對象無法找到

12、i 屬性,所以結果為 undefined。例 2、如果我不知道 document 對象下有哪些常用的屬性和方法,怎么辦?示例代碼:十、屬性的刪除操作語法:delete 對象名.屬性示例代碼:十一:成員方法例 1:創建兩個對象,擁有 name 和 age 屬性,代碼如下:例 2:如何為當前兩個對象添加 speak 說話的方法。例 3:可不可以把 speak 方法抽象出來。例 4:可不可以在創建對象的過程中,直接調用 speak 方法?2、方法在內存中的表現形式十二:json 對象1、什么是 jsonlll對象是指屬性的無序集合所謂“集合”是指名/值對的集合 在 js 中,可以使用來表示這個集合2

13、、快速入門1) 基本語法采用代表標識符2) 同一 json 對象可以有多個屬性,且屬性是無序的3) 屬性與屬性之間是通過逗號隔開的4) 屬性名與屬性值之間是通過冒號分割的5)屬性名可以采用號、號或不加引號,三種方式6)屬性值如果是字符串,要采用或引起來,數字可以不加引號3、json 對象的調用?調用語法:對象名.屬性的方式完成對 json 對象的調用。4、深入研究 json 對象,其到底從哪里來?json 是一個對象,是 Object 類的一個對象。Object 是所有 js 類中的基類json 對象主要是用來保存大數據或復雜數據的5、如果通過 json 對象保存多個人的信息?1)案例: zh

14、angsan wangcaixiaoqiang232527zswc xq2)那么如何去調用相應的成員的信息呢?3)如何去遍歷當前 json 對象6、json 在 php 中的應用1)json_encode(數組或對象)返回的結果是一個 String 字符串。2)json_decode(JSON 對象)數組的:json_decode(JSON 對象,true) 索引數組加不加 true 參數,數組后都是一個數組如果是關聯型數組,如果添加 true,那么后就是一個數組,未添加時將是一個對象。對象的:json_decode(JSON 對象,true) 如果采用的對象方式,那么回一個 array 數組

15、,不加 true 將返回一個 object 對象后的效果,如果加 true,將返json_encode 對中文的支持不是特別好,只能支持 utf-8 編碼格式,如果是 gb2312,中文將顯示為 null擴展:歷史上的今天API 接口通過 json 方式進行輸出顯示聚合數據:7、json 應用場景:1、Ajax2、網上常用的 API 接口(xml/json)十三、原型鏈1、什么是原型對象當我們加載一個函數構造器,會自動在內存創建一個對象,我們把這個對象就稱之為原型對象。在構造中,存在一個 prototype 的屬性,該屬性指向原型對象中,也存在一個屬性 constructor,指向我們的的原型

16、對象,同樣,在構造器。2、原型對象的功能?當我們通過構造器或構造函數創建一個對象后,為其屬性進行,當我們調用對象的某一個屬性時,其首先在對象內部尋找該屬性,如果尋找不到,那么將到該構造器的原型對象中去尋找。3、原型對象在實際開發中的應用比如:我們以后調用的一些函數或方法都是預先定義好的,但是我發現該函數或內容無法滿足需求,有兩個解決辦法:1) 去源代碼修改相應的屬性或方法(不建議)2) 通過原型對象自動創建附加屬性或方法。示例代碼:4、思考題思考 1:p1.address = 廣州傳智播客;.prototype.address = 廣州傳智播客;兩種添加方式有哪些不同?思考 2:如果我在創建一

17、個對象 p2,那么 p2 會自動繼承 address 屬性。5、如何證明的關系?構造器與原型對象存在互相指向6、prototype 原型對象到底是哪個類的實例,從哪里來? 當我們創建 prototype 對象的過程中,會執行以下操作:(.prototype) = new Object();首先,當對象調用某一屬性時,首先在自身空間內尋找,如尋找不到將到原型對象中去尋找,如果還找不到,那么就到 Object 基類的原型對象去尋找該屬性,我們把這個過程稱之為原型鏈,那么怎么去證明這個現象呢?6、原型繼承(.prototype) = new Object();從以上結論可知:原型對象是 Object 類的一個實例或對象,那么從類的繼承角度,原型對象將繼承 Object 類下面的所有屬性和方法,那么我們把這個過程就稱之為原型繼承。怎么去證明

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論