javascript是弱語(yǔ)言,也是一種直譯式腳本語(yǔ)言;JavaScript最初由Netscape的Brendan Eich設(shè)計(jì),并將其命名為L(zhǎng)iveScript,后來Netscape在與Sun合作之后將其改名為JavaScript。
本文操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版,DELL G3電腦
javascript是不是弱語(yǔ)言?
JavaScript一種直譯式腳本語(yǔ)言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語(yǔ)言。
為什么JavaScript是弱類型語(yǔ)言?
在學(xué)習(xí)JavaScript的時(shí)候,說JavaScript是弱類型語(yǔ)言。那為什么JavaScript是弱類型語(yǔ)言呢。
但是在此之前我們需要了解一下弱類型語(yǔ)言,和強(qiáng)類型語(yǔ)言的區(qū)別。
強(qiáng)類型定義語(yǔ)言和弱類型定義語(yǔ)言
1)強(qiáng)類型定義語(yǔ)言:
強(qiáng)制數(shù)據(jù)類型定義的語(yǔ)言。也就是說,一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類型,如果不經(jīng)過強(qiáng)制轉(zhuǎn)換,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類型了。舉個(gè)例子:如果你定義了一個(gè)整型變量a,那么程序根本不可能將a當(dāng)作字符串類型處理。強(qiáng)類型定義語(yǔ)言是類型安全的語(yǔ)言。
2)弱類型定義語(yǔ)言:
數(shù)據(jù)類型可以被忽略的語(yǔ)言。它與強(qiáng)類型定義語(yǔ)言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類型的值。
強(qiáng)類型定義語(yǔ)言在速度上可能略遜色于弱類型定義語(yǔ)言,但是強(qiáng)類型定義語(yǔ)言帶來的嚴(yán)謹(jǐn)性能夠有效的避免許多錯(cuò)誤。另外,“這門語(yǔ)言是不是動(dòng)態(tài)語(yǔ)言”與“這門語(yǔ)言是否類型安全”之間是完全沒有聯(lián)系的!
例如:Python是動(dòng)態(tài)語(yǔ)言,是強(qiáng)類型定義語(yǔ)言(類型安全的語(yǔ)言); VBScript是動(dòng)態(tài)語(yǔ)言,是弱類型定義語(yǔ)言(類型不安全的語(yǔ)言); JAVA是靜態(tài)語(yǔ)言,是強(qiáng)類型定義語(yǔ)言(類型安全的語(yǔ)言)。
關(guān)于各種語(yǔ)言類型的解釋,請(qǐng)參考:http://blog.csdn.net/aiming66/article/details/78570784#t3
了解了這些,我們?cè)诖苏f一下JavaScript為什么是弱類型語(yǔ)言。經(jīng)過思考,我感覺通過一段代碼來說明吧??赡苓@樣更加直白。
<!DOCTYPE html><html> <head> <title>js練習(xí)</title> <style type="text/css"> </style> <script type="text/javascript"> var num=0; alert(typeof num); num="123"; alert(typeof num); num=true; alert(typeof num); num= new Date(); alert(typeof num); </script> </head></html>
其中,我來解釋以下代碼。下面的幾句代碼顯示如下圖,我們不能看出,我們?cè)谝婚_始只創(chuàng)建了一個(gè)變量num,為var類型,我們卻可以給他賦值各種類型:數(shù)值類型,字符串,布爾類型,對(duì)象類型,為此我們可以推斷出來,JavaScript為弱類型語(yǔ)言。
var num=0; alert(typeof num);
num="123"; alert(typeof num);
num=true; alert(typeof num);
num= new Date(); alert(typeof num);
推薦學(xué)習(xí):《javascript高級(jí)教程》