JS數(shù)據(jù)類型,類型轉(zhuǎn)換

ECMAScript:標(biāo)準(zhǔn)、核心
HTML 標(biāo)簽類型:block、inline、inline-block、table……
JS中的數(shù)據(jù)類型:數(shù)字(Number)、字符串(String)、布爾(boolean)、函數(shù)、對(duì)象(obj、[]、{}、null)、未定義(undefined)

typeof 判斷數(shù)據(jù)類型

  • typeof操作符的操作數(shù)可以是變量也可以是數(shù)值字面量。
var i = 100;
 alert( typeof i );           // number
 alert(typeof 100);        //number
var s = ' miaov ';
 alert( typeof s );               // string
 alert( s.length );               // 7
 alert( s.charAt(3) );        // 'a'
var b = true;               // 布爾值:true  false
 alert( typeof b );       // boolean
var arr=[5,6,9,3];
alert(typeof(arr));     //object
var obj = document;
 alert( typeof obj );             // object  物體、東西、對(duì)象
var n = null;
 alert( typeof n );            //object(從邏輯角度看,null值表示一個(gè)空對(duì)象指針,所以會(huì)返回object)
var a;
alert(typeof a);   //undefined

數(shù)據(jù)類型轉(zhuǎn)換-number

  • JS中有三個(gè)函數(shù)可以將非數(shù)值轉(zhuǎn)化為數(shù)值:Number(),ParesInt(),ParesFloat()。
  • 區(qū)別:Number()可以用于任何數(shù)據(jù)類型,而另外兩個(gè)函數(shù)專門用于把字符串轉(zhuǎn)換成數(shù)值

Number()函數(shù)的轉(zhuǎn)換規(guī)則如下

  1. 如果是boolean值,true和false會(huì)分別轉(zhuǎn)化為1和0;
    var a=true;
    alert(Number(a));  // 1
  1. 如果只是數(shù)字值,只是簡(jiǎn)單的傳入和返回。
    var a=100;
    alert(Number(a));  // 100
  1. 如果是Null值,則會(huì)返回0;
var a = null;
// alert( Number(a) );             // 0
  1. 如果是undefined,函數(shù),json則都返回NaN;
var json = {};
// alert( Number(json) ); //NaN
var u;
// alert( Number(u) );  //NaN
var a3 = function (){ alert(1); };
// alert( Number(a3) );           // NaN
  1. 如果是字符串,遵循下列規(guī)則:
  • 如果字符串中只包含數(shù)字(包括正負(fù),并且前導(dǎo)的零會(huì)被忽略),則將其轉(zhuǎn)換為十進(jìn)制數(shù)值
var a = '+100';
 alert( a+100 );      // '100100'
 alert( Number(a) );          // 100
  • 如果字符串中包含有效的浮點(diǎn)數(shù),則將其轉(zhuǎn)化為對(duì)應(yīng)的浮點(diǎn)數(shù)
    var a=2.123;
    alert(Number(a)); //2.123
  • 如果字符串中包含有效的十六進(jìn)制格式,如'0xf',則將其轉(zhuǎn)化為相同大小的十進(jìn)制數(shù)值
 var a=0xAD;
 alert(Number(a));  //173
  • 如果是空字符串(不包含任何字符),則將其轉(zhuǎn)換為0;
var a1 = '    ';
// alert( Number(a1) );     // 0
  • 其他格式的字符串將會(huì)被轉(zhuǎn)化為NaN;

parseInt()轉(zhuǎn)換規(guī)則如下:

  1. 它會(huì)忽略字符串前面的空格,直至找到第一個(gè)非空字符,如果第一字符不是數(shù)字符號(hào),則返回NaN。
  2. 空字符串也會(huì)被轉(zhuǎn)換為NaN。
  3. 從第一數(shù)字字符開始解析,直到解析到最后一個(gè)數(shù)字字符或者遇到一個(gè)非數(shù)字字符則會(huì)停止解析,相應(yīng)的小數(shù)點(diǎn)也不會(huì)被解析。
  4. 當(dāng)需要解析進(jìn)制數(shù)時(shí)最好在函數(shù)中添加第二個(gè)參數(shù):轉(zhuǎn)換時(shí)使用的基數(shù)(即多少進(jìn)制的數(shù)字)。
var num=parseInt('0xAF',16) //175

parseFloat()的與parseInt()的一些區(qū)別:

  1. 它解析的第一個(gè)小數(shù)點(diǎn)有效,第二個(gè)小數(shù)點(diǎn)無(wú)效。
  2. 前導(dǎo)0會(huì)被忽略,所以只能解析十進(jìn)制
//特殊的一些轉(zhuǎn)換
var a=parseFloat('0xAF');  //0
var b=parseFloat('3.125e7'); //31250000
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第一章: JS簡(jiǎn)介 從當(dāng)初簡(jiǎn)單的語(yǔ)言,變成了現(xiàn)在能夠處理復(fù)雜計(jì)算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,703評(píng)論 0 6
  • 變量 聲明變量 命名變量區(qū)分大小寫的語(yǔ)言第一個(gè)字符是字母或下劃線_,數(shù)字不能作為第一個(gè)字符字符必須是字母,數(shù)字或者...
    flyingtoparis閱讀 834評(píng)論 0 0
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,270評(píng)論 0 4
  • ECMAScript中有5種簡(jiǎn)單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined 、Null、 Boolean ...
    胖胖冰閱讀 247評(píng)論 0 0
  • 好朋友接二連三的結(jié)婚了,有一種做爸爸的把女兒交出去的感覺(jué),有些許的不舍,也明白好朋友之后的精力更多的會(huì)放在...
    洋蔥蔥閱讀 1,895評(píng)論 37 33