欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          在弱類(lèi)型語(yǔ)言中,數(shù)據(jù)類(lèi)型可以被忽略,一個(gè)變量可以賦不同數(shù)據(jù)類(lèi)型的值;而javascript變量在不同的場(chǎng)合可以解釋為不同的類(lèi)型,它允許變量類(lèi)型的隱式轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。在JavaScript中,不必事先聲明變量的數(shù)據(jù)類(lèi)型就可以使用變量,這時(shí)JavaScript解釋器會(huì)根據(jù)情況做出他認(rèn)為正確的判斷。

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
          Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

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

          靜態(tài)語(yǔ)言:我們把在使用之前就需要確認(rèn)其變量數(shù)據(jù)類(lèi)型的稱為靜態(tài)語(yǔ)言。

          動(dòng)態(tài)語(yǔ)言:我們把在運(yùn)行過(guò)程中需要檢查數(shù)據(jù)類(lèi)型的語(yǔ)言稱為動(dòng)態(tài)語(yǔ)言。

          通常把偷偷進(jìn)行類(lèi)型轉(zhuǎn)換的操作成為隱式類(lèi)型轉(zhuǎn)換

          而支持隱式類(lèi)型轉(zhuǎn)換的語(yǔ)言稱為弱類(lèi)型語(yǔ)言,不支持隱式類(lèi)型轉(zhuǎn)換的語(yǔ)言稱為強(qiáng)類(lèi)型語(yǔ)言。

          強(qiáng)類(lèi)型語(yǔ)言:

          強(qiáng)制數(shù)據(jù)類(lèi)型定義的語(yǔ)言。也就是說(shuō),一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類(lèi)型,如果不經(jīng)過(guò)強(qiáng)制轉(zhuǎn)換,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類(lèi)型了。舉個(gè)例子:如果你定義了一個(gè)整型變量a,那么程序根本不可能將a當(dāng)作字符串類(lèi)型處理。強(qiáng)類(lèi)型定義語(yǔ)言是類(lèi)型安全的語(yǔ)言。

          弱類(lèi)型語(yǔ)言:

          數(shù)據(jù)類(lèi)型可以被忽略的語(yǔ)言。它與強(qiáng)類(lèi)型定義語(yǔ)言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類(lèi)型的值。

          弱類(lèi)型語(yǔ)言允許變量類(lèi)型的隱式轉(zhuǎn)換,允許強(qiáng)制類(lèi)型轉(zhuǎn)換等,如字符串和數(shù)值可以自動(dòng)轉(zhuǎn)化;而強(qiáng)類(lèi)型語(yǔ)言一般不允許這么做。

          JavaScript是弱類(lèi)型語(yǔ)言

          JavaScript屬于“寬松類(lèi)型”的編程語(yǔ)言,這意味著JavaScript變量在不同的場(chǎng)合可以解釋為不同的類(lèi)型。

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

          js弱類(lèi)型的體現(xiàn)

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

          再比如下面這個(gè)例子:

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

          你可能期望c是201,但實(shí)際上它是"2001",這個(gè)錯(cuò)誤在強(qiáng)類(lèi)型語(yǔ)言中決不會(huì)出現(xiàn)。然而正是因?yàn)镴avaScript沒(méi)有這些約束,所以可以很方便地拼接數(shù)字和字符串類(lèi)型。

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          再比如下面這個(gè)例子:

          var a = '11'; a = a - ''; console.log(typeof a);// -->number
          登錄后復(fù)制

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          “-”可以是一元運(yùn)算符(取負(fù)),也可以是二元(減法運(yùn)算)

          在循環(huán)語(yǔ)句中(if,while)中,一個(gè)Object對(duì)象可以隱式的轉(zhuǎn)換從BOOLEAN值。

          var obj = {name:'jack'} if(obj){     //do more }
          登錄后復(fù)制

          比較難以發(fā)現(xiàn)的是在alert()函數(shù)中。

          String.prototype.fn = function(){return this}; var a = 'hello'; alert(typeof a.fn()); //-->object alert(a.fn()); //-->hello
          登錄后復(fù)制

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          為什么說(shuō)javascript是弱類(lèi)型語(yǔ)言

          我們知道this可以理解成當(dāng)前類(lèi)的實(shí)例對(duì)象,既然是對(duì)象那么typeof a.fn()自然返回是object了。

          關(guān)鍵是最后的alert(a.fn())a.fn()返回的明明是對(duì)象,但卻隱式的轉(zhuǎn)換成了字符串“hello”顯示。

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)