成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Js基礎(chǔ)知識(shí)(一) - 變量

leone / 537人閱讀

摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類(lèi)型轉(zhuǎn)換大家應(yīng)該都知道。

js基礎(chǔ) - 變量

*大家對(duì)js一定不會(huì)陌生,入門(mén)很簡(jiǎn)單(普通入門(mén)),很多人通過(guò)網(wǎng)絡(luò)資源、書(shū)籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量類(lèi)型來(lái)說(shuō)一說(shuō)js

變量類(lèi)型*

js變量類(lèi)型分為基本類(lèi)型(或者叫值類(lèi)型)和引用類(lèi)型。值類(lèi)型包括Number、Boolean、String、undefined、 null、Symbol (ES6 新增)。 引用類(lèi)型包括Object 、Array、Function、Date、RegExp,值類(lèi)型存放在棧內(nèi)存中,引用類(lèi)型的數(shù)據(jù)是存放在堆內(nèi)存中。

值類(lèi)型的數(shù)據(jù)在復(fù)制的時(shí)候會(huì)在棧內(nèi)存中新建一個(gè)新的存儲(chǔ)區(qū)域用來(lái)存儲(chǔ)新的變量,和之前的值沒(méi)有任何關(guān)系。比如如下例子:

var a = "a"
var b = a
b = "b"
console.log(a) // "a"

當(dāng)b的值改變的時(shí)候,a的值不會(huì)跟著改變。這個(gè)很簡(jiǎn)單,大家也都能理解。

下面說(shuō)一下引用類(lèi)型,定義一個(gè)對(duì)象的時(shí)候會(huì)在棧內(nèi)存中存儲(chǔ)了一個(gè)指針,該指針指向堆內(nèi)存中該對(duì)象的存儲(chǔ)地址,當(dāng)復(fù)制這個(gè)對(duì)象賦值給另一個(gè)對(duì)象的時(shí)候,只是把該對(duì)象的指針地址賦值給了另一個(gè)對(duì)象變量,他們都指向同一個(gè)對(duì)象,所以當(dāng)一個(gè)值改變的時(shí)候,另一個(gè)值會(huì)跟著改變,看下面的例子就會(huì)明白:

var obj1 = {name:"obj1"}
var obj2 = obj1
obj2.name = "obj2"
console.log(obj1.name) // "obj2"

大家可以執(zhí)行一下上面的代碼,打印obj1.name的時(shí)候輸出"obj2",這就是因?yàn)閷?duì)象是引用類(lèi)型的變量。

JavaScript內(nèi)置函數(shù)和對(duì)象

js中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。
根據(jù)ECMAscript(javascript語(yǔ)法標(biāo)準(zhǔn))提供的內(nèi)置函數(shù)包括Object、Array、Boolean、Number、String、Function、Date、Regexp和Error。內(nèi)置對(duì)象包括Math和JSON。

注意:javascript基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像Window、Navigator那是瀏覽器提供給我們的。還有一點(diǎn)前面的集中都是內(nèi)置函數(shù)而不是內(nèi)置對(duì)象,最后的Math和JSON是內(nèi)置對(duì)象,這個(gè)在我們以后的章節(jié)講原型鏈的時(shí)候就明白了,這里先記住就OK了。
幾個(gè)常見(jiàn)問(wèn)題 何時(shí)使用使用==何時(shí)使用===

這個(gè)問(wèn)題大家應(yīng)該都不陌生,在開(kāi)發(fā)或者面試中會(huì)經(jīng)常碰見(jiàn)的問(wèn)題。那么答案到底是什么呢?
首先看到這個(gè)問(wèn)題的時(shí)候先不要去想到底那些情況使用==那些情況使用===,我們應(yīng)該首先去想這個(gè)問(wèn)題背后涉及到那些知識(shí)點(diǎn)。很顯然,這里考的就是強(qiáng)制類(lèi)型轉(zhuǎn)換,在使用==得時(shí)候會(huì)強(qiáng)制類(lèi)型轉(zhuǎn)換,而使用===的時(shí)候不會(huì)發(fā)生強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制類(lèi)型轉(zhuǎn)換大家應(yīng)該都知道。下面我們總結(jié)一下:
在if()條件判斷中0、""、NaN、null、undefined、false都會(huì)轉(zhuǎn)為false,判斷對(duì)象的一個(gè)屬性存在可以使用如下語(yǔ)法:

