国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中的值類型詳細介紹

2024-05-06 16:13:11
字體:
供稿:網(wǎng)友
這篇文章主要介紹了JavaScript中的值類型詳細介紹,本文講解了Primitive、Object、JS自帶全局對象、Immutable與Mutable等內(nèi)容,需要的朋友可以參考下
 
 

計算機程序的實質(zhì)很大程度上可以說是機器對各種信息(值)的操作與讀寫。在JavaScript中,存在多種類型的值,這些值分成兩大類:Primitive(基本類型)和Object(對象)。

 

Primitive

 

JavaScript中Primitive有5種類型:

1.Number。所有的數(shù)字,無論是整數(shù)還是小數(shù),均為Number類型。
2.String。字符串類型。
3.Boolean。布爾類型,true或者false。
4.null。此類型只有null一個值。
5.undefined。此類型只有undefined一個值。

 

Object

 

除了Primitive,JavaScript中其它任何值均為Object(對象)。Object有以下幾種:

1.JSON鍵值對對象。如{“name”:”Bob”, “age”:42}。
2.數(shù)組(array)。如[1,4,5,7,9]。
3.函數(shù)(function)。如function(){return true;}。在JavaScript中函數(shù)有兩種存在形式:1. 可執(zhí)行代碼塊;2. 類(Class)的構(gòu)造器(constructor)。無論是以哪種形式存在,函數(shù)(function)始終都是對象。

 

JS自帶全局對象

 

為了方便程序編寫,JavaScript自帶一個全局對象,該全局對象擁有以下7個成員變量,其類型均為Object:

1.Math??梢酝ㄟ^調(diào)用Math對象的方法來完成一系列復雜的數(shù)學運算。
2.Number??梢酝ㄟ^訪問Number對象的成員變量來獲取一些特殊值。
3.Array。數(shù)組對象的構(gòu)造函數(shù)。
4.Function。函數(shù)對象的構(gòu)造函數(shù)。
5.Date。日期對象的構(gòu)造函數(shù)。
6.RegExp。正則表達式對象的構(gòu)造函數(shù)。
7.Error。錯誤對象的構(gòu)造函數(shù)。

在進行程序編寫時,由于可以直接訪問上述7個變量,因此也可以將它們當作全局對象來使用。

 

Immutable與Mutable

 

Primitive與Object有一個涇渭分明的特性:所有的Primitive都是Immutable的,所有的Object都是Mutable的。以String類型為例,調(diào)用String的方法對其進行編輯后,JavaScript會將編輯后的結(jié)果保存在一個新的String對象中,原String對象不會有任何改變:

復制代碼代碼如下:

var s = "test";
s.toUpperCase();//return a new String object "TEST"
console.log(s);//"test" -- original String s does not change

 

 

實驗

 

在JavaScript中,可以通過使用typeof關(guān)鍵詞來獲取某個值的類型。

獲取數(shù)字的類型:

復制代碼代碼如下:

var n = 42;
console.log(typeof n);

程序輸出結(jié)果為number。

 

獲取字符串的類型:

復制代碼代碼如下:

var s = "test";
console.log(typeof s);

程序輸出結(jié)果為string。

 

獲取布爾值的類型:

復制代碼代碼如下:

var b = true;
console.log(typeof b);

程序輸出結(jié)果為boolean。

 

獲取null的類型:

復制代碼代碼如下:

var x = null;
console.log(typeof x);

程序本應輸出null,但實際上卻輸出object。原因在于,當對null值使用typeof操作時,程序?qū)⒎祷豲bject:這是自JavaScript第一個版本以來就存在的一個bug。在ECMAScript標準的制定過程中,就是否修復這個bug存在過一些有趣的爭論:http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null;最終結(jié)論為:修復該bug會給太多的網(wǎng)站帶來問題,因此暫不修復。

 

獲取undefined的類型:

復制代碼代碼如下:

var y = undefined;
console.log(typeof y);

程序輸出結(jié)果為undefined。

 

獲取JSON對象的類型:

復制代碼代碼如下:

var j = {"name":"Bob", "age":42};
console.log(typeof j);

程序輸出結(jié)果為object。

 

獲取數(shù)組對象的類型:

復制代碼代碼如下:

var a = [2,3,5,7,11];
console.log(typeof a);

程序輸出結(jié)果為object。

 

獲取函數(shù)對象的類型:

復制代碼代碼如下:

var f = function(){return true;};
console.log(typeof f);

函數(shù)對象比較特殊,typeof操作符返回結(jié)果為function。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 榆社县| 宁津县| 安庆市| 东城区| 庆云县| 宁安市| 江山市| 石阡县| 雅江县| 金川县| 平湖市| 嘉义市| 连城县| 额尔古纳市| 喀喇沁旗| 纳雍县| 海盐县| 永新县| 红河县| 梁河县| 台中县| 成都市| 灌南县| 福海县| 沁源县| 云和县| 沂水县| 宣汉县| 尤溪县| 会理县| 岳池县| 克拉玛依市| 兰考县| 丹东市| 屏南县| 颍上县| 嘉荫县| 中西区| 东乌珠穆沁旗| 鸡东县| 佛教|