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

溫馨提示×

溫馨提示×

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

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

一篇文章能夠看懂基礎源代碼之JavaScript篇

發布時間:2020-08-02 14:35:48 來源:網絡 閱讀:334 作者:棲木之地 欄目:開發技術

javascript:解釋型語言,使用js引擎進行解釋,目前常用版本為ECMAScript6

js分為三部分:DOM,BOM,ECMAScript

DOM:Document Object Model 文檔對象模型

BOM:Browser Object Model 瀏覽器對象模型

ESCMAScript:腳本執行

DOM:主要負責控制頁面組件的顯示,各種web組件元素的顯示

BOM:主要是負責瀏覽器的操作,例如地址欄的數據操作,瀏覽器網頁顯示窗口的關閉,大小,加載操作,導航前進后退操作,

瀏覽器瀏覽過程可以參看之前發過的文章:

BS架構瀏覽過程原理(一)

BS架構瀏覽過程原理(二)

javascript源碼后綴名一般為js,可以直接在html里面寫代碼,也可以另外存一個js文件,然后在html代碼里引入,單獨寫js文件時只需要直接寫內容即可

在html代碼里直接使用
<script type="text/javascript">
//內聯js代碼
</script>
<script>
//內聯js代碼
</script>
在js文件里書寫代碼,則在html使用引入的方式
<script src="Myjs.js"></script>

  1. 聲明變量:
    var myVar = 0; //推薦寫法是代碼行結束不用寫分號;,不過推薦變來變去的,沒有統一
    let myVar = '1' //let是推薦聲明變量的,因為let的作用域只在本代碼塊里,而var一不注意可能會導致變量變成全局變量
    let myArr = [1,2,3] //聲明數組變量
    let myObj = {a: 1, b: '2'} //聲明一個對象實例
    myObj.a //獲取對象的a屬性
    myObj['b'] //獲取對象的b屬性
    //變量前置,如果使用var聲明了變量,那么即使var語句在最后,變量在前面使用也不會報錯,但如果沒有聲明直接使用變量則會報錯。賦值除外,例如:
    console.log(a) ---->undefined
    b = 20 ---->不會錯
    console.log(c) ------>報錯
    var a = 10

  2. 聲明方法:
    function myFunc() {} //不帶參
    function myFunc(myParam) {} //帶參
    當調用方法時,如果方法沒有返回值,那么得到的是undefined
    let a = myFunc() // a=undefined
    給函數的原型鏈再追加內容:此時myFunc相當于一個類,需要new實例化才能調用追加的內容
    myFunc.prototype.newMethod = function () {}

  3. 函數的調用和對象的實例化
    當直接調用函數時,myFunc(),得到的效果是執行一次函數方法
    let a = myFunc() // a=undefined
    當使用new myFunc()時,得到的效果是實例一個對象,并執行一次函數方法,此時得到的是一個對象實例
    let a = new myFunc() // a是myFunc的實例對象

  4. 聲明一個類:
    ES6有關于類的定義,在后端應用中會把類class編譯functon的代碼,所以后端能夠識別,但直接寫在前端時,瀏覽器是無法正確識別。需要編譯瀏覽器才能識別
    class MyJsClass{
    constructor() {} //無參構造函數
    constructor (myVar) {} //有參構造函數
    myMethod() {} //聲明方法
    }
    //繼承
    class MySon extends MyFather{}
    另外一種方式聲明類:
    function MyFuncClass () {}
    MyFuncClass.myStaticMethod = function (){} //給類掛載一個靜態方法
    MyFuncClass.myStaticMethod()//調用靜態方法,不能通過實例對象調用
    MyFuncClass.prototype.myMethod = function () {}//相當于聲明一個方法,實例可以調用
    new MyFuncClass().myMethod() //調用實例方法
    let myAnnoFunc = function () {} //聲明一個函數,可以通過myAnnoFunc()調用
    //閉包:把外部不能獲得的內容通過return出去,導致外部獲得內部的引用,使用不當會導致內存溢出

        function a() {
            let myInnerVar = 1 
            let b = function () {
                return myInnerVar
             }
            return b
        }
  5. 箭頭函數 :簡化function的寫法
    myVar => { 執行體}
    myVar => 執行語句
    (myVar1,myVar2) =>{執行體}

  6. 運算符,算術運算,邏輯運算

        • / % ++ -- && || !
  7. 邏輯判斷:
    if (myCondition){}
    else if (condition2) {}
    else {}

  8. 循環:

    for(let i=0;i<10;i++){}
    
    for(let a in myObj){}
    
    myArr.forEach(item =>{})
    
    myArr.forEach((item,index) => {})
    
    do {} while (condition)
    
    while (condition) {}
    //分支:
    switch (myVar) {
        case 1:
             //do
             break
        case 2:
             break
        default:
                break
    }

    所有未聲明的卻使用的變量會報undefined
    如果對undefined對象進行讀取屬性的操作會報Error

  9. 自執行函數 :(function(){})() //函數自執行
    window對象是整個js對象的根對象,所有的內容都是掛載在window下的,稱為全局變量和全局函數
    window.myProp
    window.myMethod()
    函數自執行后相當于把內容掛載在windows上,例如
    (function(){
    myProp = 10
    })()
    執行后相當于window.myProp = 10
向AI問一下細節

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

AI

嘉兴市| 隆德县| 陇南市| 凭祥市| 华池县| 和龙市| 庄河市| 习水县| 徐闻县| 东山县| 甘泉县| 临泉县| 延安市| 北安市| 东莞市| 岳阳市| 阿图什市| 太谷县| 陈巴尔虎旗| 衡东县| 仪陇县| 嘉定区| 景洪市| 太原市| 江口县| 昭觉县| 双峰县| 镇赉县| 临汾市| 苍梧县| 孝义市| 花垣县| 凤阳县| 奉贤区| 鄢陵县| 磐石市| 崇左市| 兴海县| 铁力市| 金川县| 中卫市|