【學習過程遇到疑問和延伸閱讀】
1.document.write()的深入理解
write()方法可向文檔寫入HTML表達式或JavaScript代碼。
可使用document.write()向輸出流寫文本或者HTML
延伸閱讀《js中document.write的那點事》
http://www.cnblogs.com/dh616854836/articles/2140349.html
?
2.編程語言與腳本語言的區別
概念的相對性:標記語言vs編程語言;編譯型語言vs解釋型語言(腳本語言)
而JavaScript是編程語言,是解釋型語言(腳本語言)。
延伸閱讀《編程語言,標記語言,腳本語言分別有哪些?區別是什么?》
http://www.cnblogs.com/lsgsanxiao/p/5126170.html
3.Sublime text配置JS運行環境,工具Tools->build- new build system
可以進行構建功能的配置,配置后就可以不離開編輯器直接編譯當前正在編寫的代碼,
并把打印輸出到輸出面板。
配置了Node(Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境 )后,
就可以用ctrl+B 運行JS文件了。
4.編譯型語言的程序源文件運行“四部曲”。
每個程序提交到計算機運行,都包含著如下所謂的“四步曲”:
(1)編輯(把程序代碼輸入,交給計算機)或編寫源代碼。
(2)編譯(成目標程序文件.obj)。編譯就是把高級語言變成計算機可以識別的2進制語言,
計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。
編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。
主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
(3)鏈接(成可執行程序文件.exe)。
鏈接是將編譯產生的.obj文件和系統庫連接裝配成一個可以執行的程序。
由于在實際操作中可以直接點擊Build從源程序產生可執行程序,可能有人就會置疑:
為何要將源程序翻譯成可執行文件的過程分為編譯和鏈接兩個獨立的步驟,不是多此一舉嗎?
之所以這樣做,主要是因為:在一個較大的復雜項目中,有很多人共同完成一個項目(每個人可能承擔其中一部分模塊),
其中有的模塊可能是用匯編語言寫的,有的模塊可能是用VC寫的,有的模塊可能是用VB寫的,
有的模塊可能是購買(不是源程序模塊而是目標代碼)或已有的標準庫模塊,
因此,各類源程序都需要先各自編譯成目標程序文件(2進行機器指令代碼),再通過鏈接程序將這些目標程序文件連接裝配成可執行文件。
(4)運行(可執行程序文件)。
上述四個步驟中,其中第一步的編輯工作是最繁雜而又必須細致地由人工在計算機上來完成,
其余幾個步驟則相對簡單,基本上由計算機來自動完成。
5.程序流程圖
是程序分析中最基本,最重要的分析技術。最基本的工具。
通過結構清晰,邏輯性強的流程圖,能更好地理解程序執行的順序。程序流程圖是人們對解決問題的方法、思路或算法的一種描述。
延伸閱讀《編程基本功訓練:流程圖畫法及練習》
http://blog.csdn.net/sxhelijian/article/details/8222858
?
【新概念,重要概念】
編譯,編程語言,解釋型語言
?
【實操知識點脈絡】
1.什么是JavaScript
1.1JavaScript是什么
html內容,css樣式,JavaScript動作
程序可以計算,可以接受用戶交互,做數據處理,
可以被瀏覽器執行
Java與JavaScript的區別
Java需要編譯,JavaScript是解釋型語言
JavaScript源代碼放在HTML里頭,
讓瀏覽器運行
1.2頁面中JavaScript代碼
如何在頁面加入?
<script></script>
可以放在head(函數的定義,變量的定義)或者body(做實際的動作)里
JavaScript一條語句后必須以分號結尾
<script>document.write("Hello World!");</script>-document做write動作
document是對象(瀏覽器的頁面)
點.是運算符號
對象.動作(表示點左邊的對象做點右邊的動作)
需要write動作的參數,
參數是一句話,程序語言是用字符串,用雙引號引起來。
1.3桌面上的JavaScript
遠超過瀏覽器本身,除了可以在瀏覽器運行外,也可以在桌面端運行,
需要其他軟件的幫助。
Node.js下載
啟動Node,運行js示例文件的代碼,保存為server.js,文件里面的代碼,可以建立了Web服務器。
server.js所在的目錄的HTML文件,就可以通過瀏覽器訪問(js文件中的本機地址和端口號)
Sublime text中關于JavaScript的工具,
比如Syntax的高亮.
在下載安裝Node.js后,還不能在Sublime text中直接運行JavaScript,需要配置js的運行環境
需要去tools,build system,new system,
然后在文件中,輸入這么一段文字,在windows下
{
"cmd": ["node", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.javascript"
}
然后保存,名字為node.sublime-build
最終會在tools-build system下會有個node。
現在回到server.js中,在Tools-build system下選擇node之后,
按快捷鍵ctrl+B,編譯運行,然后server就啟動了
(在編譯時出現了錯誤提示, [WinError 2] 系統找不到指定的文件。
最終找出原因是server.js的目錄路徑下,有個目錄使用了中文命名,修改為英文后,編譯成功)
1.4事件響應代碼
另一種加入JS代碼的方式,
利用HTML的標記的事件(動作)屬性,
把JS代碼作為屬性值的方式。
如:body 的onLoad的載入事件屬性。
<body οnlοad="alert('hello!')">
1.5變量variable
當需要保存數據的時候,可以使用變量。
var hello = "Hello"; //等號是賦值運算,給變量一個初值;
document.write(hello);
<script>document.write("<h1>Hello World!</h1>");</script>
變量命名的規則:
數字,字母,下劃線_ 的組合,
數字不能作為第一個字符
不能使用JavaScript的關鍵字和保留字
變量是弱類型:變量無特定的類型,定義變量時只用var運算符。
可以將它初始化為任意值,也可以隨時改變變量所存數據的類型。
2.計算
2.1賦值運算
變量本身可以沒有類型
數值,字符串,布爾值
2.2字符串連接運算
2.3四則運算
%運算,取模,取除法結果里的余數,實際應用判斷奇偶數
圓括號
在JavaScript中,不太區分整數和浮點數
2.4加1,減1運算(推薦單獨使用)
result++;++result;
2.5比較
2.5.1數值比較
==
!=
<=
2.5.2字符串比較(跟字符在計算機里的排序有關)
==
>=
<=
3判斷
3.1
if(關系運算)
{
滿足條件的處理
}
瀏覽器先執行了js后,再解釋HTML。
document.write是把字符串寫到html
3.2else{}
3.3嵌套的if語句
多個else的情況下,else是與最近的if搭配起來
建議
-在if和else后面永遠放一對{}
-哪怕后面只有一句語句
if()
{ }
else if()
{ }
else
{}
3.4switch-case多路分支
每一個case要有break,否則不會跳出switch,
繼續往下面的case執行
實踐例子,百分制分數轉換為A-F的等級
3.5邏輯運算(true和false之間的運算)
運算符 && || !
真值表
3.6優先級
-所有的邏輯運算符的優先級都低于關系運算符
-!> && >||
3.7條件運算符(三元運算)
?:
<exp>?<v1>:<v2>
等價于
if(exp)
{ v1 }
else
{ v2 }
?
4循環
4.1while語句
讓同一段代碼可以重復執行很多次,這種程序結構
while(exp)
{
重復執行的代碼
}
在分析別人程序的時候,可以把值設小減少循環次數。
來理解程序的用意。
4.2循環的例子
例子:求最大公約數
描述算法:前置條件-一步步的步驟-終止條件
4.3無限循環
循環的條件永遠滿足,結果陷入在這個循環里面
4.4循環嵌套
外面的循環的每一步,里面的循環需要不滿足條件跳出,否則執行里面的循環。
4.5do-while循環
do{
}while(condition)
與while循環的區別:
首先進入循環體執行一次,而不先判斷條件。
例子:reverse number
?
4.6for循環
for(init;condition;step){
}
應用:計數循環
當循環的次數預先知道,或者需要有遞進的動作時,
往往選擇for循環。
for循環嵌套例子
4.7無限循環的寫法
while(true){}
do{}while(true)
for(;;){}
4.8不同循環的比較
-三種循環(while、do和for)的功能是等價的
-如果需要循環至少執行一次,do通常是更好的選擇
-當循環的次數是固定的,或者很容易計算得到的時候,選擇for循環
4.9如何選擇循環
-如果有固定次數,用for
-如果必須執行一次,用do-while
-其他情況用while
4.10break與continue
break:跳出循環
continue:跳過當前循環步,進入循環的下一輪
從流程圖可以清晰地看出區別來。
?