中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

avaScript基本的語法規則是什么

發布時間:2022-02-25 11:35:50 來源:億速云 閱讀:125 作者:iii 欄目:開發技術

今天小編給大家分享一下avaScript基本的語法規則是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、運算符

  •     js中的+-*/運算與c語言較為相似,簡寫方式也類似

  •     ++、--、+=、%=等運算規則也相同

  •     在js中===代表絕對等于(值與類型都相同才算相同)

  •     !==(不絕對等于)值和類型有一個不相同或者都不相同為真

  •    js中還支持三目運算符

  •     a>b?'a大于b':'b大于a'

二、分支語句

 js中的條件語句 :

  if分支:

     if
     if...else...
     if...else if..else...

  switch分支:   

     switch()
     {
         case 1:
           {}
           break;
         case 2:
           {}
           break;
         default:{}//默認情況
     }

三、循環語句

  •       for(初始條件;終止條件;循環變量的變化)

  •       for/in循環遍歷對象的屬性

  •       while

  •       do/while

  •       break

  •       continue

  •       與c語言非常類似

<!--
     break的另一種用法
     label:
       語句塊
       ...
       break labelname;
       跳出指定的標簽塊
-->

四、異常的捕獲與處理

捕捉異常
try{

}
捕捉到異常后執行的語句
catch(err){

}
無論是否會有異常,最后執行的語句
finally{

}

五、js中的this關鍵字

面向對象語言中 this 表示當前對象的一個引用。   但在 JavaScript 中 this 不是固定不變的,它會隨著執行環境的改變而改變。在方法中,this 表示該方法所屬的對象。 如果單獨使用,this 表示全局對象。

  •  在函數中,this 表示全局對象。在函數中,在嚴格模式下,this 是未定義的(undefined)

  •  在事件中,this 表示接收事件的元素。 類似 call() 和 apply() 方法可以將 this 引用到任何對象。

apply 和 call 允許切換函數執行的上下文環境(context),即 this 綁定的對象,可以將 this 引用到任何對象。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="demo"></p>
    <p id="demo1"></p>
    <script>
        var p1={
            firname:"阿薩德",
            age:"28",
            f:function() {
                return this.firname+" "+this.age;
            }
        }
        var p2={
            firname:"張三",
            age:"20"
        }
        x=p1.f.call(p2)
        xx=p1.f.call(p1)
        document.getElementById("demo").innerHTML=x
        document.getElementById("demo1").innerHTML=xx
    </script>
</body>
</html>

六、let與const定義變量使用規則

 const定義常量與使用let 定義的變量相似:

  •     二者都是塊級作用域

  •     都不能和它所在作用域內的其他變量或函數擁有相同的名稱

