日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

javascript高级程序设计--笔记01

發(fā)布時(shí)間:2024/9/5 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript高级程序设计--笔记01 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

JavaScript的實(shí)現(xiàn)包含三個(gè)部分:

  1? 核心(ECMAScript)?? 提供核心語(yǔ)言功能

  2? 文檔對(duì)象模型(DOM)? 一套提供了訪問(wèn)以及操作網(wǎng)頁(yè)內(nèi)容的API

  3? 瀏覽器對(duì)象模型(BOM)? 一套提供了與瀏覽器交互的API

?

  ECMAScript僅僅定義了這門語(yǔ)言的基礎(chǔ),如定義了:語(yǔ)法、類型、語(yǔ)句、關(guān)鍵字等,實(shí)際上這門語(yǔ)言本身不包含輸入輸出定義。

  而現(xiàn)實(shí)中,ECMAScript大多借用了某些宿主環(huán)境(如web瀏覽器,Node,Adobe Flash)來(lái)實(shí)現(xiàn)豐富的功能,這些宿主環(huán)境不僅提供了基本的ECMAScript實(shí)現(xiàn),還提供了該語(yǔ)言的擴(kuò)展(DOM? BOM都是擴(kuò)展之一),這些擴(kuò)展利用ECMAScript的語(yǔ)法等提供更多具體的功能。

  通過(guò)DOM,將html頁(yè)面映射為一個(gè)多層的節(jié)點(diǎn)結(jié)構(gòu):整個(gè)html是一個(gè)根節(jié)點(diǎn),根節(jié)點(diǎn)下分為head和body子節(jié)點(diǎn),這兩個(gè)子節(jié)點(diǎn)下的所有html標(biāo)簽都是一個(gè)又一個(gè)的子標(biāo)簽節(jié)點(diǎn)……? 通過(guò)使用DOM提供的屬性或者方法我們可以快速鎖定到每一個(gè)我們想要鎖定的節(jié)點(diǎn)。

  BOM則負(fù)責(zé)處理瀏覽器窗口和框架,如:? 彈出瀏覽器窗口,移動(dòng)、縮放、關(guān)閉瀏覽器窗口,cookies支持等等

?

?

ECMAScript

--------------------------------------------------------<<<<<<基本概念>>>>>>---------------------------------------------------------------

語(yǔ)法注意事項(xiàng)

  1? 區(qū)分大小寫

  2? 標(biāo)識(shí)符,如變量名,函數(shù)名,屬性名等第一個(gè)字符必須是字母或者下劃線或者美元符,其余可以為數(shù)字、字母、下劃線、美元符

  3? 單行注釋為 //?????????? 多行注釋為? /*?? 注釋內(nèi)容?? */

  4? 建議將語(yǔ)句使用 分號(hào)? ;? 隔開(kāi)

  5? 具有嚴(yán)格模式? 'use strict'

變量

  1? 松散類型,可以保存任何類型的數(shù)據(jù)。

  2? 定義變量時(shí),建議使用? var 關(guān)鍵字進(jìn)行聲明或初始化。不用 var 關(guān)鍵字的變量為全局變量。解釋器會(huì)率先讀取使用var聲明的變量(變量提升)

  ??? var? name = 'mncu' , age = 88 ;?? 定義多個(gè)變量時(shí)使用逗號(hào)分隔

數(shù)據(jù)類型

  共有六種

    包括5種簡(jiǎn)單數(shù)據(jù)類型,分別是:? Undefined??? Null?? Boolean?? Number?? String??

    和 1 種復(fù)雜數(shù)據(jù)類型:Object,而Object類型還有許多'子'類型,比如:Array? Date ……

  1? 判斷數(shù)據(jù)類型時(shí),可以使用typeof()? 或者 typeof

