JavaScript之 JavaScript 基礎知識

1、概念:

    是一門客戶端的腳本語言,每一個瀏覽器都有JavaScript的解析引擎

    *腳本語言:不需要編譯,直接可以被瀏覽器解析執行

 

2、功能:

    可以增強用戶和 html 的交互過程,可以控制html元素,增強用戶體驗

 

3、JavaScript的發展史:

     1. 1992年,Nombase公司,開發出第一門客戶端腳本語言,專門用於表單的校驗,命名爲:C—,後更名爲:ScriptEase

     2. 1995年 ,  Netscape ( 網景)公司,開發出一門客戶端腳本語言:LiveScript。後來,請SUN公司專家,修改LiveScript,命名JavaScript

     3. 1996年,微軟借鑑(ChaoXi)JavaScript開發出JSscript

     4. 1997年,ECMA(歐洲計算機制造商協會),ECMAScript,就是所有客戶端腳本語言的標準

    

    *JavaScript == ECMAScript + JavaScript (BOM + DOM)

 

4、ECMAScript

    *客戶端腳本語言標準

        1.基本語法

            1.與html結合方式

                1.內部JS

                    * 定義<script>標籤,標籤體內就是js代碼

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<!--

內部JS

外部JS

-->

<script>

alert("hello world!");

</script>    

<script src="../js01/a.js"></script>

</head>

<body>

</body>

</html>

                2.外部JS

                    *定義<script>標籤,通過 src 屬性引用外部 js 文件

 

            2.註釋

                單行注註釋://

                多行註釋:/*註釋*/

 

            3.數據類型

                1.number:數字。整數/小數/NAN(not a number:不是一個數字的數字類型)

                2.string:字符串。字符串 “abc” “a” ‘abc’

                3. boolean:true 和 false

                4.null:一個對象爲空的佔位符

                5.undefined :未定義。如果一個變量沒有給初始化值,則會被賦值爲undefined

    

            4.變量

                *變量:一小塊存儲數據的內存空間

                *Java語言是強類型語言,而JavaScript是弱類型語言

                    *強類型:在開闢變量存儲空間時候,定義了空間將來存儲的數據的數據類型,只能存儲固定類型的數據

                    *弱類型:在開闢變量存儲空間的時候,不定義空間將要存儲數據的數據類型,可以存任意類型數據

            

            5.運算符

                1.一元運算符:只有一個運算數的運算符(++ ,—,+(正號),-(負號))

                    *在JS中如果運算數不是運算符所要求的類型,那麼JS引擎會自動將運算數進行轉換,string轉number按照字面值轉換,如果字面值不是數字,則轉爲NaN 

                2.算術運算符:(+,-,*,/…)

                3.賦值運算符:(=,+=,-=...)

                4.比較運算符:(<,>,<=,>=,==,===(全等於:在比較之前先判斷類型))

                5.邏輯運算符:(&&,||,!)

                    *其他類型轉boolean (1.number:0或NaN爲假,其他爲真 ,2.string:除了空字符串””爲false 其他都爲true ,3.null && undefined都是false ,4.對象:所有對象都爲true)

                6.三元運算符:(?:)

                7.特殊語法:

                    1.語句一行只有一個,可不加分號(不建議)

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <script>

            var a = 3

            alert(3)

        </script>

    </head>

    <body>

    </body>

</html>

                    2.變量定義使用 var  也可以不使用(用:局部變量;不用:全局變量)

 

            6.流程控制語句

                 1. if…else

                 2. switch

                    *在Java中,switch可以接收的數據類型(byte,short,int,long,enum,String)

                    *js中可以接收任意數據類型 

                        

switch(){

 case()

  //…

  break;

 default

   break;      

}   

 

 

        2.基本對象

            1.Function:函數(方法對象)

            1.創建:

                1.var fun = new Function(形參列表,方法體);

 

                2.function 方法名稱(形參列表){

                    // 方法體

                }

 

                3.var 方法名 = function(形參列表){

                    // 方法體

                }

            2.方法

 

            3.屬性

 

            4.特點

                1.方法定義時,形參類型不用寫

                2.方法是一個對象,同名方法會覆蓋

                3.在JS中,方法的調用只和方法的名稱有關,和參數列表無關

                4.在方法聲明中有一個隱藏的內置對象(數組),arguments,封裝所有的實際參數

 

            5.調用:

                方法名稱(實際參數列表);

          