兩者還有以下兩點區別:

  •     const聲明的常量必須初始化,而let聲明的變量不用

  •     const 定義常量的值不能通過再賦值修改,也不能再次聲明。

  •     而 let 定義的變量值可以修改。    

    let聲明的變量:

 在不同的{}內可以使用let定義不同的變量,var不行,而且let定義的變量不能使用var再次定義,var定義的變量也不能使用let再次定義, const與var、const與let同樣,使用var關鍵字聲明的全局作用域變量屬于window對象。

  •        使用let關鍵字聲明的全局作用域變量不屬于window對象。

  •         使用var關鍵字聲明的變量在任何地方都可以修改。

  •        const可以一次定義多個常量值,并且每個常量值的名字不相同

  •         const指向的對象不可以改變,但是對象指向的東西可以改變

  myarray=["1","2","3"]
        myarray[0]="100"//正確
        myarray=["2","3"]//錯誤
  •         const聲明的常量可以在不同塊作用級重新聲明和賦值

  •         可以使用Object.freeze()方法來 凍結變量 (指向與內容都不可變

  •        const與let都是先聲明后使用

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="demo"></p>
    <p id="demo1"></p>
    <p id="demo2"></p>
    <script>
        let x=10;
        var x1=10;
        // 用const修飾的變量被修改后會報錯
        const x2=10
        x=11;
        x1=11;
        // x2=11;
        document.getElementById("demo").innerHTML=x;
        document.getElementById("demo1").innerHTML=x1;
        document.getElementById("demo2").innerHTML=x2;
    </script>
</body>
</html>

七、js中的void鏈接

javascript:void(0)與#+id的本質區別

  • 前者不會改變網頁的url,而后者會將url定位到#+id

語法格式如下:

        void func()
        javascript:void func()

或者:

        void(func())
        javascript:void(func())

  •  javascript:void(0) 中最關鍵的是 void 關鍵字, void 是 JavaScript 中非常重要的關鍵字,該操作符指定要計算一個表達式但是不返回值。href="#"與href="javascript:void(0)"的區別# 包含了一個位置信息,默認的錨是#top 也就是網頁的上端。 而javascript:void(0), 僅僅表示一個死鏈接。在頁面很長的時候會使用 # 來定位頁面的具體位置,格式為:# + id

如果你要定義一個死鏈接請使用 javascript:void(0) 。可以使用javascript:void()執行想要的函數,彈窗,等等

語法規則:

  <a href="javascript:void(0);" rel="external nofollow" >點我</a>
  <a href="#demo" rel="external nofollow" >回頂部</a>

八、異步編程setTimeout

    異步(Asynchronous, async)是與同步(Synchronous, sync)相對的概念。在我們學習的傳統單線程編程中,程序的運行是同步的(同步不意味著所有步驟同時運行,而是指步驟在一個控制流序列中按順序執行)。而異步的概念則是不保證同步的概念,也就是說,一個異步過程的執行將不再與原有的序列有順序關系。

簡單來理解就是:同步按你的代碼順序執行,異步不按照代碼順序執行,異步的執行效率更高。

回調函數就是一個函數,它是在我們啟動一個異步任務的時候就告訴它:等你完成了這個任務之后要干什么。這樣一來主線程幾乎不用關心異步任務的狀態了,他自己會善始善終。啟用回調函數  setTimeout("函數名",間隔時間(毫秒))可以將函數定義到setTimeout函數內

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>回調函數等待 3 秒后執行。</p>
    <p id="demo"></p>
    <p id="demo1"></p>
    <p id="demo3"></p>
    <p id="demo4"></p>
<script>
    // 第一種方式
    function print() {
        document.getElementById("demo").innerHTML="666";
    }
    //這里是定時三秒
    setTimeout(print, 3000);
    // 第二種方式
    setTimeout(function () {
    document.getElementById("demo1").innerHTML="666";
    }, 3000);
    // 測試
    // 主線程先打印出來,子線程繼續接上
    setTimeout(function () {
    document.getElementById("demo3").innerHTML="-1!";
    }, 3000);
    document.getElementById("demo4").innerHTML="-2!";
    console.log("2");
</script>
</body>
</html>

九、函數閉包

  •    閉包是一種保護私有變量的機制,在函數執行時形成私有的作用域,

  •    保護里面的私有變量不受外界干擾。直觀的說就是形成一個不銷毀的棧環境。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

</head>
<body>
    <script>
        var add = (function () {
            var count = 0;
            return function(){return count+=1;}
        })();
        function f(){
            document.getElementById("demo").innerHTML=add();
        }
    </script>
    <div id="demo"></div>
    <button type="button" onclick="f()">點擊加一</button>
</body>
</html>

以上就是“avaScript基本的語法規則是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐池县| 宝丰县| 绥化市| 肇庆市| 新泰市| 土默特右旗| 枝江市| 孝义市| 怀来县| 北流市| 哈尔滨市| 宜章县| 策勒县| 万全县| 遂昌县| 青铜峡市| 辽中县| 佳木斯市| 新乡市| 郴州市| 沅江市| 泸溪县| 昌乐县| 东平县| 蚌埠市| 收藏| 桃江县| 海林市| 共和县| 金川县| 丹江口市| 顺平县| 新乡市| 高雄市| 三亚市| 公安县| 合江县| 延寿县| 五华县| 茶陵县| 甘孜县|