Javascript筆記一 js以及json基礎(chǔ)使用說明
更新時間:2010年05月22日 22:06:41 作者:
JavaScript中的數(shù)據(jù)很簡潔的。簡單數(shù)據(jù)只有 undefined, null, boolean, number和string這五種,而復(fù)雜數(shù)據(jù)只有一種,即object。
JavaScript中的代碼只體現(xiàn)為一種形式,就是function。
注意:以上單詞都是小寫的,不要和Number, String, Object, Function等JavaScript內(nèi)置函數(shù)混淆,JavaScript語言是區(qū)分大小寫。
typeof(null)返回object,但null并非object。
JavaScript的代碼就只有function一種形式,function就是函數(shù)的類型。函數(shù)的寫法有“定義式”和“變量式”。
定義式的函數(shù)語句會優(yōu)先執(zhí)行。函數(shù)定義執(zhí)行完之后,才會按順序執(zhí)行其他語句代碼,JavaScript是一段段地執(zhí)行的。
我們來看看下面的代碼:
var myfunc = function ()
{
alert("hello");
};
myfunc(); //第一次調(diào)用myfunc,輸出hello
myfunc = function ()
{
alert("yeah");
};
myfunc(); //第二次調(diào)用myfunc,將輸出yeah
這個程序運行的結(jié)果告訴我們:在第一次調(diào)用函數(shù)之后,函數(shù)變量又被賦予了新的函數(shù)代碼體,使得第二次調(diào)用該函數(shù)時,出現(xiàn)了不同的輸出。
好了,我們又來把上面的代碼改成定義式的函數(shù)形式:
function myfunc ()
{
alert("hello");
};
myfunc(); //這里調(diào)用myfunc,輸出yeah而不是hello
function myfunc ()
{
alert("yeah");
};
myfunc(); //這里調(diào)用myfunc,當(dāng)然輸出yeah
按理說,兩個簽名完全相同的函數(shù),在其他編程語言中應(yīng)該是非法的。但在JavaScript中,這沒錯。JavaScript執(zhí)行引擎并非一行一行地分析和執(zhí)行程序,而是一段一段地分析執(zhí)行的。在第一次調(diào)用myfunc之前,第一個函數(shù)語句定義的代碼邏輯,已被第二個函數(shù)定義語句覆蓋了。所以,兩次都調(diào)用都是執(zhí)行最后一個函數(shù)邏輯了。
創(chuàng)建對象
<script type="text/javascript">
function test() {
var bo = {}; //建立一個對象
bo.姓名 = "張三"; //對象的一個屬性
bo.年齡 = 18;
bo.showInfo = function() { alert(bo.姓名 + " " + bo.年齡); }; //對象的一個方法
alert(bo["姓名"]); //可以將對象當(dāng)數(shù)組以屬性名作為下標(biāo)來訪問屬性
bo["showInfo"](); //可以將對象當(dāng)數(shù)組以方法名作為下標(biāo)來調(diào)用方法
//遍歷對象里所有的屬性和方法,并輸出其類型
for (var s in bo) {
alert(s + " 是 " + typeof (bo[s]));
}
}
</script>
JSON為創(chuàng)建對象提供了非常簡單的方法,JavaScript Object Notation(縮寫JSON),翻譯為中文就是“JavaScript對象表示法”。
創(chuàng)建一個沒有任何屬性的對象:
var o = {};
創(chuàng)建一個對象并設(shè)置屬性及初始值:
var person = {name: "Angel", age: 18, married: false};
創(chuàng)建一個對象并設(shè)置屬性和方法:
var speaker = {text: "Hello World", say: function(){alert(this.text)}};
創(chuàng)建一個更復(fù)雜的對象,嵌套其他對象和對象數(shù)組等:
var company =
{
name: "Microsoft",
product: "softwares",
chairman: {name: "Bill Gates", age: 53, Married: true},
employees: [{name: "Angel", age: 26, Married: false}, {name: "Hanson", age: 32, Marred: true}],
readme: function() {document.write(this.name + " product " + this.product);}
};
JSON的形式就是用大括“{}”號包括起來的項目列表,每一個項目間并用逗號“,”分隔,而項目就是用冒號“:”分隔的屬性名和屬性值。這是典型的字典表示形式,也再次表明了 JavaScript里的對象就是字典結(jié)構(gòu)。不管多么復(fù)雜的對象,都可以被一句JSON代碼來創(chuàng)建并賦值。
其實,JSON就是JavaScript對象最好的序列化形式,它比XML更簡潔也更省空間。對象可以作為一個JSON形式的字符串,在網(wǎng)絡(luò)間自由傳遞和交換信息。而當(dāng)需要將這個JSON字符串變成一個JavaScript對象時,只需要使用eval函數(shù)這個強大的數(shù)碼轉(zhuǎn)換引擎,就立即能得到一個JavaScript內(nèi)存對象。正是由于JSON的這種簡單樸素的天生麗質(zhì),才使得她在AJAX舞臺上成為璀璨奪目的明星。
注意:以上單詞都是小寫的,不要和Number, String, Object, Function等JavaScript內(nèi)置函數(shù)混淆,JavaScript語言是區(qū)分大小寫。
typeof(null)返回object,但null并非object。
JavaScript的代碼就只有function一種形式,function就是函數(shù)的類型。函數(shù)的寫法有“定義式”和“變量式”。
定義式的函數(shù)語句會優(yōu)先執(zhí)行。函數(shù)定義執(zhí)行完之后,才會按順序執(zhí)行其他語句代碼,JavaScript是一段段地執(zhí)行的。
我們來看看下面的代碼:
復(fù)制代碼 代碼如下:
var myfunc = function ()
{
alert("hello");
};
myfunc(); //第一次調(diào)用myfunc,輸出hello
myfunc = function ()
{
alert("yeah");
};
myfunc(); //第二次調(diào)用myfunc,將輸出yeah
這個程序運行的結(jié)果告訴我們:在第一次調(diào)用函數(shù)之后,函數(shù)變量又被賦予了新的函數(shù)代碼體,使得第二次調(diào)用該函數(shù)時,出現(xiàn)了不同的輸出。
好了,我們又來把上面的代碼改成定義式的函數(shù)形式:
復(fù)制代碼 代碼如下:
function myfunc ()
{
alert("hello");
};
myfunc(); //這里調(diào)用myfunc,輸出yeah而不是hello
function myfunc ()
{
alert("yeah");
};
myfunc(); //這里調(diào)用myfunc,當(dāng)然輸出yeah
按理說,兩個簽名完全相同的函數(shù),在其他編程語言中應(yīng)該是非法的。但在JavaScript中,這沒錯。JavaScript執(zhí)行引擎并非一行一行地分析和執(zhí)行程序,而是一段一段地分析執(zhí)行的。在第一次調(diào)用myfunc之前,第一個函數(shù)語句定義的代碼邏輯,已被第二個函數(shù)定義語句覆蓋了。所以,兩次都調(diào)用都是執(zhí)行最后一個函數(shù)邏輯了。
創(chuàng)建對象
復(fù)制代碼 代碼如下:
<script type="text/javascript">
function test() {
var bo = {}; //建立一個對象
bo.姓名 = "張三"; //對象的一個屬性
bo.年齡 = 18;
bo.showInfo = function() { alert(bo.姓名 + " " + bo.年齡); }; //對象的一個方法
alert(bo["姓名"]); //可以將對象當(dāng)數(shù)組以屬性名作為下標(biāo)來訪問屬性
bo["showInfo"](); //可以將對象當(dāng)數(shù)組以方法名作為下標(biāo)來調(diào)用方法
//遍歷對象里所有的屬性和方法,并輸出其類型
for (var s in bo) {
alert(s + " 是 " + typeof (bo[s]));
}
}
</script>
JSON為創(chuàng)建對象提供了非常簡單的方法,JavaScript Object Notation(縮寫JSON),翻譯為中文就是“JavaScript對象表示法”。
創(chuàng)建一個沒有任何屬性的對象:
var o = {};
創(chuàng)建一個對象并設(shè)置屬性及初始值:
var person = {name: "Angel", age: 18, married: false};
創(chuàng)建一個對象并設(shè)置屬性和方法:
var speaker = {text: "Hello World", say: function(){alert(this.text)}};
創(chuàng)建一個更復(fù)雜的對象,嵌套其他對象和對象數(shù)組等:
復(fù)制代碼 代碼如下:
var company =
{
name: "Microsoft",
product: "softwares",
chairman: {name: "Bill Gates", age: 53, Married: true},
employees: [{name: "Angel", age: 26, Married: false}, {name: "Hanson", age: 32, Marred: true}],
readme: function() {document.write(this.name + " product " + this.product);}
};
JSON的形式就是用大括“{}”號包括起來的項目列表,每一個項目間并用逗號“,”分隔,而項目就是用冒號“:”分隔的屬性名和屬性值。這是典型的字典表示形式,也再次表明了 JavaScript里的對象就是字典結(jié)構(gòu)。不管多么復(fù)雜的對象,都可以被一句JSON代碼來創(chuàng)建并賦值。
其實,JSON就是JavaScript對象最好的序列化形式,它比XML更簡潔也更省空間。對象可以作為一個JSON形式的字符串,在網(wǎng)絡(luò)間自由傳遞和交換信息。而當(dāng)需要將這個JSON字符串變成一個JavaScript對象時,只需要使用eval函數(shù)這個強大的數(shù)碼轉(zhuǎn)換引擎,就立即能得到一個JavaScript內(nèi)存對象。正是由于JSON的這種簡單樸素的天生麗質(zhì),才使得她在AJAX舞臺上成為璀璨奪目的明星。
相關(guān)文章
JavaScript使用localStorage判斷設(shè)置值是否過期
本文主要介紹了JavaScript使用localStorage判斷設(shè)置值是否過期,通過設(shè)置過期時間,我們可以使用 setItemWithExpiration 函數(shù)將數(shù)據(jù)存儲到 localStorage 中,并使用 getItemWithExpiration 函數(shù)獲取數(shù)據(jù)并檢查是否過期,感興趣的可以了解一下2023-05-05深入理解JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域
匿名函數(shù)沒有實際名字的函數(shù),匿名函數(shù)(function() {})();是一個特殊的閉包寫法。本文蛀牙給大家介紹JavaScript 中的匿名函數(shù)((function() {})();)與變量的作用域,需要的朋友可以參考下2018-08-08javascript 表格內(nèi)容排序 簡單操作示例代碼
本文為大家詳細介紹下javascript實現(xiàn)表格內(nèi)容排序,喜歡的朋友可以參考下2014-01-01在IE上直接編輯網(wǎng)頁內(nèi)容的js代碼(IE地址欄js)
在IE上直接編輯網(wǎng)頁內(nèi)容2009-04-04類似php的js數(shù)組的in_array函數(shù)自定義方法
PHP的數(shù)組函數(shù)in_array()非常方便,下面就為大家介紹下自定義類似php的js數(shù)組的in_array函數(shù),具體實現(xiàn)方法如下,感興趣的朋友可以參考下2013-12-12