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版權協議,轉載請附上原文出處鏈接及本聲明。


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


日歷

鏈接

個人資料

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

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
欧美剧在线观看| 久久久国产一区二区三区四区小说| 欧美日韩国产一区二区在线观看| 国产成人精品免费一区二区| 午夜美女久久久久爽久久| 国产精品区一区二区三| 免费视频一区二区三区在线观看| 久久亚洲欧美国产精品乐播| 夜级特黄日本大片_在线| 日韩欧美精品在线| 国产精品久久久久一区二区三区厕所| 91免费在线播放| 三级精品视频| 欧美三级情趣内衣| 精品久久久久久久久久久久包黑料| 久久久久久久久国产精品| 欧美俄罗斯性视频| 国产精品久av福利在线观看| 色综合一本到久久亚洲91| 日韩黄色高清视频| 92久久精品| 亚洲天堂网站在线观看视频| 青青草国产成人av片免费| 国产亚洲欧洲高清一区| 久久久久久久久久久久久9999| 精品国产一区二区三区久久狼黑人| 亚洲久本草在线中文字幕| 欧美xxxxxxxx| 国产真实有声精品录音| 色婷婷av一区二区三区软件| 国产福利小视频在线观看| 欧美在线观看禁18| 久久电影一区| 日韩av在线免费看| 久久精品国产v日韩v亚洲| 日韩一区二区麻豆国产| 欧美性猛交xxxx乱大交极品| 西西人体一区二区| 精品动漫av| 国产精品久久| 成在在线免费视频| 免费99精品国产自在在线| 在线高清一区| 在线成人激情| 中文字幕不卡在线视频极品| 日本午夜精品电影| 久久视频免费在线播放| av不卡免费看| 春暖花开亚洲一区二区三区| 国产精品13p| 欧美aaa免费| 欧美极品少妇xxxxx| 欧美激情综合五月色丁香小说| 色999日韩| gogo大胆日本视频一区| 9国产精品午夜| 91精品国产黑色紧身裤美女| 91老司机在线| 久久亚洲精品中文字幕| 伊人久久大香线蕉综合网站| 久久精品首页| 日韩av中文字幕一区二区| 美女视频黄a大片欧美| 欧美一级片网址| 久久国产精品久久| 成人av黄色| av成人手机在线| 亚洲高清精品中出| 色与欲影视天天看综合网| 精品国产精品久久一区免费式| 日韩一级淫片| 97电影在线观看| 日本一区二区三区四区高清视频| 日韩一区二区免费在线电影| 亚洲最大成人综合| 欧美激情电影| 亚洲男同1069视频| 极品日韩av| 亚洲一区成人在线| 亚洲欧洲日韩av| 欧美精品黄色| 亚洲另类在线视频| 欧美丰满老妇厨房牲生活| 国产欧美日韩精品专区| 日韩欧美激情一区| 日本一区二区在线看| 国产成人高清| 日韩专区中文字幕| 久久国产尿小便嘘嘘| 国产精品久久久久9999| 日韩aⅴ视频一区二区三区| 亚洲欧美一区二区三区在线| av网址在线播放| 欧美一乱一性一交一视频| 亚洲综合资源| 日本一区美女| 国内自拍视频一区二区三区| 久久国产成人午夜av影院宅| 高清亚洲成在人网站天堂| 久久aⅴ国产欧美74aaa| 成人av电影免费| 精品蜜桃传媒| 久久天堂电影网| sm久久捆绑调教精品一区| 久久国产精品毛片| 中文字幕欧美激情| 在线观看国产精品入口| 日韩精选视频| 91麻豆精品国产91久久久更新资源速度超快| 久中文字幕一区| 午夜不卡av免费| 成人激情视频在线| 波多野结衣久草一区| 亚洲第一综合色| 久久视频社区| 在线视频欧美性高潮| 97精品国产97久久久久久免费| 精品国产伦一区二区三区免费| 在线亚洲午夜片av大片| 91精品啪在线观看国产60岁| 欧美亚洲国产日本| 国产精品一二三四区| 精品国产1区2区| 亚洲成av人乱码色午夜| 亚洲三级免费观看| 欧美一级专区| 91免费在线视频| 色综合久久久久久中文网| 9999在线视频| 日韩三级精品| 99久久婷婷| 成人精品亚洲人成在线| 综合久久2019| 亚洲影视综合| 综合久久成人| 色噜噜狠狠狠综合欧洲色8| 丝袜美腿高跟呻吟高潮一区| 91亚洲精品久久久| 国产精品欧美一区二区三区| 青青a在线精品免费观看| jizz欧美| 成人影院免费观看| 日本久久中文字幕| 丝袜美腿亚洲一区二区| 欧洲生活片亚洲生活在线观看| 亚洲jizzjizz日本少妇| 国内毛片久久| 性欧美疯狂xxxxbbbb| 亚洲精品视频免费| 欧美特级限制片免费在线观看| 成人永久在线| 中文国产字幕在线观看| 国产精品久久久久久久久久久不卡| 亚洲aⅴ天堂av在线电影软件| 97国产在线视频| 精品一区二区三区视频在线观看| 国产精品99久久免费| 一区二区三区精品视频在线| 亚洲成av人**亚洲成av**| 国产精品久久久久久久久免费高清| 亚洲一区二区中文在线| 天堂成人娱乐在线视频免费播放网站| 精品免费一区二区三区蜜桃| 一个色在线综合|