此時(shí)正徘徊在找工作的途中,閑暇之余崭篡,從頭梳理一下JS鞏固自己挪哄,也為需要的人提供一份資料。
技術(shù)一般琉闪,能力有限迹炼,有什么錯(cuò)的地方還望大家指正。
數(shù)據(jù)類型
JS是一種弱類型的語(yǔ)言颠毙,至今一共有7種數(shù)據(jù)類型:
1斯入、Boolean,布爾值類型蛀蜜,一共就只有兩個(gè)值刻两,true或者false,定義一個(gè)布爾值:
<pre>var flag = true;</pre>
2滴某、Number磅摹,數(shù)字類型,表示數(shù)字霎奢,3户誓,3.1,3.14這些都是Number的類型幕侠,JS不想其他語(yǔ)言一樣有l(wèi)ong帝美,int,float晤硕,double這樣的細(xì)分悼潭,定義一個(gè)數(shù)字:
<pre>var age = 23;</pre>
3、String窗骑,字符串類型女责,表示一個(gè)字符串,類似"張三"创译,"23"這樣的值抵知,定義一個(gè)字符串:
<pre>var name = "張三";</pre>
4、null软族,表示為空刷喜,它只有一個(gè)值就是null,定義一個(gè)null類型的值:
<pre>var obj = null;</pre>
5立砸、undefined掖疮,表示未定義,當(dāng)我們聲明了一個(gè)變量颗祝,但是沒有賦值的時(shí)候這個(gè)變量的值就是undefined浊闪,例如:
<pre>
var _val;
console.log(_val)//undefined
</pre>
6恼布、Symbol,在ES6中誕生的一種類型搁宾,它表示一個(gè)唯一值折汞,創(chuàng)建一個(gè)Symbol類型的值:
<pre>
var _val = Symbol();
console.log(_val);//Symbol()
</pre>
Symbol可以接收一個(gè)參數(shù),通常稱為描述盖腿,因?yàn)槿魏我粋€(gè)Symbol的值打印出來都是Symbol()爽待,傳入一個(gè)參數(shù)我們就可以對(duì)其進(jìn)行區(qū)分,再次聲明Symbol()創(chuàng)建出來的是唯一值:
<pre>
var a = Symbol("a");
var b = Symbol("b");
console.log(a);//Symbol(a)
console.log(b);//Symbol(b)
a==b;//false
</pre>
更多關(guān)于Symbol知識(shí)可以查閱資料
7翩腐、Object鸟款,對(duì)象類型,函數(shù)茂卦,數(shù)組何什,JSON都是對(duì)象類型,對(duì)象類型最突出的特點(diǎn)就是可以設(shè)置屬性疙筹,我們可以把他類比成一個(gè)數(shù)據(jù)集合富俄,定義一個(gè)對(duì)象:
<pre>
var me = {};
me.age = 23;
me.sex = "man";
</pre>
變量聲明
我們可以通過var、let而咆、const來聲明一個(gè)變量霍比,let和const是ES6中新加入的變量聲明方式。
使用var聲明的變量會(huì)觸發(fā)變量提升這一機(jī)制暴备,而let和const聲明的變量則不會(huì)變量提升悠瞬,var使用:
<pre>
var _str = "hello JS";//聲明一個(gè)字符串
var _num = 23;//聲明一個(gè)數(shù)字
var _arr = [];//聲明一個(gè)數(shù)組
var _obj = {};//聲明一個(gè)對(duì)象
var _flag = true;//聲明一個(gè)布爾值
</pre>
let作用是可以聲明一個(gè)塊級(jí)作用域,在let出現(xiàn)之前JS只存在函數(shù)作用域和全局作用域涯捻,而在有了let之后才出現(xiàn)塊級(jí)作用域浅妆,在一些方面方便了我們的使用,我們先用var聲明一個(gè)變量:
<pre>
var a = 1;
if(true){
var a = 2;
}
console.log(a);//2
</pre>
然后使用let來聲明:
<pre>
var a = 1;
if(true){
let a = 2;
}
console.log(a);//1
</pre>
let聲明的變量只在其塊級(jí)范圍內(nèi)有效障癌,在上面的代碼中只在{***}中有效凌外,另外通過var聲明的變量我們可以通過window對(duì)象來進(jìn)行訪問,而使用let聲明的對(duì)象我們是不能通過window來訪問的:
<pre>
var a = 1;
let b = 2;
window.a;//1
window.b;//undefined
</pre>
const表示聲明一個(gè)常量涛浙,常量即最終值康辑,一旦創(chuàng)建之后就不能被修改,例如:
<pre>
const a = 1;
a = 2;//對(duì)a重新賦值會(huì)報(bào)錯(cuò)
</pre>