/*

Function:函數(方法對象)

1.創建:

1.var fun = new Function(形參列表,方法體);

2.function 方法名稱(形參列表){

    // 方法體

}

3.var 方法名 = function(形參列表){

    // 方法體

}

2.方法

3.屬性

4.特點

1.方法定義時,形參類型不用寫

2.方法是一個對象,同名方法會覆蓋

3.在JS中,方法的調用只和方法的名稱有關,和參數列表無關

4.在方法聲明中有一個隱藏的內置對象(數組),arguments,封裝所有的實際參數

5.調用:

方法名稱(實際參數列表);

*/

// 創建方式1

/*var fun1 = new Function("a","b","alert(a);");

// 調用方法

fun1(3,4);*/

// 創建方式2

/*function fun2(a,b){

alert(a+b);

}

// 調用方法

fun2(3,4);*/

// 創建方式3

// var fun3 = function(a,b){

//  alert(a * b);

// }

// // 調用方法

// fun3(3,4);

/*

*求兩數之和

*/

// function fun3(a, b){

//  alert(a + b);

// }

// fun3(5,6);

/**

* 求任意數之和

*/

function fun4(){

var sum = 0;

for(var i = 0; i < arguments.length; i++){

  sum += arguments[i];

}

return sum;

}

var sum = fun4(1,2,3,4,5);

alert(sum);

    2.Array:數組對象

    1.創建:

        1.var arr = new Array(元素列表);

        2.var arr = new Array(默認長度);

        3.var arr = [元素列表];

    2.方法

        1.join:將數組中的元素按指定的分隔符拼裝成字符串

    3.屬性

        1.length:數組的長度

    4.特點

        1.JS中元素類型是可變的,長度是可變的    

