寫(xiě)在前面:
前兩天微信發(fā)布了應(yīng)用號(hào)瞬間刷爆了朋友圈,按照騰訊的野心這可是要整合移動(dòng)端市場(chǎng)盎ε睢彤钟!雖然很多大牛表示不看好,但是跷叉,技術(shù)嗅覺(jué)卻一定會(huì)讓他們了解學(xué)習(xí)這東西逸雹,雖然可能僅僅為了不掉隊(duì)。另外前端的這些知識(shí)也會(huì)被用在我們平時(shí)的app開(kāi)發(fā)中云挟,大廠們都已經(jīng)走在了前頭梆砸。所以前端的技術(shù)知識(shí)我也必須自行普及了。
初識(shí)javaScript
javaScript是由Brendan Eich在兩周內(nèi)寫(xiě)出來(lái)的一個(gè)可以在靜態(tài)HTML頁(yè)面上添加一些動(dòng)態(tài)效果的語(yǔ)言园欣。ECMAScript是國(guó)際標(biāo)準(zhǔn)帖世。
1.javaScript可以放在web的任何地方,不過(guò)我們通常把他放在<head></head>
標(biāo)簽內(nèi)
2.也可以生成.js
文件沸枯,在html中通過(guò)<script src="...js"><script/>
標(biāo)簽添加日矫。
javaScript基本語(yǔ)法(筆記)
- 由于js的結(jié)束語(yǔ)句標(biāo)識(shí)符為
;
但是就是并不強(qiáng)制要求咱們必須添加,但不添加可能會(huì)出現(xiàn)某些歧義(如return
)绑榴,所以一般寫(xiě)語(yǔ)句帶上;
哪轿。 - js不注聲明數(shù)據(jù)類型,而是通過(guò)后面的賦值表示其類型翔怎。通常通過(guò)
var
來(lái)聲明局部變量窃诉。如果沒(méi)有var
則表示為全局變量 - 數(shù)據(jù)類型:
- 數(shù)值Number:
js中不分浮點(diǎn)數(shù)和整數(shù)杨耙,所有java中的數(shù)值基本數(shù)值類型直接可用Number表示
1//整數(shù)
2.31//浮點(diǎn)數(shù)
123.456e3//科學(xué)計(jì)數(shù)法
NAN// NaN表示Not a Number,當(dāng)無(wú)法計(jì)算結(jié)果時(shí)用NaN表示
-23//負(fù)數(shù)```
2. 字符串
js中字符串可以直接用單引號(hào)''或者雙引號(hào)""括起褐奴。
'小敏'
"小敏"
"I'm a word!"http://'此處表示一個(gè)字符
'I'm "ok"!'//同過(guò)轉(zhuǎn)義字符\
即可將''
與""
同時(shí)在字符串中表示
多行字符串直接換行即可如
'
hello
my student
'
字符串可通過(guò)length返回長(zhǎng)度
字符串是不可變的按脚,但是可以通過(guò)方法改變其表現(xiàn)形式
toUpperCase()//變成大寫(xiě)字母
toLowerCase()//變?yōu)樾?xiě)字母
indexOf()//索引
substring()//截取字符串,可指定開(kāi)始位置和結(jié)束位置敦冬,不指定則為全部```
- 數(shù)組
var arr = [1,2.13,true,null,'hello']//數(shù)組元素可以是任何類型
數(shù)組可以通過(guò)length返回?cái)?shù)組長(zhǎng)度(但如給arr.length賦予一新值辅搬,則會(huì)改變數(shù)組數(shù)據(jù))。
數(shù)組可以通過(guò)索引直接付新值(arr[1] = 2脖旱,但如果索引大于數(shù)組長(zhǎng)度會(huì)引起數(shù)組長(zhǎng)度變化)堪遂。
數(shù)組可以通過(guò)indexOf()方法進(jìn)行查找數(shù)組元素位置
slice()可以截取數(shù)組中的部分或全部元素并且返回一個(gè)新數(shù)組
push()和pop()在數(shù)組末尾添加或刪除數(shù)據(jù)
unshift()和shift()在數(shù)組起始處添加或刪除數(shù)據(jù)
sort()給數(shù)組排序
reverse()表示翻轉(zhuǎn)數(shù)組
splice()
修改數(shù)組的方法arr.splice(2,3,'JAVA','C#')表示在第二位起刪除3個(gè)數(shù)據(jù)后添加兩個(gè)數(shù)據(jù)
join()給數(shù)組添加鏈接符```
4. 對(duì)象
js中的對(duì)象是一種無(wú)序的集合類型,通過(guò)鍵值對(duì)表示其key和value萌庆,鍵值對(duì)通過(guò):號(hào)連接溶褪,不同的鍵值對(duì)則通過(guò),分隔.
可以通過(guò)變量名稱.key直接訪問(wèn)value值,如果key包含特殊字符則需變量名['XXX']訪問(wèn)践险。eg(tom['old_Name'])
如果訪問(wèn)一個(gè)不存在的的鍵值對(duì)猿妈,不會(huì)報(bào)錯(cuò)只會(huì)返回undefined
如果添加,我們可以直接利用變量名添加(a.name = 'Tom')
如果刪除巍虫,我們可以直接利用delete刪除
如果查詢是否存在彭则,利用in('age' in a)返回布爾值,但注意in查詢的不一定在該對(duì)象內(nèi)占遥,也可能是繼承來(lái)的俯抖。
如果只想查詢?cè)搶?duì)象含有的屬性,可以使用hasOwnPorperty();```
- 循環(huán)
包括while(){},for(;;){},do{}while();三種循環(huán)瓦胎。用法簡(jiǎn)單芬萍。
for.....in
var a = ['1','2',3,true];
for(var b in a){
alert(b);//結(jié)果為0,1搔啊,2柬祠,3,證明輸出的是它的下標(biāo)
}
for(var c of a){
alert(c);//結(jié)果為1坯癣,2瓶盛,3,true示罗;證明結(jié)果為其值
}
- Map和set
Map是利用鍵值對(duì)的形式進(jìn)行存儲(chǔ)的
var map = new Map(['Meachel',20],['Tom',21]);//有參聲明
var map = new Map();//無(wú)參聲明
map.set('Tom',21);//添加惩猫,修改
map.has('Tom');//查詢
map.get('Tom');//獲取
map.delete('Tom'); //刪除
Map通過(guò)key添加value,如果相同key蚜点,后面的value會(huì)覆蓋前面的value轧房。
Set
var set = new Set([1,2,3,4]);//有參聲明
set.add(5);//添加
set.delete(3);//刪除
Set沒(méi)有key绍绘,添加相同元素會(huì)被覆蓋奶镶。數(shù)學(xué)中這也是集合的三大要義之一迟赃。
- Iterable
通過(guò)forEach(function())(...)是最高效的方法。
Array的function()De參數(shù)為element厂镇,index纤壁,array
var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
// element: 指向當(dāng)前元素的值
// index: 指向當(dāng)前索引
// array: 指向Array對(duì)象本身
alert(element);
});
Set的function()的參數(shù)為element,sameElement,set,并且第一第二個(gè)都指向元素;
var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
alert(element);
});
Map的function()的參數(shù)為value,key,map
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
alert(value);
});```
#####小結(jié):
這些個(gè)學(xué)習(xí)筆記我都是在[廖雪峰的個(gè)人網(wǎng)站](http://www.liaoxuefeng.com/)上的javaScript教程學(xué)習(xí)整理的捺信,僅作學(xué)習(xí)用途酌媒。希望可以直接訪問(wèn)廖老師的個(gè)人網(wǎng)站學(xué)習(xí),打賞迄靠。
**如果您發(fā)現(xiàn)本文有所錯(cuò)漏秒咨,麻煩留言交流共同進(jìn)步**