92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区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版權協議,轉載請附上原文出處鏈接及本聲明。


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


日歷

鏈接

個人資料

藍藍設計的小編 http://www.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
久久免费视频观看| 欧美午夜激情小视频| 国产精品久久久久久久天堂| 26uuu另类亚洲欧美日本老年| 欧美精品免费在线观看| 欧美最顶级的aⅴ艳星| 久久成人精品一区二区三区| 国产精品日日摸夜夜添夜夜av| 亚洲欧美国内爽妇网| 欧美激情一二三| 欧美日韩加勒比精品一区| 久久琪琪电影院| 日韩国产精品视频| 97在线视频免费看| 日韩欧美国产骚| 国产91精品高潮白浆喷水| 精品国产乱码久久久久久虫虫漫画| 亚洲人成网站999久久久综合| 欧美日韩国产在线| 成人www视频在线观看| 亚洲大胆人体在线| 亚洲激情视频在线观看| 欧美黑人性生活视频| 欧美精品一本久久男人的天堂| 日韩av快播网址| 九九精品视频在线| 中文字幕免费精品一区| 亚洲人成在线免费观看| 色午夜这里只有精品| 伊人成人开心激情综合网| 97久久精品国产| 在线日韩日本国产亚洲| 亚洲人成在线免费观看| 亚洲xxx大片| 性色av一区二区三区在线观看| 伊人伊成久久人综合网站| 精品在线观看国产| 日韩在线免费观看视频| 日韩一区二区福利| 亚洲一区二区三区在线免费观看| 国产mv久久久| 日本视频久久久| 精品视频久久久| 久久久久久噜噜噜久久久精品| 欧美大人香蕉在线| 欧美日韩亚洲激情| 亚洲小视频在线观看| 亚洲xxxxx| 亚洲欧美另类中文字幕| 久久琪琪电影院| 成人免费观看49www在线观看| 欧美电影院免费观看| 亚洲精品理论电影| 精品色蜜蜜精品视频在线观看| 丰满岳妇乱一区二区三区| 欧美成人剧情片在线观看| 国产精品女主播| 亚洲人在线视频| 亚洲欧美一区二区三区情侣bbw| 久久精品91久久久久久再现| 欧美黄色片在线观看| 国产乱人伦真实精品视频| 中文字幕欧美国内| 日韩女在线观看| 91亚洲永久免费精品| 亚洲国产精品网站| 国产欧美日韩丝袜精品一区| 国产精品极品美女在线观看免费| 77777少妇光屁股久久一区| 国产一区二区三区在线看| 亚洲天堂男人的天堂| 国产视频亚洲视频| 亚洲电影免费观看高清完整版| 另类视频在线观看| 国产最新精品视频| 亚洲人成网站777色婷婷| 亚洲欧美一区二区三区四区| 国产成人精品一区二区在线| 欧美成人全部免费| 欧美成人中文字幕| 欧美日韩国产精品一区二区三区四区| 欧美日韩亚洲国产一区| 亚洲经典中文字幕| 亚洲精品91美女久久久久久久| 中文欧美在线视频| 最新国产精品亚洲| 亚洲色图综合久久| 日韩中文视频免费在线观看| 深夜福利91大全| 久久久精品国产一区二区| 国产午夜精品全部视频在线播放| 欧美一区二区三区精品电影| 精品久久久久久久久中文字幕| 日本亚洲欧洲色| 国产成人a亚洲精品| 日韩专区在线播放| 成人综合网网址| 激情懂色av一区av二区av| 久久99国产综合精品女同| 国内偷自视频区视频综合| 黄网站色欧美视频| 国产剧情久久久久久| 亚洲精品国产品国语在线| 日韩高清电影免费观看完整| 大荫蒂欧美视频另类xxxx| 亚洲欧美激情另类校园| 亚洲综合自拍一区| 欧美精品一区在线播放| 国模视频一区二区三区| 最近2019中文字幕第三页视频| 精品亚洲va在线va天堂资源站| 日本在线精品视频| 久久综合国产精品台湾中文娱乐网| 亚洲国产精品999| 日本在线精品视频| 91久久久久久久一区二区| 日本不卡高字幕在线2019| 久久久久久久97| 不卡av电影院| 北条麻妃一区二区三区中文字幕| 91久久久精品| 欧美日韩第一页| 亚洲美腿欧美激情另类| 成人黄色在线观看| 久久久成人精品| 国产91精品在线播放| 日韩av成人在线| 欧美色另类天堂2015| 91av国产在线| 亚洲跨种族黑人xxx| 欧美视频专区一二在线观看| 亚洲风情亚aⅴ在线发布| 亚洲一区二区中文字幕| 亚洲精品按摩视频| 欧美中文字幕第一页| 亚洲xxxx妇黄裸体| 久久成人亚洲精品| 国产精品草莓在线免费观看| 国产精品人人做人人爽| 国模精品视频一区二区| 日韩美女中文字幕| 亚洲xxx视频| 国内揄拍国内精品少妇国语| 欧美夫妻性视频| 成人www视频在线观看| 国产精品av免费在线观看| 亚洲国产日韩欧美在线99| 欧美人成在线视频| 欧美日韩在线第一页| 亚洲欧美另类人妖| 国产精品视频永久免费播放| 伊人久久综合97精品| 国产精品成人久久久久| 欧美激情一区二区久久久| 久久久在线视频| 色噜噜亚洲精品中文字幕| 日韩中文在线观看| 91精品国产高清久久久久久久久| 欧美大成色www永久网站婷| 91精品在线国产| 永久555www成人免费| 日本成人黄色片| 欧美激情图片区| 久操成人在线视频|