var a = 'hello' typeof a //"string" typeof(a) //"string"
// 數(shù)據(jù)類型 typeof()后返回的值
/* Undefined ---> undefined
* Null ---> object
* Boolean ---> boolean
* Number ---> number
* String ---> string
* Object ---> object
* 函數(shù) ---> function
*/

  2? Null類型,值為null,表示一個(gè)空對(duì)象指針(所以typeof(null)才會(huì)返回object) .

  3? Boolean類型,值為true或者false,可使用Boolean()函數(shù)將任意值轉(zhuǎn)換為對(duì)應(yīng)的Boolean值

    -? 數(shù)字0和NaN,空字符串,null,undefined? ------經(jīng)過(guò)Boolean()函數(shù)轉(zhuǎn)換-------->? false

    -? 其他為 true

    -? Boolean存在基本包裝類型,存在基本包裝類型的目的是為了方便操作基本類型。基本包裝類型屬于引用類型,' 基類 '為Object。

       同時(shí),基本包裝類型對(duì)應(yīng)于基本類型,每當(dāng)讀取一個(gè)基本類型時(shí),都會(huì)在后臺(tái)創(chuàng)建一個(gè)對(duì)應(yīng)的基本包裝類型實(shí)例,基本包裝類型有        許多屬性和方法,然后我們就可以使用這些方法對(duì)基本包裝類型進(jìn)行操作,基本包裝類型的值會(huì)映射到基本類型中。當(dāng)我們操作完        成后,基本包裝類型的實(shí)例會(huì)被刪除。

?

       如果上段話沒(méi)看懂的話,不要緊,只需要知道在javascript中Boolean類型也有屬性以及方法就行了。

?

  4? Number類型

    -? NaN? : Not a Number? 非數(shù)值類型

    -? 可使用Number()函數(shù)將其他類型轉(zhuǎn)換為數(shù)字類型,轉(zhuǎn)換規(guī)則:

/* true ---> 1* false ---> 0* null ---> 0* undefined ---> NaN* 轉(zhuǎn)換字符串時(shí),若字符串中只包含數(shù)字,則轉(zhuǎn)換為數(shù)字,否則轉(zhuǎn)換為NaN,空字符串轉(zhuǎn)換為0* 轉(zhuǎn)換對(duì)象時(shí),則調(diào)用該對(duì)象的valueOf()方法,對(duì)該方法返回的值進(jìn)行轉(zhuǎn)換*/

    -? parseInt()函數(shù)比Number()函數(shù)在轉(zhuǎn)換字符串時(shí)更合理,所以推薦使用該函數(shù),規(guī)則如下:

/* 忽略字符前的空格,若第一個(gè)非空字符不是數(shù)字或者負(fù)號(hào),則返回NaN,若第一個(gè)* 非空字符串是數(shù)字,則向后解析,直到碰到第一個(gè)非數(shù)字字符。*/ // parseInt()函數(shù)可以接受第二個(gè)參數(shù),用來(lái)明確指定基數(shù)。建議明確指定基數(shù) parseInt('22dkfj') // 22 parseInt('22.5') // 22,轉(zhuǎn)換為整形 parseInt('070',8) // 八進(jìn)制轉(zhuǎn)換 parseInt('0x23') // 十六進(jìn)制轉(zhuǎn)換

    - ?parseFloat()? 轉(zhuǎn)換為浮點(diǎn)型,規(guī)則同上

    -? Number類型也存在基本包裝類型

//Number的基本包裝類型的方法// 方法//toFixed(num) 將數(shù)字轉(zhuǎn)換為字符格式,若指定num,則按照指定的num返回?cái)?shù)字的小數(shù)位格式var a = 2;a.toFixed(2); // '2.00'//toExponential(num) 類似于toFixed(),返回?cái)?shù)字的指數(shù)字符串格式a.toExponential(); //'2e+0'//不建議直接實(shí)例化Number類型,因?yàn)樵谑褂胻ypeof 和 instanceof測(cè)試基本類型與引用類型,結(jié)果不同var b = new Number(2);alert(typeof b); // 'object'alert(typeof a); // 'number'alert(b instanceof Number ); // falsealert(a instanceof Number ); // true

?

?

  5? String類型

    -? 使用toString()轉(zhuǎn)換為字符串

// 布爾,數(shù)值,對(duì)象,字符串類型都有 toString()方法 。 Null Nndefined 類型無(wú)此方法 var a = 21; a.toString(); // '21' a = true; a.toString() // "true"

    -? 使用String()轉(zhuǎn)換為字符串

String(null) //"null" String(undefined) //"undefined"

    -? String存在基本包裝類型

