JavaScript語言特性

JavaScript是一種動態的,弱類型,基於原型的腳本語言。在JavaScript中"一切皆對象"。

(1)動態性

動態性是指,在一個Javascript對象中,要爲一個屬性賦值,我沒不必事先創建一個字段,只需要在使用的時候做賦值操作即可,

//定義一個對象

var obj=new Object();

//動態創建屬性name

obj.name="an object";

//動態創建屬性sayH1

obj.sayHi=function(){

return "hi";

}

obi.sayHi();


(2)弱類型

Javascript是弱類型的,它的數據類型無需在聲明時指定,解釋器會根據上下文對變量進行實例化,

//定義一個變量s,並賦值爲字符串

var s="text";

//賦值s爲整型

s=12+5;

//賦值s爲浮點型

s=6.3

//賦值s爲一個對象

s=new Object();

s.name="object";

弱類型的好處是,一個變量可以很大程度的進行復用,比如String類型的name字段,在被使用後,可以賦值爲另一個Number型的對象,而無需重新創建一個新的變量。不過,弱類型也有其不利的一面,比如在開發面向對象的Javascript的時候,沒有類型的判斷將會是比較麻煩的問題,不過我們可以通過別的途徑來解決此問題


Javascript應用範圍


(1)客戶端Javascript

客戶端的JavaScript可以使你的WEB頁面更加生動,通過AJAX,無刷新的更新頁面內容,可以大大的提高用戶體驗,隨着大量的JavaScript包如jQuery,ExtJS,Mootools等的涌現,越來越多的絢麗,高體驗的WEB應用被開發出來,這些都離不開幕後的JavaScript的支持。


(2)服務端Javascript

當Google的JavaScript引擎V8出現以後,有很多基於V8引擎的應用出現了,其中最著名,最有前景的當算Node.js了

var sys=require('sys');

http=require('http');

http.createServer(function(req,res){

setTimeout(function(){

res.sendHeader(200,{'Content-Type':'text/plain'});

res.sendBody('Hello World');

res.finish();

},2000)

}).listen(8000);

sys.put('Server runing at http://127.0.0.1:8000/');

保存這個腳本爲sayHello.js,然後運行:

node sayHello.js

程序將會在控制檯上打印:

Server runing at http://127.0.0.1:8000/


訪問http://127.0.0.1:8000/,兩秒鐘之後頁面會響應:Hello,World.


再看另一個例子

var tcp= require('tcp');

var server=tcp.createServer(function (socket){

socket.setEncoding("utf8");

socket.addListener("connect",function(){

socket.send("hello\r\n");

});

socket.addListener("receive";function(data){

socket.send(data);

});

socket.addListener("eof",function(){

socket.send("goodbye\r\n");

socket.close();

});

});

server.listen(7000,"localhost");

當訪問localhost的7000端口,將建立一個TCP連接,編碼方式爲utf-8,當客戶端連接到來時,程序在控制檯上打印

hello

當接收到新的數據時,會將接收到的數據原樣返回給客戶端,如果客戶端斷開連接,則向控制檯打印:

goodbye

Node提供了豐富的API來簡化服務器端的網絡編程,由於Node是基於一個JavaScript引擎的,因此天生的就具有動態性和可擴展性,因此在開發網絡程序上,是一個不錯的選擇。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章