在樂字節學習前端的第四天-javaScript學習

一、簡介

1、概述:

JavaScript是目前web開發中不可缺少的腳本語言,js不需要編譯即可運行,運行在客戶端,需要通過瀏覽器來解析執行JavaScript代碼。

誕生於1995年,當時的主要目的是驗證表單的數據是否合法

JavaScript本來應該叫Livescript,但是在發佈前夕,想搭上當時超熱的java順風車,臨時把名字改爲了JavaScript。(也就是說js跟java沒有關係,當時只是想借助java的名氣)。

js組成部分:

(1)核心(ECMAScript):這一部分主要是js的基本語法。

(2)BOM:Brower Object Model(瀏覽器對象模型),主要是獲取瀏覽器信息或操作瀏覽器的,例如:瀏覽器的前進與後退、瀏覽器彈出提示框、瀏覽器地址欄輸入網址跳轉等操作等。

(3)DOM:Document Object Model(文檔對象模型),此處的文檔暫且理解爲html,html加載到瀏覽器的內存中,可以使用js的DOM技術對內存中的html節點進行修改,用戶從瀏覽器看到的是js動態修改後的頁面。(增刪改查)

2、特點:

  1. 交互性(它可以做的就是信息的動態交互)
  2. 安全性(不允許直接訪問本地硬盤)
  3. 跨平臺性(只要是可以解析js的瀏覽器都可以執行,和平臺無關)

3、和Java區別:

javascript :Netscape公司的產品,最初叫Livescript。是一門直譯式腳步語言,弱類型語言

Java : Sun公司的產品,現在是Oracle公司的產品。需要先編譯成字節碼文件再執行,強類型語言

4、作用

avaScript 被用來改進設計、驗證表單、檢測瀏覽器、創建cookies,等等。JavaScript 是因特網上最流行的腳本語言,並且可在所有主要的瀏覽器中運行,比如: Internet Explorer、 Maxthon、Mozilla、Firefox、Netscape、Chrome和 Opera等。

在目前學習階段只要記住最常用的二個:(1)運態修改html及css代碼 (2)驗證表單

5、書寫位置

5.1、內嵌式:

理論上js可以書寫在頁面的任意位置。

<script>

alert("內嵌式")

</script>

5.2、外鏈式:

首先新建一個文件類型爲.js的文件,然後在該文件中寫js語句,通過script標籤對引入到html頁面中。

<script src="js文件路徑地址">這裏不能寫js語句</script>

5.3、行內式:

直接書寫在標籤身上,是一個簡寫的事件,所以又稱之爲事件屬性。 onclick單擊事件

<input type="button" value="點我呀!" onclick="alert('點我幹啥!^6^');">

<button onclick="alert('恭喜你,中 500 萬.');">點我呀!</button>

6、註釋:

單行註釋:       //  註釋語句        快捷鍵ctrl+/

多行註釋:       /* 註釋語句 */    快捷鍵ctrl+shift+/   

注意:多行註釋相互不能嵌套使用,只能在多行註釋裏面使用單行註釋!

7、數據類型:

Js中的數據類型:

數值型:number(凡是數字都是數值型,不區分整數和小數)

字符串:string(凡是引號包裹起來的內容全部都是字符串)

布爾:boolean(true、false)

對象類型:object(特殊取值null)

未定義型:undefined

對比java中的數據類型:

整數:byte short int long

小數:float double

字符:char 

布爾:boolean

字符串:String

8、變量:

8.1、定義:就是存放數據的、內療可以存儲任意數據

8.2、聲明變量:

var 變量名稱 = 存儲的數據;       (variable 變量)

8.3、變量命名規範:

1.  只能由字母、數字、_(下劃線)、$(美元符號)組成。

2.  不能以數字開頭。

3.  命名中不能出現-(js會理解成減號進行減法的操作),不能和關鍵字衝突。

js是弱類型語言,不重視類型的定義,但js會根據爲變量賦值的情況自定判斷該變量是何種類型:

數值型:var i = 1;  var d = 2.35;

字符串:var str = "用心學習";

布爾型:var b = true;

對比Java:java是強類型的語言,注重類型的定義,Java定義類型如下:

整型:int i = 1;

浮點型:double d = 2.35;

字符串:String str = “用心學習”;

布爾型:boolean b = true;

總結:js中變量的定義。只要加一個var就行。java則使用什麼類型的變量就要定義什麼類型的。

9、檢測數據類型:

typeof(value); 或者typeof value;     返回這個變量的類型. 

說明 : 同一個變量, 可以進行不同類型的數據賦值.
<script type="text/javascript">

    var a;
    alert(typeof a);  // undefined
    a = 998;
    alert(typeof a); // number
    a = "用心學習";
    alert(typeof a); // string
    a = true;
    alert(typeof a); // boolean

</script>

10、算術運算符

+   -   *   /   %   ++  --

注意:

1.  由於js中的小數和整數都是number類型,不存在類似整數除以整數還是整數的結論。

2.  字符串和其他的數據使用+號運算,會連接成一個新的字符串。

3.  字符串使用除了+以外的運算符:如果字符串本身是一個數字,那麼會自動轉成number進行運算

,否則就會返回一個NaN的結果,表示這不是一個數字。NaN:not a number
<script>

    alert(1234 / 1000 * 1000); // 1234
    var s = "12";
    s -= 10;
    alert(s);  // 2
    var s = "aa";
    s -= 10;
    alert(s);  // NaN       Not a Number 不是一個數字
    var s = "12";
    s += 10;
    alert(s);       // 1210 

</script>

11、關係(比較)運算符

>       >=      <       <=      !=      

==  等於(只比較內容)   === 恆等於(比較內容的同時還要比較數據類型)

注意:關係運算符返回的結果只有兩個:true / false
<script>

    // 請問1 : 3 > 5, 結果爲 ?
    alert(3 > 5);   // false

    // 請問2 : “22” == 22  結果爲 ?
    alert("22" == 22); // true  (僅僅判斷數值)

    // 請問3 : “22” === 22  結果爲 ?

    alert("22" === 22);  // false  (恆等於, 數值和類型都要相等)

</script>

12、邏輯運算符

&&      與       true&&false     ====>false

||      或       true||false         ====>true

!       非       !true               ====>false

false(理解):false,  0,  null,  undefined 

true(理解):true, 非0,  非null,  非undefined

針對 && 順口溜: 找第一個出現的假值. (一假即假)

針對 || 順口溜: 找第一個出現的真值. (一真即真)

演示一:

<script>

    // 短路與 (一假即假)

    // 口訣 : 找第一個爲假的值.

    // 請問1 :  8 < 7 && 3 < 4, 結果爲 ?

    alert(8 < 7 && 3 < 4);  // false

    // 請問2 :  -2 && 6 + 6 && null 結果爲 ?

    alert(-2 && 6 + 6 && null); // null

    // 請問3 :  1 + 1 && 0 && 5  結果爲 ?

    alert(1 + 1 && 0 && 5); // 0

</script>

演示二:

<script>

    // 短路或 : 一真即真.

    // 口訣 : 找第一個爲真的值.

    // 請問1 :  0 || 23 結果爲 ?

    alert(0 || 23); // 23

    // 請問2 :  0 || false || true  結果爲 ?

    alert(0 || false || true); // true

    // 請問3 :  null || 10 < 8 || 10 + 10結果爲 ?

    alert(null || 10 < 8 || 10 + 10);  // 20

    // 請問4 :  null || 10 < 8 || false結果爲 ?

    alert(null || 10 < 8 || false); // false

</script>

13、三元運算符:

條件?表達式1:表達式2

如果條件爲true,返回表達式1的結果

如果條件爲false,返回表達式2的結果

演示:

<script>

    // 請問1 :  3 ? “aaa” : “bbb” 結果爲 ?

    alert(3 ? "aaa" : "bbb");       // aaa

    // 請問2 :  0 ? “ccc” : “ddd”  結果爲 ?

    alert(0 ? "ccc" : "ddd");       // ddd

</script>

14、if條件語句

這個和Java中if語句一樣。

演示:

<script>

      var score = 59;

      if (score >= 90) {

          alert("優秀");

      } else if (score >= 80) {

          alert("良好");

      } else if (score >= 60) {

          alert("及格");

      } else {

          alert("不及格");

      }

  </script>

15、switch分支結構

這個和java中switch結構一樣。只是Java中表達式爲:常量 整型(去long)、字符、字符串

演示:

<script>
      var score = 59;

      // 需求 : 將需要一個整型數值, 不想要小數點.

      // window 對象的 parseInt 方法.

      score = window.parseInt(score / 10 + "");

      // alert(score);

      switch (score) {

          case 10:

          case 9:

              alert("優秀!");

              break;

          case 8:

              alert("良好!");

              break;

          case 7:

          case 6:

              alert("及格!");

              break;

          default:

              alert("不及格!");

              break;

      }

  </script>

16、循環結構 while、do-while. for;

while(循環條件){循環體;}

do{循環體;}while(循環條件);

for(循環變量賦初值;循環條件;循環變量增值){循環語句;}

console.log(...); 以日誌的形式在控制檯輸出結果!

演示:

<script>
    // 需求 : 統計 1~100 之間能夠被3和7整除的數字個數
    var count = 0;

    // 1. 遍歷 1~100 之間的所有整型數值

    for (var i = 1; i <= 100; i++) {

        // 2. 判斷

        if (i % 3 == 0 && i % 7 == 0) {

            // alert(i);

            console.log(i);

            // 3. 累加個數

            count++;

        }

    }

    // 4. 查看結果

    // alert(count);

    console.log(count);

console.log顯示如下:

21 42 63 84 4

17、循環嵌套

演示案例9*9乘法表

 <style>

        table {

            /* 將 table 表格的線變成了細線 */

            border-collapse: collapse;

            /*color: red;*/

            border-color: red;

        }

    </style>

    <script>

        // 需求 : 九九乘法口訣表

        document.write("<table border='1px solid red' cellspacing='0' cellpadding='8px'>");

        document.write("<caption>九九乘法口訣表</caption>");

        for (var i = 1; i <= 9; i++) {

            document.write("<tr>");

            for (var j = 1; j <= i; j++) {

                document.write("<td>");

                document.write(j + "*" + i + "=" + (j*i) + "&nbsp;&nbsp;&nbsp;&nbsp;");

                document.write("</td>");

            }

            document.write("</tr>");

        }

        document.write("</table>");

    </script>

18、自定義函數

函數是命名的獨立的語句段,這個語句段可以被當作一個整體來引用和執行:

格式:

function 函數名(形式參數){函數體}

調用函數:函數名(實際參數);

18.1、函數只有被調用後纔會執行

18.2、如果函數需要返回值、直接使用return 返回、不會像java一樣要考慮返回值的類型

<script type="text/javascript">

    // 定義一個函數 : function

    function demo2() {

        return 666;

    }

    // 調用函數 :

    alert(demo2());

</script>

18.3、如果函數需要傳遞參數、不需要指定參數的類型、直接使用變量即可

<script type="text/javascript">

    // 定義一個函數 : function

    function demo3(a, b) {

        return a + b;

    }

    // 調用函數 :

    alert(demo3(10, 20));//顯示30

</script>

18.4、js中出現二個重名的函數名、後者會把前面的覆蓋掉

對比java、java有重載(同名不同參)、重寫(同名同參同返回值類型、方法體不一樣)

演示:

<script type="text/javascript">
    // 定義一個函數 : function

    function demo4(a, b) {

        alert("調用1...");

    }

   function demo4() {

       alert("調用2...");

   }

    demo4(10, 20);

    demo4();