str.length          返回字符串長(zhǎng)度str.charAt(index)       返回str索引為index數(shù)值的單個(gè)字符,index為空則默認(rèn)為0,沒(méi)有找到返回空字符串;str.charCodeAt(index)    返回str索引為index數(shù)值的單個(gè)字符的unicode(統(tǒng)一碼),index為空則默認(rèn)為0,沒(méi)有找到返回NaN;str1.concat(str2)       字符串連接,兩個(gè)字符串連接用空格隔開(kāi),返回新連接的字符串;str.indexOf(str1)       返回子字符串str1在查找字符串str中第一次出現(xiàn)的位置,沒(méi)有找到則返回-1,; str1.localeCompare(str2)   判定兩個(gè)字符串排序,如果str1排在str2,之前那么返回-1,之后返回1,相等返回0;str.match(regexp)       在str中匹配正則,以數(shù)組形式返回匹配到的字符串;str.replace(old,new)     在字符串str中查找old字符串(可以是正則),用new字符串來(lái)替換;返回替換后的新字符串;str.search(str1)        在字符串str中查找str1,返回第一次出現(xiàn)str1的位置,沒(méi)有找到返回-1;str.slice(start,end(可選)) 返回start和end數(shù)值下標(biāo)之間的字符串.end為空返回start后全部字符串;str.split(" ")         把str用split方法中的符號(hào)為間隔切割字符串返回一個(gè)數(shù)組;可以使用正則patternstr.substr(start,length(可選))返回以start下標(biāo)開(kāi)始以length為長(zhǎng)度之間的字符串,若length為空,則返回下標(biāo)后得全部字符 串;str.substring(start,end)    一個(gè)參數(shù)的話返回下標(biāo)后所有字符串,兩個(gè)參數(shù)的話,以小的為開(kāi)始以大的為結(jié)束,返回量下標(biāo)之間的字符 串 ;str.toString()          把str或obj返回字符串對(duì)象;str.trim()            除去str兩端的空格,返回去空格的字符串,不支持IE8及前面版本; str.valueOf()           返回str原始值;str.toUpperCase()        把str字母全部轉(zhuǎn)成大寫;str.toLowerCase()        把str字母全部轉(zhuǎn)成小寫; str.toLocaleUpperCase()    以本地方式把str字母全部轉(zhuǎn)換成大寫;str.toLocaleLowerCase()    以本地方式把str字母全部轉(zhuǎn)換成小寫;

  6? Object類型?

    -? 定義一個(gè)對(duì)象:? var obj = new Object()

    -? Object是幾乎所有類型的基礎(chǔ),因此所有對(duì)象都共享Object的屬性與方法。列出兩個(gè)常見(jiàn)的Object方法:

      valueOf()

      toString()

  6.1? Array類型

    與Python中的list類似,Array是一個(gè)? 可存儲(chǔ)任意類型? 數(shù)據(jù)的? 有序? 列表。

    來(lái)看看該對(duì)象的屬性以及方法。