var obj = {}
if(obj.name == null){...} // 相當(dāng)于obj.name === null || obj.name === undefined
/* 該方法只適用于判斷對(duì)象的屬性,不能用于直接判斷變量是否存在 */
if(someVal){...} // 這里瀏覽器會(huì)報(bào)錯(cuò)

標(biāo)準(zhǔn)答案是:只有在判斷一個(gè)對(duì)象的屬性是否存在的時(shí)候使用==,其他都使用===。

typeof能否準(zhǔn)確判斷變量類(lèi)型

這里首先想到的是對(duì)typeof和變量類(lèi)型的理解,由于typeof只能區(qū)分基本類(lèi)型的變量,所以不能準(zhǔn)確的判斷變量類(lèi)型。

Undefined  -- Undefined  
Boolean    -- Boolean
Number     -- Number     
String     -- String


----------
Object     -- Object
Function   -- Function
Array      -- Object
null       -- Object

所以答案是typeof只能判斷值類(lèi)型的變量,不能判斷引用類(lèi)型的變量,要想準(zhǔn)確判斷變量的類(lèi)型,可以在以后的原型的章節(jié)中介紹

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107110.html

相關(guān)文章

  • Js基礎(chǔ)知識(shí)) - 變量

    摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類(lèi)型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門(mén)很簡(jiǎn)單(普通入門(mén)),很多人通過(guò)網(wǎng)絡(luò)資源、書(shū)籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...

    MageekChiu 評(píng)論0 收藏0
  • JavaScript知識(shí)架構(gòu)學(xué)習(xí)路徑()- 變量

    摘要:在此,我們首先根據(jù)變量的作用域,將變量劃分為三級(jí),具體是全局變量局部變量和參數(shù)變量。 【摘要】本文是專(zhuān)為JavaScript入門(mén)者而總結(jié)的,總體上將JavaScript的基礎(chǔ)部分分成了九大塊,分別是變量、運(yùn)算符、數(shù)組、流程控制結(jié)構(gòu)、字符串函數(shù)、函數(shù)基礎(chǔ)、DOM操作基礎(chǔ)、文檔對(duì)象模型DOM和正則表達(dá)式。 【關(guān)鍵字】變量、運(yùn)算符、數(shù)組、流程控制結(jié)構(gòu)、函數(shù)、DOM、正則表達(dá)式。 本篇文章的主...

    toddmark 評(píng)論0 收藏0
  • JS基礎(chǔ)知識(shí)變量對(duì)象、作用域鏈和閉包

    摘要:前言這段時(shí)間一直在消化作用域鏈和閉包的相關(guān)知識(shí)。而作用域鏈則是這套規(guī)則這套規(guī)則的具體運(yùn)行。是變量對(duì)象的縮寫(xiě)那這樣放有什么好處呢我們知道作用域鏈保證了當(dāng)前執(zhí)行環(huán)境對(duì)符合訪問(wèn)權(quán)限的變量和函數(shù)的有序訪問(wèn)。 前言:這段時(shí)間一直在消化作用域鏈和閉包的相關(guān)知識(shí)。之前看《JS高程》和一些技術(shù)博客,對(duì)于這些概念的論述多多少少不太清楚或者不太完整,包括一些大神的技術(shù)文章。這也給我的學(xué)習(xí)上造成了一些困惑,...

    Keven 評(píng)論0 收藏0
  • JS基礎(chǔ)入門(mén)篇(

    摘要:申明變量變量名以分號(hào)結(jié)束。如果一定要使用點(diǎn)的話,需要改變成駝峰式命名法。基礎(chǔ)篇練習(xí)看完以上的小伙伴,可以看兩個(gè)例子的效果,試著做一下。練習(xí)一點(diǎn)擊按鈕,設(shè)置方塊大小練習(xí)二點(diǎn)擊按鈕,增加或減小字體大小 1.JS存放在代碼中的位置 1.JS寫(xiě)在行間 hello world 優(yōu)點(diǎn):直接,簡(jiǎn)單 缺點(diǎn):不方便復(fù)用和維護(hù),不符合結(jié)構(gòu)行為分離規(guī)范 2.JS寫(xiě)在script ( 一般寫(xiě)在body...

    alighters 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<