【學習筆記】JavaScript基礎(一)

【學習過程遇到疑問和延伸閱讀】javascript

1.document.write()的深刻理解
write()方法可向文檔寫入HTML表達式或JavaScript代碼。
可以使用document.write()向輸出流寫文本或者HTMLcss

延伸閱讀《js中document.write的那點事》
http://www.cnblogs.com/dh616854836/articles/2140349.htmlhtml

 

2.編程語言與腳本語言的區別java

概念的相對性:標記語言vs編程語言;編譯型語言vs解釋型語言(腳本語言)
而JavaScript是編程語言,是解釋型語言(腳本語言)。node

延伸閱讀《編程語言,標記語言,腳本語言分別有哪些?區別是什麼?》
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)運行(可執行程序文件)。
上述四個步驟中,其中第一步的編輯工做是最繁雜而又必須細緻地由人工在計算機上來完成,
其他幾個步驟則相對簡單,基本上由計算機來自動完成。windows

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 onload="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與continuebreak:跳出循環continue:跳過當前循環步,進入循環的下一輪從流程圖能夠清晰地看出區別來。

相關文章
相關標籤/搜索