JavaScript作为一种弱类型语言,变量在定义的时候是没有类型的,但这不代表js没有数据类型,下面我就介绍以下js的数据类型。
一、js的数据类型可以分为两大类:基本数据类型和复杂数据类型(引用类型):
1.基本数据类型:
数值型(number) eg.1,2,3…NaN(特殊值,not a number缩写)
字符串(string) 单引号或双引号括起来的都是字符串
布尔型(boolean) 只有两个值,true和false
null 声明变量后,不确定之后赋值那个对象,可以给个null值;找不到对象时也是null
undefined 未定义,声明未赋值的变量就是undefined
2.复杂数据类型(引用类型):
对象型(object) 具有属性和方法的数据集合,都可以称之为对象
数组型 一组相关数据集合
函数型 function 函数名(){}
时间对象(Date)
正则(RegExp)
…
检查数据类型可以用 typeof
eg: var n = 10;
console.log(typeof(n));//n显示为number(数值型)
二、数据转换:
1.转为数值型:
①.parseInt();转为整数数值(若是小数会向下取整)
②.parseFloat();转为浮点数值型(允许小数)
③.Number();强制转换,转数值型
④.隐式转换(-,*,/,%);在运算中自动转换,只会转换纯数字
ps.①和②转换中若遇见非数字就会停止。如:123a => 123
a123 => NaN
2.转为字符串:
①.to.String(); 用法:变量 . toString();
②.String();强制转换 String(变量);
③.隐式转换:加号拼接字符串,也称隐式转换
3.转为布尔型:
Bollean()函数;
代表空,否定的值会被转为false,如“0,NaN,null,undefined”,其余都转为true
三、isNaN判断是否为非数值
返回一个布尔型的值,是数值返回false,不是返回true。isNaN()方法括号内的内容如果是字符串或者布尔型,会使用Number()方法转换数字类型,如果转换后是NaN返回true,反之返回false;
isNaN(true/false);//false 是数值,0/1;
isNaN(new Date());//false
isNaN(’’);//false 空字符串被转为数字0,不是NaN
isNaN(’ ');//false 一个空格的字符被转为数字0,不是NaN
十六进制的数会以0x开头,如:0xabc 是一个数