var arr1 = new Array(1,2,3);

    var arr2 = new Array(5);

    var arr3 = [1,2,3,4];

    var arr4 = new Array;

    

    document.write(arr1 + "

");

    document.write(arr2 + "

");

    document.write(arr3 + "

");

    document.write(arr4 + "

");

 

        3.  Math:數學

            1.創建:

                1.Math對象不用創建,直接使用:Math.方法名()

                

            2.方法:

                1.random():返回0~1之間的隨機數(含0不含1)

                2.ceil():對數進行向上舍入

                3.floor():對數進行向下舍入

                4.round():對數進行四捨五入

            3.屬性:

                1.PI

          

           /*

           取1~100的隨機整數

           */

          var a = (Math.floor(Math.random()*100)+1)

          document.write(a)

    

        4. RegExp:正則表達式對象

        1.正則表達式:定義字符串組成規則

            1.單個字符:[]

                如:[a][ab][a-zA-Z0-9]

                特殊符號代表特殊含義的單個字符:

                \d:單個字符[0-9]

                \w:單個字符[a-zA-Z0-9]、

            2.量詞符號:

                ?:出現0次或1次

                *:出現0次或多次

                +:出現1次或多次

                {m,n}:m<=數量<=n({m,}{,n})

            3.開始結束符號

                1.^:開始

                2.$:結束

        2.正則表達式對象

            1.創建

                1.var reg = new RegExp("正則表達式");

                2.var reg = /正則表達式/;

            2.方法        

                1.test(參數):驗證指定字符串是否符合正則表達式定義

   

    var reg1 = new RegExp("^\\w{6,12}$");

    // var reg2 = /\w{6,12}/

    // alert(reg1);

    // alert(reg2);

    var name = "zhangsan";

    //驗證

    var flag = reg1.test(name);

    alert(flag);

 

DOM簡單學習:

    *功能:控制html文檔的內容

    *代碼:獲取頁面標籤(元素)對象Element

        Document.getElementById(“id值”):通過元素的id獲取元素對象

    *操作Element對象

        1.修改屬性值

            1.明確獲取的對象是哪一個?

            2.查看API文檔:找其中有哪些屬性可以設置

        2.修改標籤體內容

            *innerHTML

##事件的簡單學習

    *概念:某些組件被執行了某些操作後,觸發某些代碼的執行

    *如何綁定事件

        1.直接在html標籤上,指定事件的屬性(操作),屬性值就是JS代碼

            *事件:onclick---單擊事件

        2.通過js獲取元素對象,指定事件屬性,設置一個函數。      

 

    #BOM:瀏覽器對象模型

    1.概念:將瀏覽器的各個部分封裝成對象

    2.組成:

        Window:窗口對象

    1.創建

    2.方法

        1、與彈出框有關的方法

            1.alert()顯示帶有一段信息和一個確定按鈕的警告框

            2.confirm()顯示帶有一段信息以及確認按鈕和取消按鈕的對話框

                * 如果用戶點擊確定按鈕,方法返回true

                * 如果用戶點擊取消按鈕,方法返回false

            3.prompt()顯示可提示用戶輸入的對話框

                *返回值:用戶輸入的信息

        2、與打開和關閉有關的方法

            1.open()打開窗口

            2.close()關閉窗口(誰調用我我關誰)

        3、與定時器有關的方法

            1.setTimeout()在指定的毫秒數後調用函數或計算表達式

                *參數:

                1.js代碼或計算表達式

                2.時間

            2.clearTimeout()取消由setTimeout()方法設置的timeout

            

            3.setInterval()按照指定的週期(毫秒計)來調用函數或計算表達式

            4.clearInterVal()取消setInterval()設置的

    3.屬性

    4.特點

        * Window對象不用創建可以直接使用:Window.方法名()

        * Window引用可以省略 方法名()

    

    

*/

    // window.alert("hahaha!");

    // alert("hahahaha!");

    //var flag = confirm("您確定要離開嗎?");

    //alert(flag);

    // if(flag){

    //     //退出操作

    // }else{

    //     //提示:手別抖

    //     alert("手別抖!")

    // }

    //var message = prompt("請輸入用戶名");

    //alert("輸入的用戶名:"+message);

<body>

        <!-- <input id="openBtn" type="button" value="打開新窗口" />

         <input id="closeBtn" type="button" value="關閉新窗口" />-->

         <script>

        //     //打開新窗口

        //     var button01 = document.getElementById("openBtn");

        //     var newwin01;

        //     var fun01 = function() {

        //         newwin01 = open("https://www.baidu.com");

        //     }

        //     button01.onclick = fun01;

        //     //關閉新窗口

        //     var button02 = document.getElementById("closeBtn");

        //     var fun02 = function() {

        //         newwin01.close();

        //     }

        //     button02.onclick = fun02;

        //一次性定時器

        function fun01(){

            alert("boom~")

        }

        var id = setTimeout(fun01,3000);

        clearTimeout(id);

        //循環定時器

        //setInterval(fun01,2000);

        </script>

        

    </body>

 

輪播圖:

<html>

    <head>

    <meta charset="utf-8">

    <title>輪播圖</title>

    <script>

        //1.修改src屬性

        var number = 1;

        function fun01(){

            number ++;

            if(number > 3){

                number = 1;

            }

            //獲取img對象

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

            img.src = "../img/banner_"+ number +".jpg";

        }

        //2.設置定時器

        setInterval(fun01,3000);

    </script>

    </head>

    <body>

        <img id="img" src="../img/banner_1.jpg" width="100%">

    </body>

</html>

        Navigator:瀏覽器對象



        *Screen:屏幕對象

        *History:歷史記錄對象

        *Location:地址欄對象 

1.創建(獲取)

    1.window.location

    2.location

2.方法

    reload():重新加載當前頁面,刷新

3.屬性

    href    

<html>

<head>

<meta charset="utf-8">

<title>location對象</title>





</head>

<body>

<input type="button" id="btn" value="刷新" />

<script>

    //reload方法,定義一個按鈕,點擊按鈕刷新當前頁面

    //1.獲取按鈕

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

    //2.綁定單擊事件

    btn.onclick = function(){

        //3.刷新頁面

        location.reload();

    }

    //獲取href

    var href = location.href;

    alert(href);

</script>

</body>

</html>

自動跳轉:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title>自動跳轉</title>

        <style>

            p{

                text-align: center;

            }

            span{

                color: red;

            }

        </style>

        <script>

            /**

             * 分析:

             * 1.顯示頁面效果

             * 2.倒計時讀秒

             *     2.1定義一個方法,獲取span標籤,修改spam標籤內容,時間

             *     2.2定義一個定時器,一秒一次

             */

        </script>

    </head>

    <body>

        <p>

            <span id="time">5</span>秒之後自動跳轉至首頁...

        </p>

        <script>

            function showTime(){

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

                time.innerHTML--;

                if(time.innerHTML == 1){

                    location.href = "https://www.baidu.com";

                }

            }

            setInterval(showTime,1000);

        </script>

    </body>

</html>

 

##DOM:Document Object Model 文本對象模型

將標記語言文檔的各個組成部分,封裝成對象,可以使用這些對象,對標記語言文檔進行CURD操作

    *W3C DOM標準被分爲3個不同的部分:

    1.核心DOM--針對任何結構化文檔的標準模型

        Document:文檔對象

        Element:元素對象

        Attribute:屬性對象

        Text:文本對象

        Comment:註釋對象

        Node:節點對象,其他5個父對象

 

    2.XML DOM--針對 XML 文檔的標準模型

    3.HTML DOM--針對 HTML 文檔的標準模型

        

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