js概覽

1. js簡介

JavaScript是世界上最流行的語言之一,是一種運行在客戶端的腳本語言(不需要編譯,運行過程中由js解釋器即js引擎逐行來進行解釋並執行),現在也可以基於node.js技術進行服務器端編程。

2. js組成

1)ECMAScript:由ECMA國際進行標準化的一門編程語言,規定了js的編程語法和基礎核心知識,是所有瀏覽器廠商共同遵守的一套js語法工業標準。

(2)DOM:document object model,文檔對象模型,W3C組織推薦的處理可拓展標記語言的標準編程接口,通過DOM提供的接口可以對頁面上的各種元素進行操作(大小、位置、顏色等)。

(3)BOM:browser object model,瀏覽器對象模型,它提供了獨立於內容的、可以與瀏覽器窗口進行互動的對象結構,通過BOM可以操作瀏覽器窗口,比如彈出框、控制瀏覽器跳轉、獲取分辨率等。

3. js執行過程:分爲預解析,代碼執行兩步。

(1)預解析:js引擎把js裏面所有的var還有function提升到當前作用域的最前面,分爲變量預解析(變量提升)和函數預解析(函數提升),變量提升就是把所有變量聲明提升到當前的作用域最前面,不提升賦值操作;函數提升就是把所有函數聲明提升到當前的作用域最前面,不調用函數,所以function 函數名(形參1,形參2,...) {}會將整個函數聲明提升,var 變量名 = function() {}僅提升變量聲明部分。

(2)代碼執行:按照代碼書寫順序從上往下執行。

<script>
    function f1() {
    	var a = b = c = 9; // 相當於var a = 9; b = 9; c = 9; b和c直接賦值,沒有var聲明,全局變量
    	// 集體聲明 var a = 9, b = 9, c = 9;此處聲明有var
    }
    f1();
    console.log(c); // 9
    console.log(b); // 9
    console.log(a); // 報錯
</script>

4. js書寫位置

(1)行內式js:推薦使用單引號,僅在少數特殊情況下使用。

<input type="button" value="點我試試" οnclick="alert('Hello World')" />

(2)內嵌js(常用)

<script>
    alert('Hello World~!');
</script>

(3)外部js文件

<script src="my.js"></script>

5. 註釋

<script>
    // 單行註釋
    /* 多行註釋
       多行註釋
    */
</script>

6. js輸入輸出語句

方法 說明 歸屬
alert(msg) 瀏覽器彈出警示框 瀏覽器
console.log(msg) 瀏覽器控制檯打印輸出信息 瀏覽器
prompt(info) 瀏覽器彈出輸入框,用戶可以輸入,返回的是字符串型 瀏覽器

7. 流程控制

(1)順序結構

(2)分支結構:① if(條件表達式){ 語句1 } else if { 語句2 } else { 語句3 };② 三元表達式(條件表達式?表達式1:表達式2);③ switch(表達式){ case value:執行語句1;break;default:執行最後的語句;},當全等時執行。

(3)循環結構:① for(初始化變量;條件表達式;操作表達式){ 循環體 };② while(條件表達式){ 循環體 };③ do { 循環體 } while (條件表達式)。

(4)continue關鍵字用於立即跳出本次循環,繼續下一次循環,循環體中continue後的語句少執行一次;break關鍵字用於立即跳出整個循環。

8. 變量

(1)變量聲明的特殊情況

情況

說明

結果

var age; console.log(age);

只聲明,不賦值

undefined

console.log(age);

不聲明,不賦值,直接使用

報錯

age = 10; console.log(age);

不聲明,只賦值

10

(2)變量命名規範:由字母、數字、下劃線、美元符號$組成;嚴格區分大小寫;不能以數字開頭;不能是關鍵字、保留字;變量名必須有意義;遵循駝峯命名法,首字母小寫,後面單詞的首字母需要大寫。

(3)全局變量和局部變量:沒有塊級作用域,即{}內部聲明的變量,{}外部也可以使用。

<script>
    var num1 = 10; // 全局變量,只有瀏覽器關閉時纔會銷燬,佔用資源
    function fun(aru) { // 函數的形參也看做是局部變量
    	var num2 = 20; // 局部變量,程序執行完即銷燬,節約資源
    	num3 = 30; // 只賦值未聲明的變量視爲全局變量
    }
    console.log(num2); // 報錯,未聲明
    console.log(num3); // 30
</script>

(4)作用域鏈:當函數多層嵌套,且不同函數內聲明有相同的變量時,內部函數訪問外部函數的變量,採取的是鏈式查找的方式來決定取哪個值,即就近原則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章