//創(chuàng)建----------------------------------- /* 創(chuàng)建分為兩種方式* 1 使用構(gòu)造函數(shù)* 2 使用字面量*/var a = new Array(); // 第一種方式,創(chuàng)建一個(gè)空的數(shù)組a = []; // 第二種方式,創(chuàng)建一個(gè)空的數(shù)組//屬性----------------------------------a = [1,'df',true];//1 獲取數(shù)組的長(zhǎng)度r = a.length; // 3//請(qǐng)注意,直接給Array的length賦一個(gè)新的值會(huì)導(dǎo)致Array大小的變化a.length = 2; // a:[1, "df"]//方法----------------------------------//----------操作方法// concat() 連接 一個(gè)參數(shù):數(shù)組// slice() 切片 兩個(gè)參數(shù):開(kāi)始索引,結(jié)束索引// splice() 參數(shù):指定起始索引,從該索引開(kāi)始刪除的項(xiàng)數(shù),要插入的項(xiàng)1,要插入的項(xiàng)2 ……a = [1,2,3];var r = a.concat([4,5]); // r: [1,2,3,4,5] a:[1,2,3] a = [1,2,3];a.slice(1,2); // 從索引1開(kāi)始到索引2結(jié)束,但不包括2 [2]a.slice(1); // 從索引1開(kāi)始到最后 [2,3]a.slice(); // 從頭至尾 [1,2,3] a = [1,2,3,4,5];a.splice(1,2); //返回刪除的項(xiàng)組成的數(shù)組[2,3] a:[1,4,5]a.splice(1,0,2.1,2.2); //返回[] a:[1, 2.1, 2.2, 4, 5]//----------棧方法,先進(jìn)后出。// pop() 刪除最后一個(gè)元素// push() 在數(shù)組后添加若干元素 多個(gè)參數(shù):a.push(4,5); // 返回?cái)?shù)組的長(zhǎng)度 a: [1,2,3,4,5]a.pop(); // 返回刪除的元素, a: [1,2,3,4]//---------隊(duì)列方法,先進(jìn)先出。//shift() 刪除頭部元素//unshift() 在頭部添加元素a = [1,2,3];a.shift(); // 返回刪除的元素 a: [2,3] , 若數(shù)組為空,則返回undefineda.unshift(4,5); // 返回?cái)?shù)組長(zhǎng)度 a: [4,5,1,2,3]//---------重排序方法//reverse() 反轉(zhuǎn)//sort() 排序,默認(rèn)按照升序排序,可接收一個(gè)比較函數(shù)作為參數(shù),比較函數(shù)接收兩個(gè)參數(shù),// 若第一個(gè)參數(shù)應(yīng)該位于第二個(gè)參數(shù)之前,則返回負(fù)數(shù);……之后,則返回正數(shù);// 若相等,則返回0a = [1,2,3];a.reverse(); // a: [3,2,1]a.sort(); // 返回 [1,2,3]a.sort(function(v1,v2){return v2 - v1;}); // 返回[3,2,1]//----------位置方法//indexOf() 兩個(gè)參數(shù):要查找的項(xiàng),表示查找位置起點(diǎn)的索引a = [1,2,3];a.indexOf(2); //返回1
a.indexOf(3); // 返回 -1,如果要檢索的字符串值沒(méi)有出現(xiàn),則該方法返回 -1。
//----------轉(zhuǎn)換方法//join() 它把當(dāng)前Array的每個(gè)元素都用指定的字符串連接起來(lái),然后返回連接后的字符串a = [1,2,3];a.join('-'); //返回"1-2-3"//----------迭代方法//一共5個(gè),都接受兩個(gè)參數(shù):函數(shù),運(yùn)行該函數(shù)的作用域?qū)ο?/span>//every() 對(duì)每一項(xiàng)運(yùn)行給定函數(shù),若每項(xiàng)都返回true,則返回true// filter() 對(duì)每一項(xiàng)運(yùn)行給定函數(shù),返回函數(shù)返回true的項(xiàng)數(shù)// forEach() 對(duì)每一項(xiàng)運(yùn)行給定函數(shù),無(wú)返回值// map() 對(duì)每一項(xiàng)運(yùn)行給定函數(shù),返回每次含數(shù)調(diào)用的結(jié)果組成的數(shù)組// some() 對(duì)每一項(xiàng)運(yùn)行給定函數(shù),若有一項(xiàng)項(xiàng)返回true,則返回truea = [1,2,3];a.every(function(v1){return v1 >= 2;}); //返回 falsea.filter(function(v1){return v1 >= 2;}); //返回[2,3]a.map(function(v1){return v1 >= 2;}); //返回[false,true,true]a.some(function(v1){return v1 >= 2;}); //返回true//------------縮小方法//reduce() 支持兩個(gè)參數(shù):函數(shù),初始值//第一次運(yùn)行時(shí),將數(shù)組的第一個(gè)元素作為參數(shù)一,第二個(gè)元素作為參數(shù)二;//第二次運(yùn)行時(shí),將第一次運(yùn)行的結(jié)果作為參數(shù)一,第三個(gè)元素作為參數(shù)二,以此類推。a = [1,2,3];a.reduce(function(v1,v2){return v1 + v2;}); //返回6

?

?

?  6.2? Date類型

    在說(shuō)明Date類型之前,我們來(lái)說(shuō)一下時(shí)間戳的概念:

    時(shí)間戳是個(gè)什么東西?時(shí)間戳是一個(gè)自增的整數(shù),它表示從1970年1月1日零時(shí)整的GMT時(shí)區(qū)開(kāi)始的那一刻,到現(xiàn)在的毫秒數(shù)。假設(shè)瀏覽器所在電腦的      時(shí)間是準(zhǔn)確的,那么世界上無(wú)論哪個(gè)時(shí)區(qū)的電腦,它們此刻產(chǎn)生的時(shí)間戳數(shù)字都是一樣的,所以,時(shí)間戳可以精確地表示一個(gè)時(shí)刻,并且與時(shí)區(qū)      無(wú)關(guān)。

