ECMAScript中将数据类型分为三类:基本数据类型,特殊数据类型和复合(引用)数据类型
一、基本数据类型
String:字符串数据类型,放在单引号或者双引号中
Number:数字类型,包括int和float两种
Boolean: 布尔类型,只有true和false两种值
二、特殊数据类型
undefined:变量声明后但未赋值,其值便为undefined,如:var a;还有一种情况:var a = undefined;
null:表示为空。即对象不存在或给变量赋值为null。(对象不存在就是整个页面中没有这个DOM)
三、复合(应用)数据类型
object:对象,即把一些彼此相关的属性和方法集合在一起构成的一个数据实体。如:
var obj = {
a : 1,
b : 2,
c : 3,
};
array:数组,即一些数据的集合。如
var arr = [1,2,3];
typeof 和 NaN:
typeof:获取变量的数据类型
如:typeof('123'); ===>> String
typeof(123); ===>> Number
NaN:表示不是数字值的特殊值,可以理解为Number的一种特殊类型,只有当在js运算中发生数据类型转换时提示,isNaN()方法是特有的对数据进行判断的 ,如果是数字返回false,不是数字返回true。
isNaN用法:isNaN(123) ===>> 返回false,因为它是数字类型
isNaN('123') ===>> 返回true,因为它不是数字,而是字符串
数据类型的转换
在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(一般是利用运算符完成的)。
强制转换:
toString():转换为字符串类型,但null和undefined除外
String():可以将所有变量转为字符串类型,包括null和undefined
//toString()使用:
var age = 20;
var ageString = age.toString(); //"20"
var result = true;
var resultString = result.toString(); //"true"
var num = 10;
var numString1 = num.toString(); //"10"
var numString2 = num.toString(10); //"10"
var numString3 = num.toString(8); //"12"
var numString4 = num.toString(16); //"a"
var numString5 = num.toString(2); //"1010"
//String()使用和toString()基本一致,但在转换null和undefined是有所不同
//null.toString(); //报:TypeError: null has no properties
//undefined.toString(); //报:TypeError: undefined has no properties
//String()可以转换null和undefined这两种情况
var numString6 = String(null); //"null"
var numString7 = String(undefined); //"undefined"
parseInt() :转换为整数
var a="123.989sdfsdfkjksdf";
console.log(typeof a); //String
var b= parseInt(a);
console.log(b); //123
console.log(typeof b); //Number
parseFloat() :转换为浮点型
var c=parseFloat(a);
console.log(c); //123.989
console.log(typeof c); //number
Number():转换为数字
var d=Number(a);
console.log(d); //保留值 NaN (不是数字)
console.log(typeof d);//Number
Boolean():转换为boolean型
var x=-100;
var y=Boolean(x);
console.log(y);//true
console.log(typeof y);//boolean
注:能转换成false值的:false, 0, "", NaN, null, undefined
隐式类型:利用运算符自动完成的转换
var q=100;
var r="200";
console.log(q+r); //把数字q自动转换成了字符串 ==>>100200
console.log(q/r); //把字符串r自动转换成了数字 ==>>0.5
文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出