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

      百恒網絡

      南昌百恒網絡

      ECMAScript typeof操作符以及ECMAScript Undefined 數據類型分析及應用

      百恒網絡 2012-02-05 4953

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

      1. typeof操作符

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

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

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

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

      ”number”——如果這個值是數值;

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

      ”function”——如果這個值是函數。

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

      var message= "some string";

      alert (typeof message); //"string"

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

      alert (typeof 95); // "number"

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

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

      2. Undefined類型

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

      var message;

      alert (message==undefined); //true

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

      var messagei = undefined;

      alert (message==undefined); //true

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

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

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

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

      //var age

      alert (message); // ”undefined“

      alert( age); //產生錯誤

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

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

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

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

      //var age

      alert( typeof message); //"undefined"

      alert(typeof age); //"undefined"

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

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


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

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      老司机精品视频免费| 99久久国产亚洲综合精品| 国产精品美女WWW爽爽爽视频| 中日韩美中文字幕| 在线精品自拍亚洲第一区| 99精品国产一区二区三区2021| 久久精品国产亚洲精品2020| 久久精品99香蕉国产| 亚洲精品国产精品乱码不卡√| 国产亚州精品女人久久久久久| 精品国产一区二区三区AV性色| 亚洲精品动漫人成3d在线| 手机日韩精品视频在线看网站| 日韩精品福利片午夜免费观着| 国产一区二区精品久久91| 国产精品国语自产拍在线观看| 最新国产精品自在线观看| 人妻熟妇乱又伦精品HD| 日韩精品久久久久久久电影| 国产成人精品日本亚洲11| 国产精品久久久久久| 97精品人妻系列无码人妻| 1000部精品久久久久久久久| 无码成人精品区在线观看| 交换国产精品视频一区| 亚洲中文字幕精品久久| 国产午夜精品一区二区三区极品 | 91精品啪在线观看国产91九色| 99在线热视频只有精品免费| 久久精品国产亚洲AV大全| 91精品国产入口| 国产99视频精品一区| 亚洲精品9999久久久久无码| 国产精品美女午夜爽爽爽免费| 日韩加勒比一本无码精品| 国产日韩精品视频| 国产亚洲蜜芽精品久久| 日韩精品一区二区三区中文3d| 精品中文字幕一区二区三区四区 | 精品久久久久久无码专区| 日本亚洲精品色婷婷在线影院|