• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    JS學習筆記

    2021-3-19    前端達人

    JS學習筆記

    js和java的異同點

    變量聲明

    函數聲明

    js中的變量提升和函數提升

    為什么有變量提升

    總結

    js和java的異同點

    首先,js的語法和kottlin的語法有些相似。比如var,方法聲明用



      function 方法名稱 (參數名稱...){

      //方法內部邏輯

      }



    還有變量類型聲明 :



    數據類型 : 變量名=值



    區別:一:js的數據類型和java類似。只不過js中的數據類型number將java中的int,double,float整合了。

    二:js中可以不用聲明變量類型。變量不聲明數據類型的話,那么他的類型取決于當前的值是什么數據類型。舉例:



    var num=0;

    num-"lyyyyyyyyyyyyyy";

    num=[];

    num={};



    三:js中的類型判斷:



    判斷基本類型,返回一個字符串

    1

    console.log(typeof '');//string

    console.log(typeof []);//object

    console.log(typeof {});//object

    console.log(typeof 1);//number

    console.log(typeof null);//object

    console.log(typeof undefined);//undefined

    console.log(typeof true);//boolean

    console.log(typeof function(){});//function

    console.log(typeof /\d/);//object





    檢查某個對象屬于哪個構造函數,返回true/false

    1

    function A(){};

    function B(){};

    let a = new A();

    console.log(a instanceof A);

    console.log(a instanceof B);

    console.log([] instanceof Array);//true

    console.log({} instanceof Object);//true

    console.log(/\d/ instanceof RegExp);//true

    console.log(function(){} instanceof Object);//true

    console.log(function(){} instanceof Function);//true





    變量聲明

    js的變量聲明其實大體上可以分為三種:var聲明、let與const聲明和函數聲明。



    函數聲明

    doSomething();

     

    function doSomething() {

        console.log('doSomething');

    }

    var foodoSomething= 2;



    你覺得上面會輸出什么?TypeError嗎?其實輸出的結果是foo。這就引出了我們的問題了,當函數聲明與其他聲明一起出現的時候,是以誰為準呢?答案就是,函數聲明高于一切,畢竟函數是js的第一公民。



    那么,下面的例子呢?



    doSomething();

     

    function doSomething() {

        console.log('1');

    }

     

    function doSomething() {

        console.log('2');

    }



    當出現多個函數聲明,那怎么辦呢?以上代碼輸出結果為2。

    因為有多個函數聲明的時候,是由最后面的函數聲明來替代前面的。



    domeSomething();

     

    var domeSomething= function() {

        console.log('domeSomething');

    }



    var domeSomething = function() {}這種格式我們叫做函數表達式。



    它其實也是分為兩部分,一部分是var foo,而一部分是foo = function() {},參照例2,我們可以知道,這道題的結果應該是報了TypeError(因為foo聲明但未賦值,因此foo是undefined)。



    js中的變量提升和函數提升

    在js中對變量進行操作后打印值經常會出現undefined的現象。其實原因是因為js中有一個叫做變量提升的功能。舉例:

    1

    var data="lyyyyy";

    getData();

    function getData(){

    //第一次打印

    console.log("data值為: ", data);

    var data="yyyyyyy";

    //第二次打印

    console.log("data值為: ", data);

    }



    打印的值第一個為undefined,而第二個打印的值為yyyyy.



    原因:

    在執行getData()方法的時候會在函數內部首先將變量的聲明提升到第一步。

    然后再聲明函數內部的函數(如果函數內部有函數的話)。

    之后才會按照方法內部的邏輯先后順序執行代碼。前兩步只是聲明!!!

    看到這里應該就已經知道為什么會有上面那樣的結果了。



    實際的方法內部代碼執行順序應該是這樣的:



    function getData(){

    //一。聲明變量

    var data;

    //二。聲明函數(如果函數內部有函數的話)



    //三。按照代碼的順序執行

    console.log("data值為: ", data);

    data="yyyyyyy";

    //第二次打印

    console.log("data值為: ", data);

    }



    看到拆分后的代碼執行順序對結果也就不迷茫了。



    為什么有變量提升

    那么為什么會出現變量提升這個現象呢?



    其實js和其他語言一樣,都要經歷編譯和執行階段。而js在編譯階段的時候,會搜集所有的變量聲明并且提前聲明變量,而其他的語句都不會改變他們的順序,因此,在編譯階段的時候,第一步就已經執行了,而第二步則是在執行階段執行到該語句的時候才執行。



    總結

    1.js會將變量的聲明提升到js頂部執行,因此對于這種語句:var a = 2;其實上js會將其分為var a;和a = 2;兩部分,并且將var a這一步提升到頂部執行。



    2.變量提升的本質其實是由于js引擎在編譯的時候,就將所有的變量聲明了,因此在執行的時候,所有的變量都已經完成聲明。

    3.當有多個同名變量聲明的時候,函數聲明會覆蓋其他的聲明。如果有多個函數聲明,則是由最后的一個函數聲明覆蓋之前所有的聲明。


    ————————————————
    版權聲明:本文為CSDN博主的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。


    藍藍設計m.lzhte.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://m.lzhte.cn

    存檔

    主站蜘蛛池模板: 狠狠综合久久久久综合网小蛇| 午夜天堂av久久久噜噜噜| 在线观看黄片在线播放视频| 狠狠色综合TV久久久久久| 干屄视频| 99j久久精品久久久久久| 国产中年熟女大集合| 人人超碰人人| 国产av毛片精品一区二区三区| 亚洲色欲天天天堂色欲网女| 色综合五月激情综合色一区| 国产无遮挡a片又黄又爽漫画| 亚洲第一自拍偷拍视频| 情趣房tp漂亮大学生情侣| 亚洲精品videossex国产高清| 丁香婷婷深情五月亚洲 | 试看a级看一毛片二十分钟| 墨江| 东京热无码人妻系列综合网站| 强开小婷嫩苞又嫩又紧视频韩国| 香蕉视频一级在线观看| 欧美交a欧美精品喷水| 四虎影视库国产精品一区| 大帝AV在线一区二区三区| 国产精品私拍99pans大尺度| 中文字幕女教师系列| 2022免费国产精品福利在线| 丝袜人妻无码中文字幕综合网| 好男人社区影视在线WWW| 国产久一视频在线观看app| 99热精品国产三级在线| 海原县| 欧洲中文字幕一区二区| 国产系列丝袜熟女精品视频| 中文字幕亚洲欧美日韩专区| 精品熟女亚洲av在线观看| 亚洲AV日韩AV高清在线播放| 日韩在线一区二区| 三级免费看| 亚洲综合色在线观看一区二区| 精品亚洲成在人线av无码|