数据类型
一、常见数据类型
字符(string):引号("") //"hello" 只要是被引号括起来的内容都是字符 数值(number):0123456789 //3.1425926 布尔(boolean):true,false //true,false (真,假) 未赋值(undefined):undefined //undefined 这是一种特殊类型,当变量被声明,但是没有被赋值的时候,那么该变量的类型的undefined 对象(object):一般是花括号{} //{}object 数组(array):一般是中括号[] //[] 数组是一种特殊的对象 函数(function):标志是: //function... 函数是一种特殊的对象
二、JavaScript的三大特殊值 NaN、undefined、null
NaN:不是一个数字的数值型数据 代表意外或非法转化的数字 NaN和任何数据都不相等,甚至不等于自己 //认识isNaN()函数,该函数判断括号内的值是否是NaN,是就返回true,不是就返回false console.log(isNaN(c)); null:空 类型是对象,表示空nall。但不是空对象 undefined:未定义 null和undefined隐式类型转换后可能相等(不严格比较) 因为都转为布尔值,两者在布尔值中都为false
三、如何检测数据类型:
使用关键字:typeof
//在打印内容前加上关键字typeof,打印出来的就是当前内容的数据类型 condole.log(typeof "123"); //string condole.log(typeof 123); //number
四、数据保存在哪?
保存在变量中:变量比作仓库。变量需要声明之后才能使用
五、数据类型转换
数据类型转换的分类:
1.隐式数据转换
情况(场景): 1.在算数运算中(通过算数运算符转换) 转换的规则: +号只要两边出现一个字符,另一个也会转换成字符 -*%/直接都作为数值运算(可将某srting类型数字*1转换为number类型数字) 2.if等判断语句中(if语句括号中的值)
2.显式转换
字符转数值
Tip:我们想做数学运算的时候,应该先对所有的数据类型进行统一(统一成数字格式),这个时候我们就该用到数据类型的转换。
(1) 普通字符转换
parseInt();括号里就是需要转换的数据(可用于小数取整) 数字可以转换,非数字停止。 从左向右转换,能转就转,不能转就停止,后面的不再转换。 若第一个就不能转,则显示NaN, 能用在转换整数,认为小数点是非数字。 例: parseInt("123abc");//123 a做为第一个不是数字的字符;返回a之前的所有值,则该方法返回123 parseInt("abc123");//NaN a做为第一个不是数字的字符,且处在字符串的第一位,则判定该字符串无法转换为数字返回NaN parseFloat(); 数字可以转换,非数字停止 从左向右转换,能转就转,不能转就停止,后面的不再转换。 若第一个就不能转,则显示NaN, 可以识别小数点 例: parseFloat(“123.456");返回123.456 parseFloat(“123.4a56");返回123.4 parseFloat(“123.00");返回123 parseFloat(“123.0a56");返回123
(2) 特殊字符转换
Math.round(); 严格转换,不允许出现任何非数字,若有非数字直接显示NaN。 可以识别小数点,但会四舍五入取整。小数点后的被四舍五入 实质是取最近的整数,能在正数有四舍五入的效果。 若为负数;例:Math.round(-3.6);//-4(数字进一反而变小了) Number()//为强制数据类型转换 将string类型的数字转为number类型的数字 严格转换,不允许出现任何非数字,若有非数字直接显示NaN。 可以识别小数点 Number("hello world"); //NaN Number("123456"); //123456
数值转字符
toString(); 直接转换:相当于直接给数值添加个引号 例: var num = 123; num.toString();//"123" 转换成字符串 toFixed(); 保留N位小数的转换(转换后变成字符) 直接转换,可以保留N位小数 例: var a = 3.1415 a.toFixed(2);//"3.14" a转换为字符 ,保留两位小数,四舍五入 字符多位,小数可以补0 a.toFixed(6);//"3.141500"//字符型,后面可以补0 Tip:而数值多位,小数没办法补0,计算机认为是无意义的,会自动省略。