數(shù)據(jù)是JavaScript中最常用的數(shù)據(jù)類型之一,它屬于對(duì)象中的內(nèi)建對(duì)象。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)修武免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
JavaScript提供多個(gè)內(nèi)建對(duì)象,比如String、Date、Array等等。對(duì)象只是帶有屬性和方法的特殊數(shù)據(jù)類型。就如java中有基本數(shù)據(jù)類型與對(duì)象數(shù)據(jù)類型,對(duì)象數(shù)據(jù)類型中除了存儲(chǔ)值以外,還存儲(chǔ)了其他屬性及方法,如:varmessage="HelloWorld!";varx=message。
運(yùn)行模式
JavaScript是一種屬于網(wǎng)絡(luò)的高級(jí)腳本語(yǔ)言,已經(jīng)被廣泛用于Web應(yīng)用開發(fā),常用來(lái)為網(wǎng)頁(yè)添加各式各樣的動(dòng)態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過(guò)嵌入在HTML中來(lái)實(shí)現(xiàn)自身的功能的。
是一種解釋性腳本語(yǔ)言(代碼不進(jìn)行預(yù)編譯)主要用來(lái)向HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)頁(yè)面添加交互行為。 可以直接嵌入HTML頁(yè)面,但寫成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離。
隨著互聯(lián)網(wǎng)編程開發(fā)技術(shù)的不斷發(fā)展,關(guān)于軟件編程的框架和庫(kù)的種類也在不斷的增加。
今天我們就一起來(lái)了解一下,常見的JavaScript編程開發(fā)都有哪些庫(kù)。
1、ReactJS(Star:59989,Fork:10992)React.js(React)是一個(gè)用來(lái)構(gòu)建用戶界面的JavaScript庫(kù),主要用于構(gòu)建UI,很多人認(rèn)為React是MVC中的V(視圖)。
React起源于Facebook的內(nèi)部項(xiàng)目,用來(lái)架設(shè)Instagram的網(wǎng)站,并于2013年5月開源。
React擁有較高的性能,代碼邏輯非常簡(jiǎn)單,越來(lái)越多的人已開始關(guān)注和使用它。
React特點(diǎn):1.聲明式設(shè)計(jì)?React采用聲明范式,可以輕松描述應(yīng)用。
2.高效?React通過(guò)對(duì)DOM的模擬,大限度地減少與DOM的交互。
3.靈活?React可以與已知的庫(kù)或框架很好地配合。
4.JSX?JSX是JavaScript語(yǔ)法的擴(kuò)展。
React開發(fā)不一定使用JSX,但我們建議使用它。
5.組件?通過(guò)React構(gòu)建組件,使得代碼更加容易得到復(fù)用,能夠很好的應(yīng)用在大項(xiàng)目的開發(fā)中。
6.單向響應(yīng)的數(shù)據(jù)流?React實(shí)現(xiàn)了單向響應(yīng)的數(shù)據(jù)流,從而減少了重復(fù)代碼,這也是它為什么比傳統(tǒng)數(shù)據(jù)綁定更簡(jiǎn)單。
2、AngularJS(Star:54769,Fork:27292)AngularJS(Angular.JS)是一組用來(lái)開發(fā)Web頁(yè)面的框架、模板以及數(shù)據(jù)綁定和豐富UI組件。
它支持整個(gè)開發(fā)進(jìn)程,提供Web應(yīng)用的架構(gòu),無(wú)需進(jìn)行手工DOM操作。
AngularJS很小,只有60K,兼容主流瀏覽器,與jQuery配合良好。
3、Vue.js(Star:43608,Fork:5493)Vue.js是構(gòu)建Web界面的JavaScript庫(kù),提供數(shù)據(jù)驅(qū)動(dòng)的組件,還有簡(jiǎn)單靈活的API,使得MVVM更簡(jiǎn)單。
主要特性:可擴(kuò)展的數(shù)據(jù)綁定將普通的JS對(duì)象作為model簡(jiǎn)潔明了的API組件化UI構(gòu)建配合別的庫(kù)使用4、jQuery(Star:43432,Fork:12117)JQuery是輕量級(jí)的js庫(kù)(壓縮后只有21k),它兼容CSS3,還兼容各種瀏覽器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。
jQuery使用戶能更方便地處理HTMLdocuments、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。
jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。
武漢IT培訓(xùn)認(rèn)為jQuery能夠使用戶的html頁(yè)保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需定義id即可。
如下:
==,===相等運(yùn)算符
!=,!==不等式運(yùn)算符
= 賦值運(yùn)算符
,||,!邏輯運(yùn)算符
() 分組運(yùn)算符
, 逗號(hào)運(yùn)算符
?…: 條件(三元)運(yùn)算符
|,,^,~按位OR,AND,XOR和NOT運(yùn)算符
,, 位移位運(yùn)算符
+,-運(yùn)算符
++,--前/后增/減運(yùn)算符
void operator
var x = function()? vs function x()函數(shù)聲明語(yǔ)法
= 箭頭函數(shù)表達(dá)式語(yǔ)法
(function(){...})()IIFE (立即調(diào)用函數(shù)表達(dá)式)
someFunction()() 返回其他功能的功能
[],Array()數(shù)組符號(hào)
/.../ -正則表達(dá)式文字
$在正則表達(dá)式替換模式:$$,$,$,$’,$n`
{key: value} 對(duì)象文字語(yǔ)法:
可選的鏈接運(yùn)算符(foo?.bar?.baz):
空位合并運(yùn)算符(??)
function*,yield,yield* Declaring variables:
var,let,const變量聲明:
this 關(guān)鍵詞:
:: 綁定運(yùn)算符:
new operator
delete operator
label: 標(biāo)簽
+=Operator
...iter 傳播語(yǔ)法/ Rest參數(shù)
| Operator
** Power Operator
今天小編要跟大家分享的文章是關(guān)于Javascript繼承的常用4種方法。相信很多學(xué)習(xí)web前端開發(fā)技術(shù)的小伙伴在學(xué)習(xí)前端開發(fā)的javascript部分的時(shí)候,在面向?qū)ο蟮牟糠志秃茈y走下去了,主要的原因還是邏輯更加復(fù)雜了,需要理解的內(nèi)容比直觀的開發(fā)布局難一點(diǎn)。
在面向?qū)ο缶幊汤?,封裝和繼承是比較重要的,這中間,繼承是相對(duì)而言比較難理解的,因?yàn)閖avascript的繼承方式比較多,也有不同的優(yōu)缺點(diǎn)。今天小編為大家?guī)?lái)這篇文章就是來(lái)和大家一起說(shuō)一說(shuō)Javascript繼承的常用4種方法,希望能夠?qū)δ阌兴鶐椭?/p>
1、原型鏈繼承
核心:將父類的實(shí)例作為子類的原型
缺點(diǎn):父類新增原型方法/原型屬性,子類都能訪問(wèn)到,父類一變其它的都變了
2、構(gòu)造繼承
基本思想
借用構(gòu)造函數(shù)的基本思想就是利用call或者apply把父類中通過(guò)this指定的屬性和方法復(fù)制(借用)到子類創(chuàng)建的實(shí)例中。
因?yàn)閠his對(duì)象是在運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境綁定的。也就是說(shuō),在全局中,this等于window,而當(dāng)函數(shù)被作為某個(gè)對(duì)象的方法調(diào)用時(shí),this等于那個(gè)對(duì)象。
call、apply方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛蓆hisObj指定的新對(duì)象。
所以,這個(gè)借用構(gòu)造函數(shù)就是,new對(duì)象的時(shí)候(new創(chuàng)建的時(shí)候,this指向創(chuàng)建的這個(gè)實(shí)例),創(chuàng)建了一個(gè)新的實(shí)例對(duì)象,并且執(zhí)行Parent里面的代碼,而Parent里面用call調(diào)用了Person,也就是說(shuō)把this指向改成了指向新的實(shí)例,所以就會(huì)把Person里面的this相關(guān)屬性和方法賦值到新的實(shí)例上,而不是賦值到Person上面,所以所有實(shí)例中就擁有了父類定義的這些this的屬性和方法。
因?yàn)閷傩允墙壎ǖ絫his上面的,所以調(diào)用的時(shí)候才賦到相應(yīng)的實(shí)例中,各個(gè)實(shí)例的值就不會(huì)互相影響了。
核心:使用父類的構(gòu)造函數(shù)來(lái)增強(qiáng)子類實(shí)例,等于是復(fù)制父類的實(shí)例屬性給子類(沒用到原型)
缺點(diǎn):方法都在構(gòu)造函數(shù)中定義,
只能繼承父類的實(shí)例屬性和方法,不能繼承原型屬性/方法,無(wú)法實(shí)現(xiàn)函數(shù)復(fù)用,每個(gè)子類都有父類實(shí)例函數(shù)的副本,影響性能
3、組合繼承
組合繼承(所有的實(shí)例都能擁有自己的屬性,并且可以使用相同的方法,組合繼承避免了原型鏈和借用構(gòu)造函數(shù)的缺陷,結(jié)合了兩個(gè)的優(yōu)點(diǎn),是最常用的繼承方式)
核心:通過(guò)調(diào)用父類構(gòu)造,繼承父類的屬性并保留傳參的優(yōu)點(diǎn),然后再通過(guò)將父類實(shí)例作為子類原型,實(shí)現(xiàn)函數(shù)復(fù)用
缺點(diǎn):調(diào)用了兩次父類構(gòu)造函數(shù),生成了兩份實(shí)例(子類實(shí)例將子類原型上的那份屏蔽了)
4、寄生組合繼承
核心:通過(guò)寄生方式,砍掉父類的實(shí)例屬性,這樣,在調(diào)用兩次父類的構(gòu)造的時(shí)候,就不會(huì)初始化兩次實(shí)例方法/屬性,避免的組合繼承的缺點(diǎn)
缺點(diǎn):堪稱完美,但實(shí)現(xiàn)較為復(fù)雜
以上就是小編今天為大家分享的關(guān)于web前端學(xué)習(xí)之Javascript繼承的常用4種方法的文章,希望本篇文章能夠?qū)φ趯W(xué)習(xí)web前端技術(shù)的小伙伴們有所幫助。想要了解更多web前端知識(shí)記得關(guān)注北大青鳥web培訓(xùn)官網(wǎng)。
文章轉(zhuǎn)載自公眾號(hào):前端研究所
1) 使用!!將變量轉(zhuǎn)換成布爾類型
有時(shí),我們需要檢查一些變量是否存在,或者它是否具有有效值,從而將它們的值視為true。對(duì)于做這樣的檢查,你可以使用||(雙重否定運(yùn)算符),它能自動(dòng)將任何類型的數(shù)據(jù)轉(zhuǎn)換為布爾值,只有這些變量才會(huì)返回false:0,null,"",undefined或NaN,其他的都返回true。我們來(lái)看看這個(gè)簡(jiǎn)單的例子:
function Account(cash) {
this.cash = cash;
this.hasMoney = !!cash;
}
var account = new Account(100.50);
console.log(account.cash); // 100.50
console.log(account.hasMoney); // true
var emptyAccount = new Account(0);
console.log(emptyAccount.cash); // 0
console.log(emptyAccount.hasMoney); // false
在這個(gè)例子中,如果account.cash的值大于零,則account.hasMoney的值就是true。
2) 使用+將變量轉(zhuǎn)換成數(shù)字
這個(gè)轉(zhuǎn)換超級(jí)簡(jiǎn)單,但它只適用于數(shù)字字符串,不然就會(huì)返回NaN(不是數(shù)字)??纯催@個(gè)例子:
function toNumber(strNumber) {
return +strNumber;
}
console.log(toNumber("1234")); // 1234
console.log(toNumber("ACB")); // NaN
這個(gè)轉(zhuǎn)換操作也可以作用于Date,在這種情況下,它將返回時(shí)間戳:
console.log(+new Date()) // 1461288164385
3) 短路條件
如果你看到過(guò)這種類似的代碼:
if (conected) {
login();
}
那么你可以在這兩個(gè)變量之間使用(AND運(yùn)算符)來(lái)縮短代碼。例如,前面的代碼可以縮減到一行:
conected login();
你也可以用這種方法來(lái)檢查對(duì)象中是否存在某些屬性或函數(shù)。類似于以下代碼:
user user.login();
4) 使用||設(shè)置默認(rèn)值
在ES6中有默認(rèn)參數(shù)這個(gè)功能。為了在舊版瀏覽器中模擬此功能,你可以使用||(OR運(yùn)算符),并把默認(rèn)值作為它的第二個(gè)參數(shù)。如果第一個(gè)參數(shù)返回false,那么第二個(gè)參數(shù)將會(huì)被作為默認(rèn)值返回??聪逻@個(gè)例子:
function User(name, age) {
this.name = name || "Oliver Queen";
this.age = age || 27;
}
var user1 = new User();
console.log(user1.name); // Oliver Queen
console.log(user1.age); // 27
var user2 = new User("Barry Allen", 25);
console.log(user2.name); // Barry Allen
console.log(user2.age); // 25
5) 在循環(huán)中緩存array.length
這個(gè)技巧非常簡(jiǎn)單,并且在循環(huán)處理大數(shù)組時(shí)能夠避免對(duì)性能造成巨大的影響?;旧蠋缀趺總€(gè)人都是這樣使用for來(lái)循環(huán)遍歷一個(gè)數(shù)組的:
for (var i = 0; i array.length; i++) {
console.log(array[i]);
}
如果你使用較小的數(shù)組,那還好,但是如果處理大數(shù)組,則此代碼將在每個(gè)循環(huán)里重復(fù)計(jì)算數(shù)組的大小,這會(huì)產(chǎn)生一定的延遲。為了避免這種情況,你可以在變量中緩存array.length,以便在循環(huán)中每次都使用緩存來(lái)代替array.length:
var length = array.length;
for (var i = 0; i length; i++) {
console.log(array[i]);
}
為了更簡(jiǎn)潔,可以這么寫:
for (var i = 0, length = array.length; i length; i++) {
console.log(array[i]);
}
6) 檢測(cè)對(duì)象中的屬性
當(dāng)你需要檢查某些屬性是否存在,避免運(yùn)行未定義的函數(shù)或?qū)傩詴r(shí),這個(gè)技巧非常有用。如果你打算編寫跨瀏覽器代碼,你也可能會(huì)用到這個(gè)技術(shù)。例如,我們假設(shè)你需要編寫與舊版Internet Explorer 6兼容的代碼,并且想要使用document.querySelector()來(lái)通過(guò)ID獲取某些元素。 但是,在現(xiàn)代瀏覽器中,這個(gè)函數(shù)不存在。所以,要檢查這個(gè)函數(shù)是否存在,你可以使用in運(yùn)算符??聪逻@個(gè)例子:
if ('querySelector' in document) {
document.querySelector("#id");
} else {
document.getElementById("id");
}
在這種情況下,如果在document中沒有querySelector函數(shù),它就會(huì)使用document.getElementById()作為代替。
JavaScript中常用的運(yùn)算符及其使用方法
JavaScript中常用的運(yùn)算符及其使用方法如下:
類型
-(負(fù)值),例如:-5。
*(乘法),例如:2*4,得8。
/(除法),例如:10/2,得5。
%(取余),例如:9%2,余數(shù)為1。
+(加法),例如:1+2,得3。
-(減法),例如:9-8,得1。
算術(shù)運(yùn)算符
|(按位或運(yùn)算),例如:5|3,得7。
(左移),例如:53,得40。
(右移),例如:51,得2。
~(取補(bǔ)),例如:~5 ,得6。
++(遞加),例如: a=5,a++,得a=6。
--(遞減),例如: a=5,a--,得a=4。
字符運(yùn)算符
+(字符串連接),例如:“a”+“b”,得ab。
==(等于),例如:1==2,為Flase。
!=(不等于),例如:3!=4,為True。
比較運(yùn)算符
(小于),例如:76,為Flase。
(大于),例如:109,為True。
=(小于等于),例如:6=9,為True。
=(大于等于),例如:3=6,為Flase。
邏輯算符
!(邏輯非),例如:!Flase,為True。
(邏輯與),例如:FlaseTrue,為Flase。
||(邏輯或),例如:Flase||True,為True。
^(邏輯異或),例如:Flase^True,為True。
網(wǎng)頁(yè)題目:javascript常用,javascript常用來(lái)為網(wǎng)頁(yè)添加
新聞來(lái)源:http://muchs.cn/article6/phgsig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、面包屑導(dǎo)航、軟件開發(fā)、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)