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

資訊專(zhuān)欄INFORMATION COLUMN

JS基礎(chǔ)知識(shí) --變量類(lèi)型和計(jì)算

levy9527 / 2678人閱讀

摘要:邏輯運(yùn)算判斷一個(gè)變量會(huì)被當(dāng)做還是內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開(kāi)發(fā)。根據(jù)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。

變量類(lèi)型和計(jì)算

1. 變量類(lèi)型
js變量類(lèi)型分為基本類(lèi)型(或者叫值類(lèi)型)和引用類(lèi)型。(按照存儲(chǔ)方式區(qū)分)
? 值類(lèi)型
值類(lèi)型:Number、String、Boolean、Null、Undefiend;這5種基本數(shù)據(jù)類(lèi)型是按值訪問(wèn)的,可以操作保存在變量中的實(shí)際的值。
對(duì)于值類(lèi)型,在復(fù)制變量的時(shí)候,會(huì)在新的變量上創(chuàng)建一個(gè)新值,這個(gè)新值和原值是相互獨(dú)立的,比如下面的例子:

    var a=100;
    var b=100;
    a=200;
    console.log(b); //100

? 引用類(lèi)型
引用類(lèi)型值是保存在變量中的對(duì)象;引用類(lèi)型值就是指對(duì)象。
保存引用類(lèi)型值的變量,實(shí)際上保存的是一個(gè)指向該對(duì)象的指針。
當(dāng)復(fù)制保存著對(duì)象的某個(gè)變量時(shí),復(fù)制的其實(shí)是指針;復(fù)制操作結(jié)束后,兩個(gè)變量指向同一個(gè)對(duì)象。
對(duì)于引用類(lèi)型值,可以為其添加屬性和方法,也可以修改或者刪除其屬性和方法。
在為對(duì)象添加屬性和方法時(shí),操作的是實(shí)際的對(duì)象,因此,改變?nèi)魏我粋€(gè)變量,都會(huì)影響另外一個(gè)變量。比如下面的例子:

    var a={age:100};
    var b=a;
    b.age=20;
    console.log(a.age); //20
注意: 基本類(lèi)型值之間的比較,只是單純的值的比較。
引用類(lèi)型值的比較并非值的比較:即使兩個(gè)對(duì)象包含相同的屬性和值,它們也是不相等的;各個(gè)索引元素完全相等的兩個(gè)數(shù)組也不相等。
引用類(lèi)型值的比較是引用的比較,當(dāng)且僅當(dāng)它們引用同一個(gè)對(duì)象時(shí),它們才相等。

? typeof 運(yùn)算符詳解
由下面的例子,我們可以看出typeof只能判斷值類(lèi)型的變量,不能判斷引用類(lèi)型的變量,所以不能準(zhǔn)確的判斷變量類(lèi)型。

typeof(undefined);  // undefined  
typeof("abc");  // string
typeof(123);  // number  
typeof(true);  //  boolean
typeof({});  // object  
typeof([]);  // object  
typeof(null);  // object  
typeof(console.log);  //  function

2. 變量計(jì)算
? 強(qiáng)制類(lèi)型轉(zhuǎn)換
以下四種情況會(huì)發(fā)生強(qiáng)制類(lèi)型的轉(zhuǎn)換:

字符串的拼接

    var a=100+10;      // 100
    var b=100+"10";    // "10010"   

==運(yùn)算符

    console.log((100=="100"));  // true
    console.log((0==""));   //true
    console.log((null==undefined));  // true
    

在使用==得時(shí)候會(huì)強(qiáng)制類(lèi)型轉(zhuǎn)換,而使用===的時(shí)候不會(huì)發(fā)生強(qiáng)制類(lèi)型轉(zhuǎn)換。
==計(jì)算要慎用,會(huì)出現(xiàn)上述問(wèn)題,如果使用===,則不會(huì)出現(xiàn)上述問(wèn)題。
判斷對(duì)象的一個(gè)屬性存在可以使用如下語(yǔ)法:

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

if語(yǔ)句

如下例子,if()判斷中會(huì)對(duì)()里的值進(jìn)行強(qiáng)制轉(zhuǎn)換為布爾類(lèi)型。if()條件判斷中0、""、NaN、null、undefined、false都會(huì)轉(zhuǎn)為false。

   var b=100;
   if(b){
       // ...
   }

邏輯運(yùn)算

    console.log((10 && 0));  // 0
    console.log(("" || "abc"));   //"abc"
    console.log((!window.abc));  // true

    // 判斷一個(gè)變量會(huì)被當(dāng)做 true 還是 false
    var a=100;
    console.log(!!a);  // true
    

3.JS內(nèi)置函數(shù)和對(duì)象
js中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開(kāi)發(fā)。
根據(jù)ECMAscript提供的內(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ì)象

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

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

相關(guān)文章

  • 好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總

    摘要:好程序員前端培訓(xùn)入門(mén)之基礎(chǔ)知識(shí)梳理匯總,前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。作用域鏈的前端,始終是當(dāng)前執(zhí)行代碼所在環(huán)境的變量對(duì)象。   好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總,Web前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。不論是專(zhuān)業(yè)還是非專(zhuān)業(yè),有基礎(chǔ)亦或是無(wú)基礎(chǔ),都想通過(guò)學(xué)習(xí)Web前端實(shí)現(xiàn)高薪就業(yè)。不過(guò),學(xué)習(xí)要一...

    int64 評(píng)論0 收藏0
  • 好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總

    摘要:好程序員前端培訓(xùn)入門(mén)之基礎(chǔ)知識(shí)梳理匯總,前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。作用域鏈的前端,始終是當(dāng)前執(zhí)行代碼所在環(huán)境的變量對(duì)象。   好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總,Web前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。不論是專(zhuān)業(yè)還是非專(zhuān)業(yè),有基礎(chǔ)亦或是無(wú)基礎(chǔ),都想通過(guò)學(xué)習(xí)Web前端實(shí)現(xiàn)高薪就業(yè)。不過(guò),學(xué)習(xí)要一...

    kviccn 評(píng)論0 收藏0
  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門(mén)

    摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...

    madthumb 評(píng)論0 收藏0
  • 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變量...

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

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

0條評(píng)論

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