十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1、javascript是弱類型語言,定義變量時用var關(guān)鍵字(可選)且不需要也不能指定變量的類型,而java是強類型語言,定義任何變量時必須指定其類型,否則無法通過編譯;
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),留壩企業(yè)網(wǎng)站建設(shè),留壩品牌網(wǎng)站建設(shè),網(wǎng)站定制,留壩網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,留壩網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
2、javascript定義函數(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);
弱類型語言也是有類型的?;蛘哒f,任何計算機語言都是要有類型的。
基本數(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。因為null代表對象是空的情況。
自動類型轉(zhuǎn)換
1
2
3
4
"10.0"%"5"http://結(jié)果是0,string類型自動類型轉(zhuǎn)換為number類型
!0//結(jié)果是true,number類型自動轉(zhuǎn)換為boolean類型
"10.0" + 5//結(jié)果是"10.05",number類型自動轉(zhuǎn)換為string類型
弱類型語言內(nèi)存布局上一般是個Union結(jié)構(gòu),并且要包含一個類型字段,因為計算機底層還是要知道明確的類型信息。
因為包含類型信息,所以在代碼的上下文中,可能會進行隱含的類型轉(zhuǎn)換,比如把字符串轉(zhuǎn)整型,整型轉(zhuǎn)字符串,這樣會稍損性能,并且可能會不符合程序本意。
弱類型語言都是腳本語言,在運行時確定值,所以跟編譯不相關(guān)。
我的經(jīng)驗是弱類型在大項目開發(fā)上,還是不方便,需要在整個框架結(jié)構(gòu)上做規(guī)范,否則多人合作開發(fā)比較麻煩。
弱類型使用簡單,更靈活多變。對于程序員來講這是個優(yōu)點。
強類型語言,類型轉(zhuǎn)換的時候非常嚴(yán)格,這跟語言特點有關(guān)系,
強類型語言是直接操縱內(nèi)存,容易出內(nèi)存越界和泄漏的問題。在類型的轉(zhuǎn)換方面是很多約束,甚至強制轉(zhuǎn)換也要很謹(jǐn)慎,一不小心就出大問題。
弱類型語言一般都會犧牲一些運行性能,不過簡單好用,而且相對安全。
其實兩種類型對應(yīng)的語言本身其他的差異已經(jīng)很大了,整個區(qū)別還是比較明顯的。
JavaScript(簡稱“JS”)是一種具有函數(shù)優(yōu)先的輕量級,解釋型或即時編譯型的編程語言。雖然它是作為開發(fā)Web頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環(huán)境中,JavaScript基于原型編程、多范式的動態(tài)腳本語言,并且支持面向?qū)ο?、命令式、聲明式、函?shù)式編程范式。
javascript是一種解釋類型的語言,跟c++、c語言這些不一樣(先編譯后執(zhí)行),它是在程序運行過程中每行都要進行解釋。javascript不僅是一種基于對象的腳本語言,它既可以創(chuàng)建對象,也可以直接使用已有的對象。
javascript是事件驅(qū)動性的腳本語言,比如用戶在訪問網(wǎng)頁時,鼠標(biāo)在點擊,移動等操作。javascript是可以直接對這些時間做出相應(yīng),并不需要通過web服務(wù)器來對用戶的行為做出相應(yīng)。
javascript特點:
1、簡單性
javascript是弱類型的變量類型,對于數(shù)據(jù)類型并沒有嚴(yán)格要求,她的設(shè)計簡單緊湊。
2、跨平臺性
javascript是不需要依靠操作系統(tǒng),只要瀏覽器支持,它編譯后就可以直接帶到任何支持瀏覽器腳本語言上就可以直接使用了,而javascript幾乎已經(jīng)獲得所有瀏覽器的支持。
javascript是事件驅(qū)動性的腳本語言,比如用戶在訪問網(wǎng)頁時,鼠標(biāo)在點擊,移動等操作。javascript是可以直接對這些時間做出相應(yīng),并不需要通過web服務(wù)器來對用戶的行為做出相應(yīng)。
弱類型語言 是相對強類型語言來說的
在強類型語言中,變量類型有多種,例如int char float boolean 等
不同的類型相互轉(zhuǎn)換有時需要強制轉(zhuǎn)換
而javascript只有一種類型var ,為變量賦值時會自動判斷類型并進行轉(zhuǎn)換
所以javascript是弱語言
就體現(xiàn)在變量定義類型VAR上了
javascript的變量是弱類型。
閉包:在類似C/C++這種的非函數(shù)式編程語言中,也可以定義函數(shù)指針并返回,但外層函數(shù)在執(zhí)行結(jié)束后為內(nèi)層函數(shù)定義的上下文信息會被銷毀,而在閉包中,則保存了返回的函數(shù),還包含返回函數(shù)的上下文信息。閉包有兩個用途,一是方便實現(xiàn)嵌套的回調(diào)函數(shù),二是隱藏對象的細(xì)節(jié)。
原型鏈:創(chuàng)建對象時,應(yīng)該在構(gòu)造函數(shù)內(nèi)定義一般成員,而是其原型定義成員函數(shù)。JS中有兩個特殊的對象:Object與Function,它們都是構(gòu)造函數(shù),用于生成對象。Object.prototype是所有對象的祖先,F(xiàn)unction.prototype是所有函數(shù)的原型,包括構(gòu)造函數(shù)??梢詫S的對象分為三類:用戶創(chuàng)建對象,構(gòu)造函數(shù)對象,原型對象。所有對象中都有一個__proto__屬性,其指向此對象的原型。
構(gòu)造函數(shù)對象有prototype,指向其原型對象,通過此構(gòu)造函數(shù)創(chuàng)建對象時,新創(chuàng)建對象的__proto__屬性將會指向構(gòu)造函數(shù)的prototype屬性。原型對象有一個constructor屬性,指向它對應(yīng)的構(gòu)造函數(shù)。