站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        JavaScript為什么是寬松類型語言

        原因:JavaScript是一種直譯式腳本語言,其數(shù)據(jù)類型可以被忽略,當(dāng)對一個變量賦值時,是不需要考慮它的類型;待變量被賦予某個值之后,才會具有某種類型。簡單來說,JavaScript變量在不同的場合可以解釋為不同的類型。

        JavaScript為什么是寬松類型語言

        前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
        API 文檔、設(shè)計、調(diào)試、自動化測試一體化協(xié)作工具:點擊使用

        本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

        JavaScript變量與常量

        學(xué)習(xí)任何一門語言都要從變量開始。變量可以被看作是一種被命名的分類容器,用于保存特定的數(shù)據(jù),數(shù)據(jù)可以具有多種形式:整數(shù)、小數(shù)、字符串或其它數(shù)據(jù)類型。JS的變量不需要事先聲明就可以直接使用,同時JS的變量可以用任何方式進(jìn)行命名,但為了方便閱讀,我們一般只是用數(shù)字、字母、美元符號和下劃線命名變量。JS的變量命名規(guī)則如下:

        1)JavaScript變量在使用前不需要事先聲明,但為了防止程序在執(zhí)行時出現(xiàn)難以查找的錯誤,我們在使用變量前需要事先對變量進(jìn)行聲明,其聲明方式如下

        var mypetcat
        登錄后復(fù)制

        2)JavaScript變量可以以任何符號進(jìn)行命名,但為了方便閱讀,通常只是用字母、數(shù)字、美元符號以及下劃線進(jìn)行命名。并且,在聲明變量時以字母開頭,且不單獨使用數(shù)字進(jìn)行變量聲明

        3)JavaScript是區(qū)分大小寫的語言,變量MYPETCAT和mypetcat是不一樣的。程序員在聲明變量的時候習(xí)慣使用一種“駱駝大小寫”(或混合大小寫)的方法,也就是把單詞和短語連寫到一起,沒有空格,每個單詞的首字母大寫,但整個名稱的第一個字母可以是大寫或小寫。如MyPetCat

        4)JavaScript變量的賦值方式有很多種??梢栽诼暶髯兞康臅r候直接賦值

        var myPetCat=11.2
        登錄后復(fù)制

        或者

        myPetCat=11.2
        登錄后復(fù)制

        也可以先聲明變量再進(jìn)行賦值

        var myPetCatmyPetCat=11.2
        登錄后復(fù)制

        5)JavaScript在聲明后即可直接進(jìn)行調(diào)用

        alert(myPetCat)
        登錄后復(fù)制

        6)JavaScript中的常量用Math方法進(jìn)行定義,將在后面的Math方法進(jìn)行介紹

        7)JavaScript可以試用const方法聲明常量,常量一旦聲明后就不可更改

        const a=1;
        登錄后復(fù)制

        JavaScript數(shù)據(jù)類型

        “數(shù)據(jù)類型”這個術(shù)語表示了變量包含數(shù)據(jù)的本質(zhì)特征。字符串變量包含了一個字符串,數(shù)值變量包含了一個數(shù)值,等等。JavaScript屬于“寬松類型”的編程語言,這意味著JavaScript變量在不同的場合可以解釋為不同的類型。

        從前面的內(nèi)容中可以看出,在JavaScript中,不必事先聲明變量的數(shù)據(jù)類型就可以使用變量,這時JavaScript解釋器會根據(jù)情況做出他認(rèn)為正確的判斷。如果我們現(xiàn)在變量里保存了一個字符串,稍后又想把它當(dāng)做數(shù)值使用,這在JavaScript里是完全可行的,前提是這個字符串必須包含像數(shù)字的內(nèi)容。

        1)整數(shù)

        整數(shù)可以是正整數(shù)、負(fù)整數(shù)和0,如33,-100000

        2)浮點數(shù)

        與整數(shù)不同的是,浮點數(shù)具有小數(shù)部分,但小數(shù)部分可以為0。浮點數(shù)表示形式可以是3.1415926,也可以是指數(shù)形式35.4e5

        在指數(shù)表示法中,e表示10的冪,利用指數(shù)表示法,可以很方便的表示特別大或者特別小的數(shù)

        3)非數(shù)值(NaN)

        當(dāng)腳本試圖把一些非數(shù)值數(shù)據(jù)當(dāng)數(shù)值處理時,其返回值就是NaN,利用isNaN()函數(shù)能夠監(jiān)測非數(shù)值,當(dāng)輸入?yún)?shù)為非數(shù)值時,返回ture;當(dāng)輸入?yún)?shù)為數(shù)值時,返回false

        4)parseFloat()函數(shù)

        該函數(shù)解析一個字符串并返回一個浮點數(shù)

        如果被解析的字符串的首字符是一個數(shù)字,函數(shù)會一直解析知道數(shù)字結(jié)束,然后返回一個數(shù)值而不是字符串

        5)parseInt()函數(shù)

        該函數(shù)與parseFloat()函數(shù)類似,返回值是整數(shù)或NaN。此外,該函數(shù)還有第二個可選參數(shù),用于指定數(shù)值的基,從而返回二進(jìn)制、八進(jìn)制或其他進(jìn)制的數(shù)值所對應(yīng)的十進(jìn)制數(shù)

        6)無窮大(Infinity)

        JavaScript所能表示的最大數(shù)值為2的53次方,超過該值即標(biāo)志為Infinity。此外,表示你負(fù)無窮的關(guān)鍵字為- Infinity。

        利用isFinite()可以判斷一個數(shù)值是否為無窮大,當(dāng)輸入值為NaN,Infinity或- Infinity時,返回false,其他情況返回ture

        7)布爾值

        布爾類型的數(shù)據(jù)只有兩個值:ture和false,常用與在代碼中保存邏輯操作的結(jié)果

        對布爾值進(jìn)行賦值時,注意不要把值包含在引號里面,如

        A=ture
        登錄后復(fù)制

        如果將布爾值用于計算,JS會自動把ture轉(zhuǎn)換為1,把false轉(zhuǎn)換為0

        8)“非”操作符(?。?/p>

        當(dāng)操作符!位于布爾值之前時,JS將它解釋為非,也就是相反的值

        9)null(空)

        當(dāng)我們讓變量具有有效值,卻又不是任何具體值時,就把null賦值給變量。對于數(shù)值來說,null就是0,對于字符串來說,null就是””,對于布爾變量來說null表示false。

        10)undefined(未定義)

        undefined不是關(guān)鍵字,而是預(yù)定義的全局變量。當(dāng)某個變量已經(jīng)在語句里使用了,但沒有被賦予任何值時,他的值不是0或者null,而是undefined,表示JS不能識別他

        javascript弱(寬松)類型的體現(xiàn)

        一般規(guī)律是,約束越強(qiáng)越不容易出錯,但編寫程序時也越麻煩。在JavaScript中,因為約束比較弱,所以容易出現(xiàn)這種錯誤:最簡單的例子:

        var a =200; var b ="1"; var c= a + b;
        登錄后復(fù)制

        你可能期望c是201,但實際上它是"2001",這個錯誤在強(qiáng)類型語言中決不會出現(xiàn)。然而正是因為JavaScript沒有這些約束,所以可以很方便地拼接數(shù)字和字符串類型。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 午夜精品福利视频| 精品国产成人在线| 国产精品99久久不卡| 久久久久久国产精品免费无码| 久久se精品一区二区影院| 国产成人精品免费视频大| 亚洲精品成人无码中文毛片不卡| 91精品国产综合久久香蕉 | 成人国内精品久久久久一区 | 精品一区二区三区四区在线| 精品国产品香蕉在线观看75| 亚洲精品成人无限看| 欧美日韩精品一区二区三区不卡 | 久久精品人人做人人妻人人玩| 久久久久99精品成人片| 97久久精品人人做人人爽| 538国产精品一区二区在线| 久久99国产综合精品女同| 亚洲精品国产精品乱码视色| 亚洲国产精品无码久久九九| 精品免费久久久久国产一区 | 四虎精品成人免费永久| 国产成人精品日本亚洲18图| 国产在线精品一区二区在线观看 | 久久人搡人人玩人妻精品首页| 国产精品成人久久久久久久| 亚洲欧洲国产精品你懂的| 国产精品久久一区二区三区| 91精品在线播放| 99久久精品国产麻豆| 东京热TOKYO综合久久精品| 国产在线精品一区二区中文| 国内精品久久久久久99蜜桃| 国产精品亚洲片在线观看不卡| 色欲久久久天天天综合网精品 | 狠狠色丁香婷婷综合精品视频| 97精品久久天干天天天按摩| 国产精品18久久久久久vr| 国产精品1024香蕉在线观看| 国产99久久精品一区二区| 99久久精品费精品国产一区二区|