JS五大数据类型:
在JS中,有五种简单数据类型(也叫做基本数据类型);undefined,null,boolean,number,String.
注:(在java中,string不属于基本数据类型,而是属于引用数据类型:类(对象))。
1、undefined数据类型:
该类型只有一个值,就是undefined;(即指未被赋值的变量)。
2、null类型:
该类型也只有一个值,即null。(即指 "空" )
释:当声明一个变量时,可以将其初始化为null;从逻辑角度看,null值可以表示为一个空对象指针。(当使用typeof判断null的数据类型时,返回的是一个object),说明null有对象,即null,但对象(null)中是空的,没有任何东西。(同时null类型属于引用数据类型,而非值数据类型)
3、boolean类型:
该类型有两个值:ture、false。
虽然布尔类型只有两个值,但是可以通过类型转换,将其他类型的值转化为布尔类型(并且它属于强制类型转化,大转小,小强制转大)。
例:var str = “HelloWorldl”; (定义一个变量并赋值)
var strBool = Boolean(str); (使用布尔类型强制转化)
同时,在一些控制语句中,布尔类型的数据转换会自动执行,不需要手动编写。
例:var str =”HelloWodldl”;
If(str){
console.log(“yes”);
}
其中括号中的 “str” 会被布尔类型强制转化为 " ture " 或者 " false ";
4、Number类型:
该类型分为两种数值以及一种情况,两种数值,即整数数值,以及浮点数值,一种情况,即NaN。
整数数值:
最常用的是以十进制来转化整数数值,不建议使用十进制外的任何进制。
注:(在严格模式下,8进制字面量是无效的)
浮点数值:
在JS中,所谓浮点数,就是该数值中必须包含一个小数点,且小数点后面必须至少有一位数。
注:(对于没有数值意义的字面值,浮点数将会自动转化,比如1.00和1.0,由于1.00后面的0没有实际意义,所以结果将会被转化为1)
例:var floatNum = 1,;
var floatNum = 1.00:;
(控制台输出,两者结果都为1)
NaN:
英文注释:(Not a Number)
它表示的是非数值(即表示的是一种状态,而并非数值集),代表本来要返回数值,但是并未返回数值的这种情况。
NaN特点
1、任何涉及NaN的操作都会返回NaN。
2、NaN不与任何值相等,包括NaN本身。
例:
Alert(NaN == NaN); //判断两者是否相同,结果为flase
isNaN()函数
Number类型延伸的函数:
功能:该函数可以帮我们判断传递过来的参数是否“不是数值”。或者说判断该参数能不能转化成数值,能转化则返回false,否则返回ture。
扩展:
判断该函数是否不是数值也可以使用parseInt()方法进行判断,如果不是数值将会返回NaN
例:(控制台输出下面四个值)
console.log(isNaN(10));
console.log(isNaN("10"));
console.log(isNaN(false));
console.log(isNaN("str"));
("str"是标识符,则不能转化为数值)
Number()函数
(可用于任何数据类型)(返回的为数值)
功能:进行数值的转化;
例如:“1” 和 1.00,通过此方法转化后都为1.
方法规则
A、Boolean类型:ture=1,false=0;
对于布尔类型,输出的值则为判断真与假,1为真,0为假;
B、null:有对象,但对象是空;
null类型中,对象为空,所以返回0;
C、Undefined:无对象,返回NaN
Undefined类型只是单纯的变量,所以转化后表示一种情况,即NaN;
D、字符类型:
转化时则分为四种情况:
1、字符串中只包含数字,转换为十进制的整数数值;
2、字符串中只包含有效浮点数,则转化为浮点数值;
3、字符串为空,转化为0(如null,对象中没有任何东西);
4、字符串为其他格式,转换为NaN;
5、String类型
简介:String类型有零个或者多个16位Unicode字符组成的字符序列。即字符串。
字符串可以用单引号(‘’)或者双引号号(“”)表示,但两者没有任何区别。
字符字面量
/n (换行)
/t (制表)
/b (退格)
/r (回车)
/f (进纸)
/ (转义)斜杠
/’或/” (转义)单双引号
String类型延伸方法:
toString()方法
(用于返回相应值的字符串表示)
格式:变量.toString()
如果变量为:null(则表示有对象,但对象为空,最终无法返回);
undefined(则表示无对象,最终无法返回)
注:同时undefined这个值没有这个方法(Java中有)
如果我们在调用数值的字符串转换方法时输入参数,那么参数则代表返回的进制形式。
例:
var a = 10;
console.log(a.toString());
console.log(a.toString(2));(2表示2进制)
console.log(a.toString(8));(8表示8进制)
console.log(a.toString(16));(16表示16进制)
String()方法
功能:用于将任意类型的值中转换为字符串
格式:String(变量)
注:如果该参数自己有toString()方法,那么就调用自身的toString()方法,再返回即可。
如果该参数没有自己的toString()方法,如:null、nudefined,String()方法就返回他们的字面量。
例如:
var str = “10”;
console.log(str.toString());
(其中“str”有自己的toString()方法,所以进入String()方法后没有调用,而是调用自身的toString()方法)
var str2;
console.long(String(str2));
(“str2”中没有自己的toString()方法,所以只能调用String()方法)
扩展
数据存储:
由于内存的限制,ECMAScript不能存储所有的数据,最小值保存在Number_MIN_VALUE中;最大值保存在Number_MAX_VALUE中;
如果某次计算的结果得到了一个超出数值范围的值,那么这个值将会被转化成特殊的“infinite”值,正的话是正无穷,负的话为负无穷“-infinite”,如果值转化成了无穷,则不会继续再参与计算
isFinite()函数
想要确定一个数值是不是有穷的(换句话说是不是位于最小值和最大值之间),可以使用该函数,返回为true和false