什么是JavaScript編程

本篇文章給大家分享的是有關(guān)什么是JavaScript編程,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

北湖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,北湖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為北湖上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的北湖做網(wǎng)站的公司定做!

值、類(lèi)型和運(yùn)算符

A.值

1.為了能夠順利操作非常多的位數(shù)據(jù)而又不引起數(shù)據(jù)丟失,我們可以將這些位劃分成表示不同信息的塊,在JS中,我們將這些數(shù)據(jù)塊稱(chēng)為值。

2.6種基本的值類(lèi)型:數(shù)字(number)、字符串(string)、布爾值(boolean)、對(duì)象(object)、函數(shù)(function)和未定義類(lèi)型(undefined)

B.數(shù)字

1.在JS中實(shí)際 可存儲(chǔ)的數(shù)字范圍是1900萬(wàn)億,可以使用帶e(指數(shù))的科學(xué)技術(shù)法,2.998e8=2.99800000

2.使用小數(shù)時(shí)精度不高

3.JS中三個(gè)特殊的值:Infinity、-Infinity和NaN,前兩個(gè)表示無(wú)窮大和負(fù)無(wú)窮大,NaN表示“非數(shù)值”

C.一元運(yùn)算符

1.使用兩個(gè)值的運(yùn)算符稱(chēng)為二元運(yùn)算符,而使用一個(gè)值的則稱(chēng)為一元運(yùn)算符。減號(hào)運(yùn)算符即可用作一元運(yùn)算符,也可用作二元運(yùn)算符

D.未定義值

1.null和undefined,用于表示無(wú)意義的值。它們各自表示其自身含義,除些之外不包含任何信息。

E.自動(dòng)類(lèi)型轉(zhuǎn)換

1.當(dāng)有些值無(wú)法顯式地轉(zhuǎn)換成數(shù)字(比如“five”或undefined),就會(huì)產(chǎn)生NaN。請(qǐng)檢查一下是否發(fā)生了錯(cuò)誤的類(lèi)型轉(zhuǎn)換。

2.||當(dāng)左側(cè)值可以被轉(zhuǎn)換成true時(shí),會(huì)直接返回左側(cè)的值,否則會(huì)返回右側(cè)的值。所以這個(gè)符號(hào)的這種功能可用于返回默認(rèn)值。

3.&&當(dāng)左側(cè)的值可以被轉(zhuǎn)換成false時(shí),&&運(yùn)算符會(huì)返回左側(cè)值,不由返回右側(cè)值

4.短路計(jì)算:||和&&只有必要時(shí)才會(huì)計(jì)算右側(cè)的表達(dá)式。

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/1.html

程序結(jié)構(gòu)

A.變量

1.變量并不包含值,而是會(huì)引用這些值:兩個(gè)不同的變量可以引用相同的值。

B.環(huán)境

我們將給定時(shí)間內(nèi)的變量和變量值的集合稱(chēng)為環(huán)境。

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/2.html

函數(shù)

A.詞法作用域

任何外部作用域都可以訪問(wèn)到包含它的臂部作用域的變量。函數(shù)內(nèi)部變量的可見(jiàn)性取決于函數(shù)在代碼當(dāng)中的位置。在包含了一個(gè)函數(shù)定義的代碼塊中,這個(gè)函數(shù)可以訪問(wèn)到代碼塊中的所有變量,即函數(shù)上層的代碼塊中的變量和函數(shù)內(nèi)部的變量。這種控制變量可見(jiàn)性的方法稱(chēng)為詞法作用域(lexical scoping)

B.調(diào)用棧

每當(dāng)函數(shù)調(diào)用時(shí),當(dāng)前 的上下文信息就會(huì)被存儲(chǔ)在棧頂。而當(dāng)函數(shù)返回時(shí),系統(tǒng)會(huì)刪除存儲(chǔ)在棧頂?shù)纳舷挛男畔ⅲ⑹褂迷撔畔⒗^續(xù)執(zhí)行程序

C.閉包

一個(gè)包裝了一些局部變量的函數(shù)是一個(gè)閉包。

D.遞歸

在標(biāo)準(zhǔn)的JS實(shí)現(xiàn)當(dāng)中,遞歸寫(xiě)法的函數(shù)執(zhí)行效率比循環(huán)寫(xiě)法的函數(shù)慢了大約10倍。執(zhí)行簡(jiǎn)單的循環(huán)操作比多次函數(shù)調(diào)用效率要高很多。若程序處理的概念非常復(fù)雜,為了確保程序簡(jiǎn)單易懂,犧牲一定效率也的確是一種明智的選擇。除非程序執(zhí)行速度確實(shí)太慢,否則先不要關(guān)注效率問(wèn)題。

