一、数据类型:
(一)数据类型分类(注意:function不属于类型)
基本类型
1、number 数字 (eg. 1、2、3…)
2、string 字符串 (eg. '1' 、‘s’ …)
3、boolean 布尔值 (eg. true 、false)
4、undefined 未定义
5、null 空对象(不能存东西)
复合类型 (可以存储多种东西)
object 对象 (eg. document 、window 、[]数组 …、null)
(二)数据类型的查看
typeof() 的使用(number、string、boolean、undefined、function、object)
eg. var a = 1;
alert(typeof a); ==>弹出框显示为:number
(三)数据类型的转换
显示类(强制数据类型转换)
1、parseInt()--转化为整数
从第0位开始,一位一位的查看是否是数字,若是查到某一位不是数字时,就把这位之前的数字提取出来,反之若第0位就是数字,则返回为NaN。
eg. var a ={ eg. var a = {
true ; ==> NaN "12.324" ; ==> 12
"s123" ; ==> NaN "1s2a33" ; ==> 1
".124" ; ==> NaN [12,232,44] ; ==>12
" " ; ==> NaN }
}
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法。
eg、var num1 = parseInt("AF",16);//175
var num2 = parseInt("AF");//NaN
var num3 = parseInt("10",2);//2 (按照二进制解析)
var num4 = parseInt("sdasdad");//NaN
2、parseFloat --转化为小数(浮点型)
从第0位开始,一位一位的查看是否是数字,若是查到某一位不是数字时,就把这位之前的数字提取出来,且多解析出1个小数点;反之若第0位就是数字,则返回为NaN。
eg. var a = "12.723.334" ==>12.723
一:Number()
如果是Boolean值,true和false值将分别被转换为1和0。
如果是数字值,只是简单的传入和返回。
如果是null值,返回0。
如果是undefined,返回NaN。
如果是字符串:
a. 如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0
b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0
c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值
d. 如果字符串为空,将其转换为0
e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN
如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换返回的字符串值。
二:string()
将所有的数据都转化为字符串,及在原来的基础上加上引号“”,变为字符串。
三:boolean()
将所有的数据都转化为布尔值:
(1)转为true (非0的数字、非空的字符串、函数、非空对象、数组)
(2)转为false ( 0、空的字符串、NaN 、undefined 、Null )
注意:[ ] ==>只要字符串中有空格或者有内容,即为非空的字符串。
空对象是不能进行属性操作的。
空数组 != 空对象null
隐式类型转换
1、“+” 、“++” 、“+=”
(1)碰到字符串就执行字符串拼接;
(2)如果可以转换成数字,就进行数字相加(number的操作);
(3)如果不能把左右两边都转化成数字,就执行字符串的拼接。
2、“-” 、“*” 、“/” 、“%” 、“--”
会直接把左右两边都转化成数字进行计算,如果不能转成数字,即为NaN。
3、“==” 、“!=”
先判断所有的数据是否类型一样,如果类型不一样会进行类型转换,然后进行比较,若转换后的结果一样,及为true,若结果不一样,及为false。
4、“===” 、“!==”
直接对左右两边的数据进行判断,若数据类型不一样,即为false(给什么比较什么,不会转换类型)。
5、!取反
类似于反义词的作用
网友评论