</script>

網頁會顯示 調用2...

19、匿名函數

匿名函數是沒有名字的函數

function(形式參數){函數體}

調用方式:將匿名函數賦值給一個變量,通過變量名調用函數

定義函數並賦值給變量:var fn = function(形式參數){函數體}

調用函數:fn(實際參數);

演示:

<script type="text/javascript">

    // 匿名函數 : 沒有名稱的函數

    var func = function(i, u) {

        alert(i + " love " + u);

    }

    // 調用函數 :

   func("柳巖", "小白");//顯示柳巖love小白

</script>

20、案例-輪播圖

說明1 : script 標籤需要放在 body 標籤之後.

說明2 : window.setInterval(“字符串函數名稱()”, 時間毫秒數);

說明3 : window.setInterval(函數名稱, 時間毫秒數);

說明4 : window.setInterval(匿名函數, 時間毫秒數);            推薦使用
<head>

    <meta charset="UTF-8">

    <title>輪播圖</title>

    <style>

        div {

            width: 80%;

            margin: 50px auto;

        }

        img {

            width: 100%;

        }

    </style>

</head>

<body>

    <div class="container">

        <img src="../img/01.jpg" alt="圖片">

    </div>

</body>

實現一:

<script>

    // 需求 : 動態獲取頁面中的 img 標籤, 然後修改 img 標籤的 src 屬性.

    // 1. 獲取 img 標籤

    var img = document.getElementById("img");

    // alert(img);

    // 定義一個變量

    var count = 1;

    // 1.2 定義一個函數

    function changeImageSrc() {

        count++;

        img.src = "../img/0"+count+".jpg";

        // 判斷

        if (count == 8) {

            count = 0;

        }

    }

    // 2. 循環切換圖片

    // window.setInterval(函數, 時間毫秒); 在指定的時間毫秒間隔, 不斷調用第一個參數傳入的函數.

    // 調用方式一 :

    // window.setInterval("changeImageSrc()", 1000);

    // 調用方式二 :

    window.setInterval(changeImageSrc, 1000);

</script>

實現二:

<script>
    // 需求 : 動態獲取頁面中的 img 標籤, 然後修改 img 標籤的 src 屬性.

    // 1. 獲取 img 標籤

    var img = document.getElementById("img");

    // alert(img);

    // 定義一個變量

    var count = 1;

    // 2. 循環切換圖片

    // window.setInterval(匿名函數, 時間毫秒); 在指定的時間毫秒間隔, 不斷調用第一個參數傳入的匿名函數.

    window.setInterval(function() {

        count++;

        img.src = "../img/0"+count+".jpg";

        // 判斷

        if (count == 8) {

            count = 0;

        }

    }, 1000);

</script>

21、js事件

21.1、事件概述:

事件三要素:

1.  事件源:被監聽的html元素(就是這個事件加給誰),就是某個(某些)html標籤

2.  事件類型:某類動作,例如點擊事件,移入移除事件,敲擊鍵盤事件等

3.  執行指令:事件觸發後需要執行的代碼,一般使用函數進行封裝

語法格式:事件源.事件類型=執行指令
案例:
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>事件</title>

    <script>

        // 窗口 : window 對象提供了一個事件類型  onload 頁面加載完成事件.

        // 事件源 : window    事件類型 : 頁面加載完成事件 (onload)  執行指令: 就是賦值的 function 函數.

        window.onload = function () {

            // 獲取頁面的 btn 按鈕

            var btn = document.getElementById("btn");

            // alert(btn);

            // 給 btn 按鈕綁定一個事件 (單擊事件 onclick)

            // 事件源 : btn按鈕    事件類型 : 單擊事件 (onclick)  執行指令: 就是賦值的 function 函數.

            btn.onclick = function () {

                alert("恭喜你, 中了 500 萬!");

            }

        }
    </script>
</head>
<body>

    <button id="btn">按鈕</button>
</body>

</html>

到此基礎結束。

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