E.函數(shù)及其副作用

相比于直接產(chǎn)生副作用的函數(shù),產(chǎn)生返回值的函數(shù)則更容易集成到新的環(huán)境當(dāng)中使用

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/3.html

數(shù)據(jù)結(jié)構(gòu):對(duì)象和數(shù)組

A.JS中兩種最為常用的訪問(wèn)屬性的方法:使用點(diǎn)(.)和方括號(hào)[]。如果使用點(diǎn),則點(diǎn)之后的部分必須 是一個(gè)合法變量名,即直接寫(xiě)屬性名稱(chēng)。如果使用方括號(hào),則JS會(huì)將方括號(hào)中表達(dá)式的返回值作為屬性名稱(chēng)。

B.可以使用in操作符來(lái)確定對(duì)象中是否包含特定名稱(chēng)的屬性

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/4.html

高階函數(shù)

A.高階函數(shù)

1.如果一個(gè)函數(shù)操作其他函數(shù),即將其他函數(shù)作為參數(shù)或?qū)⒑瘮?shù)作為返回值,那么我們可以將其稱(chēng)為高階函數(shù)。

B.map函數(shù)

Map方法可以對(duì)數(shù)組中的每個(gè)元素調(diào)用函數(shù),然后利用返回值來(lái)構(gòu)建一個(gè)新的數(shù)組,實(shí)現(xiàn)轉(zhuǎn)換數(shù)組的操作。

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/5.html

深入理解對(duì)象

A.方法

在調(diào)用object.method()時(shí),對(duì)象中的一個(gè)特殊變量this會(huì)指向當(dāng)前方法所屬的對(duì)象

B.原型

1.當(dāng)開(kāi)發(fā)人員訪問(wèn)一個(gè)對(duì)象不包含的屬性時(shí),就會(huì)從對(duì)象原型中搜索屬性,接著是原型的原型,依此類(lèi)推??諏?duì)象的原型是Object.prototype。

2.許多對(duì)象會(huì)提供自己通過(guò)特殊原型來(lái)提供對(duì)象自己的默認(rèn)屬性。函數(shù)繼承自Function.prototype,數(shù)組繼承自Array.prototype等。

3.Object.getPrototypeOf函數(shù)返回的結(jié)果是對(duì)象原型??梢岳靡粋€(gè)特定的原型來(lái)使用Object.create方法創(chuàng)建對(duì)象

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

1.在JS中,調(diào)用函數(shù)之前使用new則表示調(diào)用其構(gòu)造函數(shù)

2.構(gòu)造函數(shù)中包含了指向新對(duì)象的變量this,除非構(gòu)造函數(shù)顯式地返回了另一個(gè)對(duì)象的值,否則構(gòu)造函數(shù)會(huì)返回這個(gè)新創(chuàng)建的對(duì)象

3.通過(guò)關(guān)鍵字new創(chuàng)建的對(duì)象稱(chēng)之為構(gòu)造函數(shù)的實(shí)例

4.構(gòu)造函數(shù)其實(shí)就是函數(shù),因此其實(shí)際原型是Function.prototype,而構(gòu)造函數(shù)的prototype屬性則是其所創(chuàng)建的實(shí)例的原型,而非構(gòu)造函數(shù)自身的原型

D.覆蓋繼承的屬性

如果原型中存在同名屬性,那么在調(diào)用該屬性時(shí),就不會(huì)再調(diào)用原型中的那個(gè)屬性了,轉(zhuǎn)而調(diào)用我們添加到對(duì)象中的屬性。但原型本身不會(huì)被修改。

E.原型污染

1.可以使用Object.defineProperty函數(shù)定義自己的不可枚舉屬性,該函數(shù)允許我們?cè)趧?chuàng)建屬性時(shí)控制屬性類(lèi)型

2.使用對(duì)象的hasOwnProperty方法確定自身是否包含某個(gè)屬性而不會(huì)搜索原型。

F.無(wú)原型對(duì)象

可以使用Object.create(null)來(lái)創(chuàng)建

G.多態(tài)

H.Getter與Setter

I.繼承

instanceof運(yùn)算符會(huì)遍歷所有繼承類(lèi)型

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/6.html

項(xiàng)目實(shí)戰(zhàn):構(gòu)建電子生態(tài)系統(tǒng)

https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/7.html

以上就是什么是JavaScript編程,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:什么是JavaScript編程
鏈接分享:http://bm7419.com/article8/ijpcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、外貿(mào)建站、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化