js中的數(shù)據(jù)類型分6種
1;string ? ? 字符串型;
2;Number;數(shù)字型;
? ? ? ? ? 在js中數(shù)據(jù)類型就包括整數(shù)型和小數(shù);
? ? ? ? ? 他在電腦有有最大值: Number.MAX_VALUE;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??有最大值:Number.MIN_VALUE;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 無窮大值:Infinity;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 無窮小值:-Infinity;
? ? ? ? ? ? ? ? ?非法數(shù)字(not a number): NAN;
3;boolean;布爾型;
? ? ? ? ?在布爾運算中我們要注意的是;
? ? ? ? ? ? ? ? ? ? 任何非零數(shù)值都是true, 包括正負無窮大, 只有0和NaN是false
? ? ? ? ? ? ? ? ? ?任何非空字符串都是true, 只有空字符串是false
? ? ? ? ? ? ? ? ? ? 任何對象都是true, 只有null和undefined是false
4;null;空值;
? ? ? ? ? ?他表示一個空的對象;
5;Undefined;未定義的;
? ? ? ? ? ? 他其實就是null延伸出來的;
? ? ? ? 但是你要注意這個;如果
? ? ? var ?st=null;
? ? ? ?var ?st1=undefined;
? console.log(st==st1); 與console.log(st===str1)的區(qū)別;前者是true后這是false;
??
6;Object;對象(引用數(shù)據(jù)類型);
要測試我們所定義的數(shù)據(jù)類型是什么類型我們要用到typeof()方法;
var str="123"; 這里要注意的是;在定義字符串類型的時候;相同引號不能嵌套使用;但可以雙引號嵌套單引號;單引號可以 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 嵌套雙引號;
var str1=123;
var str2=null;
var str3=undefined;
var str4=true;
console.log(typeof str);//這個輸出顯示的是字符串
console.log(typeof str1);//這個顯示的是數(shù)據(jù)類型
console.log(typeof str2);//這顯示的object類型
console.log(typeof str3);//顯示的是undefined;
console.log(typeof str4);//這個顯示的是邏輯型;布爾型;
大家千萬要注意的是如果給變量名添加了引號;那么這個變量名就變成了常量了;值就是他這個變量名的本身;
console.log("str"); ?這個顯示的就是str;而字符串123;
屬性類型轉換
1; toString();轉換成字符串型
????????????但要主要的是null和undefined不能轉換成字符串型;要報錯誤的;
????????????這個轉換后;變量的原來的值不便;他只是把轉換的結果返回;
? ? ? ? ? ?toString(2),可以攜帶一個參數(shù),這個參數(shù)表示我們用幾進制輸出;二進制是八進制 十進制 或者十六進制輸出;
? ? ? ? ?var num=30;
????????????????????? ? var znum2=num.toString(2);//轉換成二進制字符串;
????????????????????????var znum8=num.toString(8);//八進制字符串;
????????????????????????var znum10=num.toString(10);//十進制字符串;
????????????????????????var znum16=num.toString(16);//十六進制字符串;
????????????????????????console.log(znum2);
????????????????????????console.log(znum8);
????????????????????????console.log(znum10);
????????????????????????console.log(znum16);
2;string;任何數(shù)都可以用string()函數(shù)來轉;包括null和undefined;
? ? ? ?重點注意的是toString 和String()的區(qū)別是;
? ? ? .toString()是一個方法而String(傳入?yún)?shù))是函數(shù);
? ? ? 方法的調用是用"."而函數(shù)是給他傳參數(shù);
3; 任何數(shù)字+""空字符都自動轉換成字符串;包括null和undefined;
將其它類型轉換為Number類型
他的轉換方式和String一樣是函數(shù);要把轉換的類型傳入到number()函數(shù)中;
他分幾種形式;
1;純數(shù)字字符串;直接轉換;
2;如果字符串中有非數(shù)字的內容,則轉換為NaN;
3;如果字符串是一個空串或者是一個全是空格的字符串,則轉換為0;
4;布爾轉數(shù)字;true=1;false=0;
5;null 轉數(shù)字 是0;
6;undefined轉屬性 NaN;
函數(shù)parseInt()/parseFloat()和Number()函數(shù)的區(qū)別;
?????????parseInt()/parseFloat()可以提取字符串中的有效整數(shù);而number()如果字符串中有非數(shù)字的內容,則轉換為NaN;
? ? ? ? 從第一位有效數(shù)字開始, 直到遇到無效數(shù)字;如果第一位不是有效數(shù)字, 什么都提取不到, 會返回NaN
? ? ? ?第一個參數(shù)是要轉換的字符串,第二個參數(shù)是要轉換的進制
? ? ? ? ? parseInt(要轉換的字符串,要轉換的多少進制);
? ? ? ? ?parseFloat(只能輸入轉換的字符串);只能是10進制;可以有小數(shù)點;
對非String使用parseInt()或parseFloat(), 會先將其轉換為String然后在操作
運算符
1;非Number類型的值進行運算時,會將這些值轉換為Number然后在運算
? ? ? ?????var ?result =true+1;
????????????console.log(result);// 2
????????????result =true+false;
????????????console.log(result);// 1
????????????result =2+null;
????????????console.log(result);// 2
2;任何值和NaN做運算都得NaN
3;任何的值和字符串做加法運算,都會先轉換為字符串,然后再和字符串做拼串的操作
parseInt()提取字符串中的整數(shù)
parseInt()提取字符串中的整數(shù)parseInt()提取字符串中的整數(shù)parseInt()提取字符串中的整數(shù)parseInt()提取字符串中的整數(shù)