《JavaScript 教程》讀書筆記——第一章(入門篇)
阿新 • • 發佈:2020-07-15
前言
第一章,入門篇,內容如下
1.導論 //什麼是JS語言?為什麼學習JS語言?第一個js
2.歷史 //
3.基本語法
正文
第一部分:導論
什麼是js語言?
js是一種輕量級的指令碼語言。指令碼語言:指的是不能用於開發作業系統,只能用來編寫控制其他大型應用(比如瀏覽器)的"指令碼"
js是一種嵌入式的語言。js的執行依賴宿主環境(比如:瀏覽器,伺服器的node專案)
js是一種物件模型語言。js主要是面向物件程式設計,當然也可以面向過程程式設計,總之:語言靈活,一個問題多種解決方案
js核心語法簡練。包含基本語法結構(操作符,語句等)&&標準庫(具有各種功能的物件Date Math等)&&宿主環境提供的API(DOM類:操作網頁的各種元素,Web類:實現網際網路的各種功能,瀏覽器控制類)
為什麼學習js?
1.操作瀏覽器的能力。可以這麼理解,前端(操作瀏覽器的)語言就是js(本文有些不嚴謹的地方,請勿深究,如果為了深入研究,請參考原書)
2.廣泛的使用領域。 ①操作瀏覽器 ②Node ③操作NoSQL資料庫 ④移動平臺開發 ⑤越來越多的應用將js作為內嵌指令碼語言 ⑥有一些專案js可以開發桌面應用 總之:很有價值
3.易學。①有瀏覽器就能執行js程式 ②相比其他語言簡單 ③與主流語言相似
4.效能強大。①靈活的語法和表達能力 ②支援編譯執行 ③事件驅動和非阻塞式設計
5.開放性。不屬於任何公司和個人,不存在版權問題6.社群支援和就業支援。學習資源豐富
第一個js。
開啟瀏覽器控制檯,執行一下程式碼
function abc(a){
console.log('Hello ' + a);
}
abc('寶貝');
返回值為Hello 寶貝
第二部分:歷史
第三部分:基本語法
1. 語句 //例如:var a = 1 + 3; 就是一個賦值語句; 其中 1+3 叫做表示式,
//語句以分號結束,一個語句就代表一個語句結束。例如:var a = 1 + 3; var b = 'abc';
//分號前面可以沒有內容。例如: ;;; 指的是3個空語句
//表示式不需要分號結束,因為用了分號就是語句。例如:1+3;就是一個沒有任何意義的語句。
2. 變數
2.1 概念 //變數:是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。
//例如:var a = 1; 首先:宣告一個變數a,然後將數值1“賦值”給a, 以後引用變數a就會得到數值1。
最前面的var是變數宣告命令,它表示通知解釋引擎,要建立一個變數a。
//注意:js的變數名區分大小寫,A和a是兩個不同的變數。
//程式執行步驟:先執行 var a; 然後執行 a = 1;
//特殊情況:①只宣告未賦值 var a; 那麼呼叫a,返回 —— underfined
②未宣告只賦值 a=1; 那麼語句照樣有效,呼叫a,返回 —— 1;但建議寫上var,因為如果不寫,就會變成全域性變數
③未宣告未賦值 a; 那麼呼叫a,會報錯;ReferenceError: a is not defined
//多個變數:多個變數宣告,例如var a,b;就是聲明瞭兩個變數,其中逗號分隔。 //變數型別:js是一門動態型別語言,變數型別沒有限制,可以隨時更改型別。例如:var a=1;a=‘abc’;此案例,先給a賦值數值,然後賦值為字串,也是可以的。
//重複宣告:重複宣告,後面的宣告無效。例如:var a = 1; var a = 2; 等同於var a=1;a=2;
2.2 變數提升
//js語言需要js引擎解讀,js引擎的工作方式是,先解析程式碼,獲取所有被宣告的變數,然後再一行一行的執行,造成了變數被提升到程式碼的頭部,這就叫做變數提升。
//例如:
console.log(a); var a= 1;
等價於 var a; console.log(a); a=1; 最後列印結果為undefined; 表示a已宣告未賦值。
3. 識別符號
// 識別符號指的是用來識別各種值得合法名稱,最常見的識別符號就是變數名和函式名。
特點:①大小寫敏感,a和A是不同識別符號
②第一個字元可以是字母,下劃線(_)及美元符號($)
③第二個及後面的字元可以是字母,下劃線,美元符號,及數字
舉例:合法識別符號 arg0 _tmp $elem π 中文識別符號
不合法識別符號 1a 23 //第一位不能是數字
*** a+b -d //識別符號不能包含+ - *等
關鍵字和保留字不能做識別符號:例如 var if for break等
4. 註釋
//定義:原始碼中被js引擎忽略的部分就叫做註釋,作用是對程式碼進行解釋
//兩種 ① //這是單行註釋
② /*
這是
多行
註釋
*/ 區塊
//定義:js使用大括號,將多個相關的語句組合在一起,稱為“區塊”。
//案例:{
var a = 1;
}
//常見 for(){} if(){}
6. 條件語句 //滿足條件才執行的語句 6.1 if語句
//舉例 if(布林值){語句}
//上述例子,如果布林值為true,執行後面語句,反之不執行
6.2 if...else結構
//舉例 if(布林值){語句1}else{語句2}
//上述例子,如果布林值為true,執行語句1,反之執行語句2
//延申 if(布林值1){語句1}else if(布林值2){語句2}else if(布林值3){語句3}else{語句4}
6.3 switch結構
//定義:當滿足xx條件時執行xx,多用於多個if的情況下
//案例:
//注意:上述程式碼表達式x和case後面的表示式做比較時,採用的是嚴格相等運算子(===),不是相等運算子(==)
6.4 三元運算子 ? :
//語法 條件 ? 表示式1 : 表示式2
//解釋: 如果“條件”為true,則返回表示式1,如果為false,則返回表示式2
//案例: var msg = '數字' + n + '是' + (n % 2 === 0 ? '偶數' : '奇數');
7. 迴圈語句
//定義:滿足某條件,迴圈執行語句
7.1 while 迴圈
//語法:while(條件){語句};
//舉例:var i = 0; while(i<100){console.log(i); i=i+1;}
//解釋:如果i<100執行區塊內的語句,列印i,i+1;等i變為100時終止迴圈。
//注意:迴圈條件如果始終為true,那麼就會無限迴圈,容易造成瀏覽器卡死
7.2 for迴圈
//語法:for(語句1;語句2;語句3){被執行的程式碼塊}
//解釋:語句1 -> 迴圈(程式碼塊)開始前執行的語句,只執行一次
語句2 -> 定於運算迴圈(程式碼塊)的條件,每輪迴圈開始時判斷一次
語句3 -> 在迴圈(程式碼塊)已被執行後執行,每輪迴圈結束後執行一次
//舉例: for(var i=0;i<3;i++){console.log(i)}
//解釋:宣告變數i賦值0,當i<3的時候,列印i,然後i加1,然後迴圈
7.3 do...while迴圈
//類似while迴圈,區別是先執行一次迴圈體,再判斷迴圈條件
//語法: do{語句}while(條件);
7.4 break語句和continue語句
//相同點:都具有跳轉作用,可以讓程式碼不按既有的順序執行
//不同點:break -> 跳出迴圈
continue -> 終止本輪迴圈,進行下一輪迴圈
//舉例1:for(var i=0;i<5;i++){if(i===2){break};console.log(i)} 返回//0 1
//舉例2:for(var i=0;i<5;i++){if(i===2){continue};console.log(i)} 返回// 0 1 3 4
7.5 標籤(label)
//定義: js語言允許,語句的前面有標籤,相當於定位符,用於跳轉到程式的任意位置。
//語法: 標籤:語句;
//舉例:①標籤和break配合使用
②標籤和continue配合使用
8.引數連結
https://wangdoc.com/javascript/basic/grammar.html
回顧
------------恢復內容結束------------