1、javascript是弱類型語言,定義變量時(shí)用var關(guān)鍵字(可選)且不需要也不能指定變量的類型,而java是強(qiáng)類型語言,定義任何變量時(shí)必須指定其類型,否則無法通過編譯;
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),留壩企業(yè)網(wǎng)站建設(shè),留壩品牌網(wǎng)站建設(shè),網(wǎng)站定制,留壩網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,留壩網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
2、javascript定義函數(shù)(或函數(shù)直接量)時(shí)要使用function關(guān)鍵字,java不需要;
下面舉例說明:
1、定義變量的方法
javascript
var 變量名=初始值(可選);或
變量名=初始值(可選);如
var str="你好";
d=new Date();
java
變量修飾符(public、protected、private、static、final的有效組合) 變量類型 變量名=初始值(可選);如
public static final int Count=100;
2、定義函數(shù)的方法
javascript
function 函數(shù)名(參數(shù)列表(可選))
{
}
或
var(可選) 變量名=function(參數(shù)列表(可選))
{
}如
function f(a,b,c)
{
}
或
f2=function()
{
}
java
函數(shù)修飾符(public、protected、private、static、final、abstract的有效組合) 返回類型 函數(shù)名(參數(shù)列表(可選))
{
}(非abstract函數(shù))
或
函數(shù)修飾符(public、protected、abstract的有效組合) 返回類型 函數(shù)名(參數(shù)列表(可選));如
public static void f(int a,String msg)
{
}或
public abstract int f2(float f,char c);
弱類型語言也是有類型的。或者說,任何計(jì)算機(jī)語言都是要有類型的。
基本數(shù)據(jù)類型有:number、string、boolean、undefined、null
引用類型有:object、function
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var num = 123;
console.log(typeof num);//number
var str = 'string';
console.log(typeof str);//string
var bool = true;
console.log(typeof bool);//boolean
var undef = undefined;
console.log(typeof undef);//undefined
var nul = null;
console.log(typeof nul);//object。因?yàn)閚ull代表對(duì)象是空的情況。
自動(dòng)類型轉(zhuǎn)換
1
2
3
4
"10.0"%"5"http://結(jié)果是0,string類型自動(dòng)類型轉(zhuǎn)換為number類型
!0//結(jié)果是true,number類型自動(dòng)轉(zhuǎn)換為boolean類型
"10.0" + 5//結(jié)果是"10.05",number類型自動(dòng)轉(zhuǎn)換為string類型
弱類型語言內(nèi)存布局上一般是個(gè)Union結(jié)構(gòu),并且要包含一個(gè)類型字段,因?yàn)橛?jì)算機(jī)底層還是要知道明確的類型信息。
因?yàn)榘愋托畔?,所以在代碼的上下文中,可能會(huì)進(jìn)行隱含的類型轉(zhuǎn)換,比如把字符串轉(zhuǎn)整型,整型轉(zhuǎn)字符串,這樣會(huì)稍損性能,并且可能會(huì)不符合程序本意。
弱類型語言都是腳本語言,在運(yùn)行時(shí)確定值,所以跟編譯不相關(guān)。
我的經(jīng)驗(yàn)是弱類型在大項(xiàng)目開發(fā)上,還是不方便,需要在整個(gè)框架結(jié)構(gòu)上做規(guī)范,否則多人合作開發(fā)比較麻煩。
弱類型使用簡單,更靈活多變。對(duì)于程序員來講這是個(gè)優(yōu)點(diǎn)。
強(qiáng)類型語言,類型轉(zhuǎn)換的時(shí)候非常嚴(yán)格,這跟語言特點(diǎn)有關(guān)系,
強(qiáng)類型語言是直接操縱內(nèi)存,容易出內(nèi)存越界和泄漏的問題。在類型的轉(zhuǎn)換方面是很多約束,甚至強(qiáng)制轉(zhuǎn)換也要很謹(jǐn)慎,一不小心就出大問題。
弱類型語言一般都會(huì)犧牲一些運(yùn)行性能,不過簡單好用,而且相對(duì)安全。
其實(shí)兩種類型對(duì)應(yīng)的語言本身其他的差異已經(jīng)很大了,整個(gè)區(qū)別還是比較明顯的。
JavaScript(簡稱“JS”)是一種具有函數(shù)優(yōu)先的輕量級(jí),解釋型或即時(shí)編譯型的編程語言。雖然它是作為開發(fā)Web頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環(huán)境中,JavaScript基于原型編程、多范式的動(dòng)態(tài)腳本語言,并且支持面向?qū)ο蟆⒚钍?、聲明式、函?shù)式編程范式。
javascript是一種解釋類型的語言,跟c++、c語言這些不一樣(先編譯后執(zhí)行),它是在程序運(yùn)行過程中每行都要進(jìn)行解釋。javascript不僅是一種基于對(duì)象的腳本語言,它既可以創(chuàng)建對(duì)象,也可以直接使用已有的對(duì)象。
javascript是事件驅(qū)動(dòng)性的腳本語言,比如用戶在訪問網(wǎng)頁時(shí),鼠標(biāo)在點(diǎn)擊,移動(dòng)等操作。javascript是可以直接對(duì)這些時(shí)間做出相應(yīng),并不需要通過web服務(wù)器來對(duì)用戶的行為做出相應(yīng)。
javascript特點(diǎn):
1、簡單性
javascript是弱類型的變量類型,對(duì)于數(shù)據(jù)類型并沒有嚴(yán)格要求,她的設(shè)計(jì)簡單緊湊。
2、跨平臺(tái)性
javascript是不需要依靠操作系統(tǒng),只要瀏覽器支持,它編譯后就可以直接帶到任何支持瀏覽器腳本語言上就可以直接使用了,而javascript幾乎已經(jīng)獲得所有瀏覽器的支持。
javascript是事件驅(qū)動(dòng)性的腳本語言,比如用戶在訪問網(wǎng)頁時(shí),鼠標(biāo)在點(diǎn)擊,移動(dòng)等操作。javascript是可以直接對(duì)這些時(shí)間做出相應(yīng),并不需要通過web服務(wù)器來對(duì)用戶的行為做出相應(yīng)。
弱類型語言 是相對(duì)強(qiáng)類型語言來說的
在強(qiáng)類型語言中,變量類型有多種,例如int char float boolean 等
不同的類型相互轉(zhuǎn)換有時(shí)需要強(qiáng)制轉(zhuǎn)換
而javascript只有一種類型var ,為變量賦值時(shí)會(huì)自動(dòng)判斷類型并進(jìn)行轉(zhuǎn)換
所以javascript是弱語言
就體現(xiàn)在變量定義類型VAR上了
javascript的變量是弱類型。
閉包:在類似C/C++這種的非函數(shù)式編程語言中,也可以定義函數(shù)指針并返回,但外層函數(shù)在執(zhí)行結(jié)束后為內(nèi)層函數(shù)定義的上下文信息會(huì)被銷毀,而在閉包中,則保存了返回的函數(shù),還包含返回函數(shù)的上下文信息。閉包有兩個(gè)用途,一是方便實(shí)現(xiàn)嵌套的回調(diào)函數(shù),二是隱藏對(duì)象的細(xì)節(jié)。
原型鏈:創(chuàng)建對(duì)象時(shí),應(yīng)該在構(gòu)造函數(shù)內(nèi)定義一般成員,而是其原型定義成員函數(shù)。JS中有兩個(gè)特殊的對(duì)象:Object與Function,它們都是構(gòu)造函數(shù),用于生成對(duì)象。Object.prototype是所有對(duì)象的祖先,F(xiàn)unction.prototype是所有函數(shù)的原型,包括構(gòu)造函數(shù)??梢詫S的對(duì)象分為三類:用戶創(chuàng)建對(duì)象,構(gòu)造函數(shù)對(duì)象,原型對(duì)象。所有對(duì)象中都有一個(gè)__proto__屬性,其指向此對(duì)象的原型。
構(gòu)造函數(shù)對(duì)象有prototype,指向其原型對(duì)象,通過此構(gòu)造函數(shù)創(chuàng)建對(duì)象時(shí),新創(chuàng)建對(duì)象的__proto__屬性將會(huì)指向構(gòu)造函數(shù)的prototype屬性。原型對(duì)象有一個(gè)constructor屬性,指向它對(duì)應(yīng)的構(gòu)造函數(shù)。
當(dāng)前名稱:包含JavaScript是弱的詞條
文章路徑:http://jinyejixie.com/article44/dsechee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、面包屑導(dǎo)航、、網(wǎng)站營銷、域名注冊(cè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)