本篇內(nèi)容主要講解“javascript是弱類型語言的原因是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“javascript是弱類型語言的原因是什么”吧!
創(chuàng)新互聯(lián)公司服務(wù)項目包括江北網(wǎng)站建設(shè)、江北網(wǎng)站制作、江北網(wǎng)頁制作以及江北網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,江北網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到江北省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
在弱類型語言中,數(shù)據(jù)類型可以被忽略,一個變量可以賦不同數(shù)據(jù)類型的值;而javascript變量在不同的場合可以解釋為不同的類型,它允許變量類型的隱式轉(zhuǎn)換和強制轉(zhuǎn)換。在JavaScript中,不必事先聲明變量的數(shù)據(jù)類型就可以使用變量,這時JavaScript解釋器會根據(jù)情況做出他認為正確的判斷。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
靜態(tài)語言
:我們把在使用之前就需要確認其變量數(shù)據(jù)類型的稱為靜態(tài)語言。
動態(tài)語言
:我們把在運行過程中需要檢查數(shù)據(jù)類型的語言稱為動態(tài)語言。
通常把偷偷進行類型轉(zhuǎn)換的操作成為隱式類型轉(zhuǎn)換
:
而支持隱式類型轉(zhuǎn)換的語言稱為弱類型語言
,不支持隱式類型轉(zhuǎn)換的語言稱為強類型語言
。
強類型語言:
強制數(shù)據(jù)類型定義的語言。也就是說,一旦一個變量被指定了某個數(shù)據(jù)類型,如果不經(jīng)過強制轉(zhuǎn)換,那么它就永遠是這個數(shù)據(jù)類型了。舉個例子:如果你定義了一個整型變量a,那么程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。
弱類型語言:
數(shù)據(jù)類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數(shù)據(jù)類型的值。
弱類型語言允許變量類型的隱式轉(zhuǎn)換,允許強制類型轉(zhuǎn)換等,如字符串和數(shù)值可以自動轉(zhuǎn)化;而強類型語言一般不允許這么做。
JavaScript是弱類型語言
JavaScript屬于“寬松類型”的編程語言,這意味著JavaScript變量在不同的場合可以解釋為不同的類型。
在JavaScript中,不必事先聲明變量的數(shù)據(jù)類型就可以使用變量,這時JavaScript解釋器會根據(jù)情況做出他認為正確的判斷。如果我們現(xiàn)在變量里保存了一個字符串,稍后又想把它當做數(shù)值使用,這在JavaScript里是完全可行的,前提是這個字符串必須包含像數(shù)字的內(nèi)容。
js弱類型的體現(xiàn)
一般規(guī)律是,約束越強越不容易出錯,但編寫程序時也越麻煩。在JavaScript中,因為約束比較弱,所以容易出現(xiàn)這種錯誤:最簡單的例子:
再比如下面這個例子:
var a =200;
var b ="1";
var c= a + b;
你可能期望c是201,但實際上它是"2001",這個錯誤在強類型語言中決不會出現(xiàn)。然而正是因為JavaScript沒有這些約束,所以可以很方便地拼接數(shù)字和字符串類型。
再比如下面這個例子:
登錄后復(fù)制var a = '11';
a = a - '';
console.log(typeof a);// -->number
“-”可以是一元運算符(取負),也可以是二元(減法運算)
在循環(huán)語句中(if,while)中,一個Object對象可以隱式的轉(zhuǎn)換從BOOLEAN值。
var obj = {name:'jack'}
if(obj){
//do more
}
比較難以發(fā)現(xiàn)的是在alert()函數(shù)中。
String.prototype.fn = function(){return this};
var a = 'hello';
alert(typeof a.fn()); //-->object
alert(a.fn()); //-->hello
我們知道this可以理解成當前類的實例對象,既然是對象那么typeof a.fn()自然返回是object了。
關(guān)鍵是最后的alert(a.fn())
,a.fn()
返回的明明是對象,但卻隱式的轉(zhuǎn)換成了字符串“hello
”顯示。
到此,相信大家對“javascript是弱類型語言的原因是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!