干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡微信小程序

百恒網(wǎng)絡

南昌百恒網(wǎng)絡

ECMAScript typeof操作符以及ECMAScript Undefined 數(shù)據(jù)類型分析及應用

百恒網(wǎng)絡 2012-02-05 4952

ECMAScript中有5種簡單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined. Null. Boolean、Number和String。還有1神復雜數(shù)據(jù)類型-Object,Object本質(zhì)上是由一組無序的名值對組成的。ECMAScript 不支持任何創(chuàng)建自定義類型的機制,而所有值最終都將是上述6種數(shù)據(jù)類型之一。乍一看,好像只有6種數(shù)據(jù)類型不足以表示所有數(shù)據(jù);但是,由于ECMAScript數(shù)據(jù)類型具有動態(tài)性,因此的確沒有再定義其他數(shù)據(jù)類型的必要了。

1. typeof操作符

鑒于ECMAScript是松散類型的,因此需要有一種手段來檢測給定變量的數(shù)據(jù)類型typeof就是負責提供這方面信息的操作符。對一個值使用typeof操作符可能返回下列某個字符串:

”undefined”——如果這個值未定義;

”boolean”——如果這個值是布爾值;

”string”——如果這個值是字符串;

”number”——如果這個值是數(shù)值;

”object”——如果這個值是對象或null;

”function”——如果這個值是函數(shù)。

下面是幾個使用typeof操作符的例子:

var message= "some string";

alert (typeof message); //"string"

alert(typeof (message)); //"string"

alert (typeof 95); // "number"

這幾個例子說明,typeof操作符的操作數(shù)可以是變量(message),也可以是數(shù)值字面量。注意,typeof是一個操作符而不是函數(shù),因此例子中的圓括號不是必需的(盡管可以使用)。

南昌網(wǎng)站建設公司百恒網(wǎng)絡前端開發(fā)工程師提醒廣大企業(yè)網(wǎng)站建設公司技術人員和站長:從技術角度講,函數(shù)在ECMAscript中是對象,不是一種數(shù)據(jù)類型,然而,函數(shù)也確實有一些特殊的屬性,因此通過typeof操作符來區(qū)分函數(shù)和其他對象是有必要的.

2. Undefined類型

Undefined類型只有一個值,即特殊的undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined,例如:

var message;

alert (message==undefined); //true

這個例子只聲明了變量message,但未對其進行初始化。比較這個變量與undefined宇面量,結果表明它們是相等的。這個例子與下面的例子是等價的:

var messagei = undefined;

alert (message==undefined); //true

這個例子使用undefined值顯式初始化了變量message。但我們沒有必要這么做,因為未經(jīng)初始化的值默認就會取得undefined值。

南昌網(wǎng)絡公司百恒網(wǎng)絡前端開發(fā)工程師提示:一般而言,不存在需要顯式地把一個變量設置為undefined 值的情況,字面值undefined的主要目的是用于比較,而ECMA-262第3版之前的版本中沒有規(guī)定這個值.第3版引入這個值是為了正式區(qū)分空對象指針與未經(jīng)初始化的變量. undefined值的變量與尚未定義的變量還是不一樣的。看看下面這個例子:

var message; //這個變量聲明之后默認取得了undefined值

//下面這個變量并沒有聲明

//var age

alert (message); // ”undefined“

alert( age); //產(chǎn)生錯誤

運行以上代碼,第一個警告框會顯示變量message的值,即undefined”。而第二個警告框——由于傳遞給alert()函數(shù)的是尚未聲明的變量age-則會導致一個錯誤。對于尚未聲明過的變量,只能執(zhí)行一項操作,即使用typeof操作符檢測其數(shù)據(jù)類型。

然而,令人困惑的是:對未初始化的變量執(zhí)行typeof操作符會返回unde fined值,而對未聲明的變量執(zhí)行typeof操作符同樣也會返回undefined值。來看下面的例子:

var message;//這個變量聲明之后默認取得了undefined值

//下面這個變量并沒有聲明

//var age

alert( typeof message); //"undefined"

alert(typeof age); //"undefined"

結果表明’對未初始化和未聲明的變量執(zhí)行typeof操作符都返回了undefined值;這個結果有其邏輯上的合理性。因為雖然這兩種變量從技術角度看有本質(zhì)區(qū)別,但實際上無論對哪種變量也不可能執(zhí)行真正的操作。 南昌建網(wǎng)站公司前端開發(fā)工程師提示:即使示初始化的變量會自動賦予undefined值,但南昌網(wǎng)站制作公司前端開發(fā)工程師認為顯式地初始化變量依然是明智的選擇,如果能夠做到這一點,那么當typeof操作符返回undefined值時,我們就知道檢測的變量還沒有被聲明,而不是尚未初始化.

希望對廣大站長或網(wǎng)站建設公司或從事企業(yè)網(wǎng)站建設的小團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡公司百恒網(wǎng)絡技術部聯(lián)系。我們很高與廣大站長和網(wǎng)站建設公司技術人員分享我們的技術和經(jīng)驗。


400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
通江县| 芦溪县| 宁津县| 股票| 虹口区| 三穗县| 新化县| 台南市| 安庆市| 莱阳市| 株洲县| 陈巴尔虎旗| 封开县| 新竹县| 宝丰县| 延川县| 喀什市| 霞浦县| 神农架林区| 十堰市| 天气| 漠河县| 灌阳县| 谢通门县| 甘南县| 平原县| 河南省| 马尔康县| 玛纳斯县| 曲麻莱县| 田东县| 安塞县| 安仁县| 甘德县| 西丰县| 清徐县| 丹巴县| 泸州市| 望城县| 杭锦后旗| 呼和浩特市|