//獲取當(dāng)前時(shí)間 //注意,當(dāng)前時(shí)間是瀏覽器從本機(jī)操作系統(tǒng)獲取的時(shí)間,所以不一定準(zhǔn)確,因?yàn)橛脩艨梢园旬?dāng)前時(shí)間設(shè)定為任何值。var now = new Date();// 創(chuàng)建指定日期和時(shí)間的Date對(duì)象var d = new Date(2015, 5, 19, 20, 15, 30, 123);d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)// 創(chuàng)建指定日期的時(shí)間戳var d = Date.parse('2015-06-24T19:49:22.875+08:00');d; // 1435146562875var d = new Date(1435146562875); //根據(jù)時(shí)間戳創(chuàng)建Date對(duì)象// 方法now; // Thu Oct 13 2016 21:05:16 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)now.getFullYear(); // 2016, 年份now.getMonth(); // 9, 月份,注意!!月份范圍是0~11,9表示10月now.getDate(); // 13, 表示13號(hào)now.getDay(); // 4, 表示星期4now.getHours(); // 21, 24小時(shí)制now.getMinutes(); // 05, 分鐘now.getSeconds(); // 16, 秒now.getMilliseconds(); // 875, 毫秒數(shù)now.getTime(); // 1476363916265, 以number形式表示的時(shí)間戳//Date對(duì)象表示的時(shí)間總是按瀏覽器所在時(shí)區(qū)顯示的,不過(guò)我們既可以顯示本地時(shí)間, // 也可以顯示調(diào)整后的UTC時(shí)間:now.toLocaleString(); // "2016/10/13 下午9:05:16",本地時(shí)間(北京時(shí)區(qū)+8:00),顯示的字符串與操作系統(tǒng)設(shè)定的格式有關(guān)now.toUTCString(); // "Thu, 13 Oct 2016 13:05:16 GMT",UTC時(shí)間,與本地時(shí)間相差8小時(shí)

?

?

  6.3? RegExp類型

    正則表達(dá)式----一種強(qiáng)悍的匹配字符串的武器

/*創(chuàng)建 *分為兩種方式: * 1 字面量 * 2 使用構(gòu)造函數(shù) *//* 使用字面量創(chuàng)建的格式為: var expression = /pattern/flags ;* 使用構(gòu)造函數(shù)進(jìn)行創(chuàng)建的格式: var expression = new RegExp('pattern','flags')* flags:* g: 全局模式,將pattern應(yīng)用于所有字符串,而非在發(fā)現(xiàn)第一個(gè)字符串時(shí)停止* i: 不區(qū)分大小寫* m: 多行模式** pattern:* 模式中所使用的所有元字符必須轉(zhuǎn)義* \d 匹配一個(gè)數(shù)字* \w 匹配一個(gè)數(shù)字或者字母* \s 匹配一個(gè)空格* . 匹配任意一個(gè)字符** [a-z] 匹配任意一個(gè)a-z之間的字符* [amn] 匹配任意一個(gè)a或者m或者n* a|A 匹配a或者A* \\ 特殊字符需要進(jìn)行轉(zhuǎn)義,也就是添加一個(gè)反斜杠\* 特殊字符包括: - + { } [ ] \ | . ( ) ^ $ ? _** * 匹配前面的字符任意次* + 匹配前面的字符一次或者多次* ? 匹配前面的字符0次或1次* {n} 匹配前面的字符n次* {n,m} 匹配前面的字符n-m次** ^ 匹配行首* $ 匹配行尾*/var re1 = /ABC\-001/;var re2 = new RegExp('ABC\\-001');// 因?yàn)闃?gòu)造函數(shù)傳入的pattern是字符串,所以需要雙重轉(zhuǎn)義 re1; // /ABC\-001/re2; // /ABC\-001//* 方法* 存在兩個(gè)方法:* 1 exec() 接受一個(gè)參數(shù),也就是將要應(yīng)用模式的字符串,然后返回第一個(gè)匹配信息的數(shù)組,* 若沒(méi)有匹配項(xiàng),則返回null。全局標(biāo)識(shí) g 對(duì)該方法無(wú)效。* 返回的數(shù)組是一個(gè)array,且包含兩個(gè)額外的屬性:index input* index: 匹配項(xiàng)在字符串中的位置 input:應(yīng)用正則的字符串* 2 text() 接受一個(gè)字符串餐宿,若匹配則返回true,否則返回false*/

