您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關什么是JavaScript編程,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
值、類型和運算符
A.值
1.為了能夠順利操作非常多的位數(shù)據(jù)而又不引起數(shù)據(jù)丟失,我們可以將這些位劃分成表示不同信息的塊,在JS中,我們將這些數(shù)據(jù)塊稱為值。
2.6種基本的值類型:數(shù)字(number)、字符串(string)、布爾值(boolean)、對象(object)、函數(shù)(function)和未定義類型(undefined)
B.數(shù)字
1.在JS中實際 可存儲的數(shù)字范圍是1900萬億,可以使用帶e(指數(shù))的科學技術法,2.998e8=2.99800000
2.使用小數(shù)時精度不高
3.JS中三個特殊的值:Infinity、-Infinity和NaN,前兩個表示無窮大和負無窮大,NaN表示“非數(shù)值”
C.一元運算符
1.使用兩個值的運算符稱為二元運算符,而使用一個值的則稱為一元運算符。減號運算符即可用作一元運算符,也可用作二元運算符
D.未定義值
1.null和undefined,用于表示無意義的值。它們各自表示其自身含義,除些之外不包含任何信息。
E.自動類型轉換
1.當有些值無法顯式地轉換成數(shù)字(比如“five”或undefined),就會產生NaN。請檢查一下是否發(fā)生了錯誤的類型轉換。
2.||當左側值可以被轉換成true時,會直接返回左側的值,否則會返回右側的值。所以這個符號的這種功能可用于返回默認值。
3.&&當左側的值可以被轉換成false時,&&運算符會返回左側值,不由返回右側值
4.短路計算:||和&&只有必要時才會計算右側的表達式。
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/1.html
程序結構
A.變量
1.變量并不包含值,而是會引用這些值:兩個不同的變量可以引用相同的值。
B.環(huán)境
我們將給定時間內的變量和變量值的集合稱為環(huán)境。
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/2.html
函數(shù)
A.詞法作用域
任何外部作用域都可以訪問到包含它的臂部作用域的變量。函數(shù)內部變量的可見性取決于函數(shù)在代碼當中的位置。在包含了一個函數(shù)定義的代碼塊中,這個函數(shù)可以訪問到代碼塊中的所有變量,即函數(shù)上層的代碼塊中的變量和函數(shù)內部的變量。這種控制變量可見性的方法稱為詞法作用域(lexical scoping)
B.調用棧
每當函數(shù)調用時,當前 的上下文信息就會被存儲在棧頂。而當函數(shù)返回時,系統(tǒng)會刪除存儲在棧頂?shù)纳舷挛男畔?,并使用該信息繼續(xù)執(zhí)行程序
C.閉包
一個包裝了一些局部變量的函數(shù)是一個閉包。
D.遞歸
在標準的JS實現(xiàn)當中,遞歸寫法的函數(shù)執(zhí)行效率比循環(huán)寫法的函數(shù)慢了大約10倍。執(zhí)行簡單的循環(huán)操作比多次函數(shù)調用效率要高很多。若程序處理的概念非常復雜,為了確保程序簡單易懂,犧牲一定效率也的確是一種明智的選擇。除非程序執(zhí)行速度確實太慢,否則先不要關注效率問題。
E.函數(shù)及其副作用
相比于直接產生副作用的函數(shù),產生返回值的函數(shù)則更容易集成到新的環(huán)境當中使用
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/3.html
數(shù)據(jù)結構:對象和數(shù)組
A.JS中兩種最為常用的訪問屬性的方法:使用點(.)和方括號[]。如果使用點,則點之后的部分必須 是一個合法變量名,即直接寫屬性名稱。如果使用方括號,則JS會將方括號中表達式的返回值作為屬性名稱。
B.可以使用in操作符來確定對象中是否包含特定名稱的屬性
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/4.html
高階函數(shù)
A.高階函數(shù)
1.如果一個函數(shù)操作其他函數(shù),即將其他函數(shù)作為參數(shù)或將函數(shù)作為返回值,那么我們可以將其稱為高階函數(shù)。
B.map函數(shù)
Map方法可以對數(shù)組中的每個元素調用函數(shù),然后利用返回值來構建一個新的數(shù)組,實現(xiàn)轉換數(shù)組的操作。
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/5.html
深入理解對象
A.方法
在調用object.method()時,對象中的一個特殊變量this會指向當前方法所屬的對象
B.原型
1.當開發(fā)人員訪問一個對象不包含的屬性時,就會從對象原型中搜索屬性,接著是原型的原型,依此類推??諏ο蟮脑褪荗bject.prototype。
2.許多對象會提供自己通過特殊原型來提供對象自己的默認屬性。函數(shù)繼承自Function.prototype,數(shù)組繼承自Array.prototype等。
3.Object.getPrototypeOf函數(shù)返回的結果是對象原型??梢岳靡粋€特定的原型來使用Object.create方法創(chuàng)建對象
C.構造函數(shù)
1.在JS中,調用函數(shù)之前使用new則表示調用其構造函數(shù)
2.構造函數(shù)中包含了指向新對象的變量this,除非構造函數(shù)顯式地返回了另一個對象的值,否則構造函數(shù)會返回這個新創(chuàng)建的對象
3.通過關鍵字new創(chuàng)建的對象稱之為構造函數(shù)的實例
4.構造函數(shù)其實就是函數(shù),因此其實際原型是Function.prototype,而構造函數(shù)的prototype屬性則是其所創(chuàng)建的實例的原型,而非構造函數(shù)自身的原型
D.覆蓋繼承的屬性
如果原型中存在同名屬性,那么在調用該屬性時,就不會再調用原型中的那個屬性了,轉而調用我們添加到對象中的屬性。但原型本身不會被修改。
E.原型污染
1.可以使用Object.defineProperty函數(shù)定義自己的不可枚舉屬性,該函數(shù)允許我們在創(chuàng)建屬性時控制屬性類型
2.使用對象的hasOwnProperty方法確定自身是否包含某個屬性而不會搜索原型。
F.無原型對象
可以使用Object.create(null)來創(chuàng)建
G.多態(tài)
H.Getter與Setter
I.繼承
instanceof運算符會遍歷所有繼承類型
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/6.html
項目實戰(zhàn):構建電子生態(tài)系統(tǒng)
https://github.com/zhangyue0503/html5js/blob/master/eloquentjs/7.html
以上就是什么是JavaScript編程,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。