開篇: 這一整周學(xué)了JS的基礎(chǔ)部分扛芽,一開始懷著輕松加愉快的的想法元潘,認(rèn)為JS這么簡單的東西還不好學(xué)嗎殿如,畢竟我是學(xué)過C++馁菜、Java茴扁、Android的男人(雖然都只是學(xué)了些皮毛而已==)!然而汪疮,隨著老師的講解峭火,還是受益匪淺盎傧啊!學(xué)過C++還是有用的啊卖丸,雖然大部分的東西都已經(jīng)原封不動的還給大學(xué)老師啦7那摇(大學(xué)老師吐血中)O(∩_∩)O哈哈哈~下面就來聽我娓娓道來!(小板凳稍浆!小板凳T芈怠!P品恪)
section 1: 文本的輸出
???文本的輸出有三種方式嫁艇,分別為document.write() 、console.log()和alert()弦撩。原來在js里面還可以用文本的輸出直接打印出html代碼啊裳仆,當(dāng)然只有document可以,真是活久見肮虑铡!
<script type="text/javascript">
document.write("<div id='box'></div>");
// 他們兩個將標(biāo)簽以字符串輸出出來
console.log("<div id='box'></div>");
alert("<div id='box'></div>");
</script>
然后在頁面中就出現(xiàn)了一個div塊4客琛F巍!Amazing
section 2: JS中數(shù)據(jù)類型
????基本的數(shù)據(jù)類型有Number觉鼻、String俊扭、Boolean、undefined和null坠陈。令我萬萬沒想到的是Number類型里面竟然竟然包含了浮點型(float)和整型(int)萨惑,(明明在C++里面不是這樣的好嗎,人家是兩個不同的數(shù)據(jù)類型好嗎仇矾?反過來一想庸蔼,js是一門弱類型語言好吧!弱……)贮匕。
????就簡單的了解下undefined吧姐仅。如果我們使用一個未定義的值或者定義了一個變量卻沒有給變量賦初始值,那么就會得到undefined刻盐!就是這樣掏膏,so easy!(媽媽再也……)
section 3: JS中標(biāo)識符
????記得大一學(xué)C++的時候敦锌,考試經(jīng)常會考到標(biāo)識符馒疹,總是記得那條,忘了這條吧乙墙!于是整個人都是不好了颖变。于是生均,
標(biāo)識符:
1.有字母、數(shù)字悼做、下劃線和$組成的
2.不能以數(shù)字開頭
3.不能是JS的關(guān)鍵字和保留字
section 4: 兩個獨特的類型Infinity與NaN
????Infinity:表示數(shù)據(jù)超過js可以表示的范圍疯特,但是他的數(shù)據(jù)類型仍然是Num。我們可以把它看成是數(shù)學(xué)里面的無窮大的數(shù)吧肛走!簡單來說:就是無窮加無窮得無窮漓雅;無窮減無窮卻的出一種新的數(shù)據(jù),他就是NaN朽色。
NaN:大家都知道無窮之間不能相減邻吞,這就是計算上的錯誤。所以當(dāng)運(yùn)算符錯誤的時候就會得到NaN葫男,而且抱冷,如果用NaN去加減一個正常的數(shù)時,它會使整個結(jié)果也變成NaN梢褐。這樣就可以把NaN理解成一個喪尸旺遮,一旦碰見正常人(Num),經(jīng)過一番直達(dá)心靈的接觸盈咳,然后都變成喪尸了耿眉。這就是NaN(喪尸)的特性:連帶性、傳染性吧鱼响。
section 5: 自增自減運(yùn)算符和表達(dá)式
- 變量++:例如(a++)鸣剪,這個就是表示先取值再加一,就像b = a++丈积;就是先將a的值賦給變量b筐骇,然后a的值再加1,我想或許是a離b比較近江滨,所以a就“愛上”了b,然后a就把自己全部都奉獻(xiàn)給了b铛纬,最后再來加一。
- ++變量:例如(++a)唬滑,這表示先加1再取值饺鹃,如b =++a,先將a的值加1间雀,然后把a(bǔ)的值賦給了b悔详。對于這個我是這樣理解的,因為a距離b比較遠(yuǎn)惹挟,然后a這個人比較自戀茄螃,于是它就先自增1。機(jī)緣巧合下连锯,認(rèn)識了b归苍,然后兩個人就……
舉例說明:
var a = 1;
var b;
b = a++ + ++a + ++a + a++ - a--;
document.write(a);
document.write(b);
這段代碼就是先將a賦值為1用狱,通過不斷的a++ 和 ++a 給b 進(jìn)行賦值。對于b的整個賦值過程拼弃,我們可以分成a的狀態(tài)值和算式的計算值夏伊。
首先,對于a++吻氧,這里的計算值就是1溺忧,而a的狀態(tài)值就是2了;對于++a盯孙,計算值為3鲁森,其狀態(tài)值也為3;第二個++a振惰,計算值為4歌溉,狀態(tài)值也為4;a++中骑晶,計算值為4痛垛,狀態(tài)值為5;a--中桶蛔,計算值為5匙头,狀態(tài)值為4;通過計算它們的計算值羽圃,便可得到b的值啦!四不四很簡單呢抖剿,只要明白它們的狀態(tài)值和計算值朽寞,像做這些題目簡直是輕松加愉快啊U独伞脑融!摸摸噠!
section 6: 關(guān)系運(yùn)算符中== 與 ===
??? 雖然這兩個基友長得很相似缩宜,但是它們之間的意義卻完全幣一樣肘迎!
var num = 1;
var str = "1";
console.log(num == str);
console.log(num === str);
這里分別定義了兩個不同類型的1,一個代表了數(shù)字型的1锻煌,另一個則代表了字符串的1妓布,下面則輸出打印。第一個不出意料地打印了true宋梧,第二個竟然打印出了false匣沼;這是弄啥嘞!(黑人臉?_?)
原來捂龄,第一個只要數(shù)據(jù)等于即可释涛,兩個同為1加叁;但是要===(學(xué)名:恒等于)成立的話,就一定要性別和年齡都要相符(也就是數(shù)據(jù)和類型)唇撬,這樣才有共同語言嘛它匕,共同生活嘛,才能輸出true嘛窖认!
section 7: 邏輯運(yùn)算符
邏輯與豫柬、非、或耀态、運(yùn)算符:&&轮傍、!、 II
關(guān)于這里首装,&&和| |重點記住他們的惰性原則也稱短路原則(此短路非彼短路创夜,并不是腦子短路了),這里的短路與高中電路上的斷路非常相似吧仙逻!
含義:從左至右依次計算表達(dá)式的值驰吓,直到遇到一個表達(dá)式的值為假(真)則停止計算,因此此時我們已經(jīng)知道邏輯與運(yùn)算表達(dá)式的值為假(真)了系奉。
是不是和高中的電路很相似呢檬贰!只要電路發(fā)生斷路了,整個電路都不通了缺亮,斷路后面的電路就全部癱瘓了N痰印(想念高中的物理啊萌踱!想當(dāng)初物理還考過第一咧(__) 嘻嘻……謙虛臉)
section N: 魚的記憶
-
將其他基本類型轉(zhuǎn)換成String類型
(1)最經(jīng)典:" "+num
你沒看錯葵礼,就是空字符串加num型(你要轉(zhuǎn)換的類型),就可以把num型就轉(zhuǎn)換成字符型了并鸵。神奇鸳粉!
(2)最常規(guī):num.toString() -
prompt()
這個就是從外部輸入數(shù)據(jù),通過它來接收啦园担。
不過要注意届谈,它默認(rèn)傳遞過來的就是字符串類型的數(shù)據(jù)。 -
三目運(yùn)算符
三目弯汰?艰山??難道是三目童子咏闪?不是8迨J郎薄韧拒!這里說的是運(yùn)算符皮官。
運(yùn)算表達(dá)式:表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2
這個在一定情況下,可以看成是if語句的縮寫,省略不少代碼咧,機(jī)智BOY稳诚! -
break 語句
break專門用來跳出switch語句和循環(huán)語句的,后面的代碼不會執(zhí)行瀑踢,只跳出距離它最近的那一層循環(huán)或switch扳还。 -
continue語句
continue:用來跳過本次循環(huán)繼續(xù)下次循環(huán)的,也就是代碼執(zhí)行到continue語句時橱夭,它并不會執(zhí)行continue之后的語句氨距,而是重新開始下一次循環(huán)。