js数据类型和数据类型转换
数据类型详解:
1.未定义:undefined,通常指出错了。出现的情况:
(1)当变量定义但是没有赋值时,该变量的值会被格式化为undefined;
(2)对一个没有声明的变量调用typeof时,返回值也是undefined;
(3)当函数没有明确返回值时,返回值也是undefined;
2.空对象:null,不存在的object,通常是人为设置的空
(1)虽然null判断类型为对象,但是不能添加自定义属性
(2)表示尚未存在的对象,如果函数要返回对象,找不到该对象时,返回值为null
3.字符串类型:string 由零或多个16位unicode字符组成的字符序列
(1)string是唯一没有固定大小的原始类型,字符串的字面声明时可以用双引号或者单引号组成
(2)length属性:输出字符串的长度,空格也算长度
(3)charAt()方法:输出()里下标的处的字符
4.布尔值:boolean,只有true和false两个值,if和for中会被自动转换为布尔值
5.数字类型:number 不区分整型和浮点数,可以是32位整型也可以是64位浮点数
6.对象类型:object
(1)对象object是js中基本数据类型之一,是一种复合值。
(2)对象也可以看作是属性的无序集合
(3)object可以像我们页面元素一样添加自定义属性
(4)我们之前获取元素,通过点操作和中括号操作同样适用于所有对象
(5)当一个函数被一个对象拥有时,那么该函数被称为方法,同时该函数被调用时内部的this指向该对象
数据类型转换:
1.转换字符串类型:
(1)三种值类型都具有toString方法,可以将自身转换为字符串
(2)String()强制类型转换与toString方法唯一不同在于,对null或undefined值强制类型转换为字符串而不引发错误。
(3)强制类型转换(显性转换)对应的隐形转换 “+”,+是字符串连接符,如果要做数字加法运算,保证加号两边均为数字
2.转换数字类型:
(1)Number()方法:(使用较少)
a.数据类型–字符串:空和空格会被转换为0;数字字符串会被转换对应的数字;非数字字符串转换成NaN;
b.数据类型–布尔值:true和false会变成1和0;
c.数据类型–空对像:null会变成0;
d.数据类型–对象:NaN;
e.数据类型–undefined(未定义):NaN;
f.数据类型–数组:数组:如果为空转换成0;只有一个数据(字符串,null,undefined)时字符串会根据之前的规则转换,空,undefined,null会转换成0;有多个数据时转换成NaN;
(2)(一般使用以下方法)parseInt():将字符串转为整数,转换规则为:
a.会从左到右依次判断每个字符,碰到非数字字符时将前边的数字输出。
b.如果数据不是字符串会返回NaN;
c.只会保留整数,小数点和后边的部分会被舍去
d.parseInt(b,10)后边的10表示十进制
(3)parseFloat():会保留第一个小数点后面的数字
数字类型的隐形转换:+、-、*、/、%、++、–也会让数字字符串和数字字符串和数字的运行结果变成数字类型,NaN与本身不相等,NaN转换布尔值为false;isNaN()用来判断number类型是不是一个非数字。
trim()的作用是去掉字符串两端的多余的空格
练习1:做一个input输入框和按钮,判断输入值是不是都是由数字字符组成的字符串
练习2:在上题的基础上,当判断的结果是数字时,再弹出是不是整数