?

?

?

操作符

  1? 一元操作符

    -? 遞增和遞減,仿照C中的++? --

    -? 一元加和減

+true // 1 +'01' // 1 +'undefined' // NaN +null // 0

  2? 布爾操作:

    非? :? !

    與? :? &&

    或? :? ||

  3? 乘性操作符???

    *?? 乘

    /?? 除

    %? 求模

  4? 加性操作符(拼接)

    var? a = 'hello' + 'world' ? ? //hello world

    拼接優(yōu)先級(jí)高于一元加,下面來(lái)兩個(gè)小例子,自己試驗(yàn)一下,想一想為什么是這個(gè)結(jié)果吧。

var foo = "11"+2-"1"; console.log(foo); console.log(typeof foo); // 111var foo = "11"+2+"1"; //體會(huì)加一個(gè)字符串'1' 和 減去一個(gè)字符串'1'的不同 console.log(foo); console.log(typeof foo); //1121

  5? 關(guān)系操作符

    <? >? <=? >=

    注意事項(xiàng):?

     ? 1? 兩個(gè)字符串進(jìn)行比較時(shí),比較兩個(gè)字符串中的第一個(gè)字符對(duì)應(yīng)的字符編碼值,若相等則比較第二個(gè)字符……以此類推

     ? 2? 一個(gè)字符串(或布爾)一個(gè)數(shù)值進(jìn)行比較時(shí),關(guān)系操作符傾向于將比較的值轉(zhuǎn)換為數(shù)字類型

     ?  2.1---當(dāng)字符串無(wú)法轉(zhuǎn)換為合法的數(shù)字時(shí),將字符串轉(zhuǎn)換為NaN(not a number),NaN與任何操作數(shù)比較,結(jié)果都是false(包括它自己)。

'10' < '5' // true 注意事項(xiàng) 1 '10' < 5 // false 注意事項(xiàng) 2
'a' < 5 // false 注意事項(xiàng) 2.1
'a' >= 5 //false 注意事項(xiàng) 2.1

  6? 相等操作符

    ==? 不全等,只要數(shù)值相等即可,類型可以不等 ?? 1 == ‘1’ ? // true

    ===? 全等 ,數(shù)值與類型必須相等。建議使用全等

  條件操作符

    variable = boolean_expression ? true_value : false_value ;

    當(dāng)boolean_expression為true時(shí),variable值為true_value,反之則為false_value

?

?

函數(shù)

  function? function_name(arg1,arg2...){?? }

    -? 參數(shù)只提供便利,非必需。

    - ECMAScript 不介意傳入多少個(gè)參數(shù),也不在乎傳入的參數(shù)是什么類型

    - 函數(shù)無(wú)重載

    - 解釋器會(huì)率先讀取使用function聲明的函數(shù)(函數(shù)提升)

    - 函數(shù)名是變量,函數(shù)也可以作為值使用

    - 函數(shù)具有內(nèi)部屬性 arguments 和 this

      arguments 是一個(gè)包含當(dāng)前函數(shù)參數(shù)的類數(shù)組對(duì)象

      this引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對(duì)象,比如:在全局中調(diào)用函數(shù),則this引用的是window對(duì)象。

    - 函數(shù)的屬性

      FunctionName.length ? 函數(shù)希望接受的參數(shù)的個(gè)數(shù)

      FunctionName.prototype? 指向函數(shù)的原形對(duì)象

    - 函數(shù)的方法

      apply()? call()? 在特定的作用域中調(diào)用本函數(shù),實(shí)際上就是定義this的值。

?

轉(zhuǎn)載于:https://www.cnblogs.com/MnCu8261/p/5950850.html

總結(jié)

以上是生活随笔為你收集整理的javascript高级程序设计--笔记01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。