Js中的数据类型
Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object
一、number
Number数据类型指的是数字,可以为整型,也可以是浮点数。如:
var a=12,b=12.5;
二、string
字符串由零个或多个字符构成,字符包括字母,数字,标点符号和空格;需要注意的是字符串必须放在引号里(单引号或双引号),如:
var a="Hello world";
三、boolean
布尔型数据只能有两种值 true 和 false,在js中true和false是关键字。通常,我们设置布尔值时多用于条件的判断。如:
var flag=true;
在条件判断语句中我们将所有的判断条件看做一个布尔值(这里需要了解一些布尔值的转换特性)
四、underfine
underfine通常指的是没有赋值的变量,通过typeof可以对数据的类型进行判断。如:
var a;
var b=underfine;
console.log(a,b);
两次结果都为underfine
五、null
null是一个只有一个值的特殊类型。表示一个空对象引用。如:
var a=null;
将a清空。
六,object
对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体。常见的对象有array,window,document等。如:
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDay();
通过创建对象实例就可以调用对象的方法了,如上就是创建了一个Date的对象实例today,today通过调用Date的方法得出了现在的年月日等信息。
数据类型的查看与转换
在js中我们经常需要知道某些变量的数据类型,并将其转换为我们所需要的数据类型。通常,我们判断变量的数据类型会用到标识符typeof,如:
var a="Hello world";
console.log(a);
控制台输出string
通过标识符,我们可以很快获取数据的类型
数据的转换中,我们经常用到的是将变量转换成字符串或数字
一、转为字符串类型
.toString()和String()方法
var bool=true;
console.log(String(null));
console.log(bool.toString());
控制台输出字符串null和字符串true
*隐式转换:num + “”,当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串,如:
var a="Hello world";
var b=5;
console.log(a+b);
控制台输出字符串Hello world5
二、转为数值类型
1、Number():Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN,如:
var a="5";
console.log(Number(a))
console.log(Number(true));
控制台输出数字5和NaN
2、parseInt():可解析一个字符串,并返回一个整数。
var a="12.3px";
console.log(parseInt(a);
//结果:12 如果第一个字符是数字会解析知道遇到非数字结束.
var a="abc2.3";
console.log(parseInt(a);
结果:返回NaN,如果第一个字符不是数字或者符号就返回NaN.
3、parseFloat(): 解析一个字符串,并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
var a="12.3px";
console.log(parseFloat(a);
//结果:12.3 如果第一个字符是数字会解析知道遇到非数字结束.
var a="abc2.3";
console.log(parseFloat(a);
结果:返回NaN,如果第一个字符不是数字或者符号就返回NaN.
三、转换为布尔值
Boolean():0 “” null undefined NaN 会转换成false 其它都会转换成true
console.log(Boolean(2));//结果:返回true
console.log(Boolean(null));//结果:返回false
console.log(Boolean(0));//结果:返回false
console.log(Boolean(undenfined));//结果:返回false
以上仅为个人观点,若有错误,可私信本人指出,不喜勿喷,谢谢!