五、数据类型
1、我们学习js的数据类型不是为了定义变量,因为在js中变量的声明不需要指定数据类型,但是我们起码要知道我们给变量赋值的时候,那个具体的值的数据类型。
2、js中的数据类型包括以下几种:
Undefined :包括具体值:undefined
String :包括具体值:‘a‘,"a","abc".......
Number :包括具体值:1,2,3...,1.0,2.0....,3.14......,NaN,Infinity......
Boolean :包括具体值:true,false
Object :包括具体值:new object(),new Date(),new Employee,,null.....
Undefined
Undefined数据类型只有一个值,这个值就是undefined。
什么时候变量的值是undefined呢?只声明没有给变量赋值或者手动赋值undefined,变量的值都是undefined。
注意:变量没有声明,直接访问那就报错了。
例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var ename;
alert(ename);
var dname = undefined;
alert(dname);
</script>
</body>
</html>
String:
在js中字符串可以使用单引号,也可以使用双引号。
在js中没有字符类型,只有字符串类型。
例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var ename = ‘wanghai‘;
alert(ename);
var ename = "xiaoming";
alert(ename);
</script>
</body>
</html>
小插曲:在js中有一个运算符非常重要,typeof运算符,typeof运算符在程序运行阶段动态判断变量的数据类型。
typeof运算符的使用规则:typeof 变量名
typeof运算符运算结果是以下6种结果之一:typeof运算结果是字符串类型。
"undefined" , "number" , "string" , "object" , "boolean" , "function"
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
function sum(a,b){
if((typeof a) != "number" || (typeof b) != "number"){
alert("对不起,不是数字");
return;
}
return a + b;
}
var e = sum();
var e = sum("ddd","222");
var e = sum(10,20);
alert(e);
</script>
</body>
</html>
字符串这种数据类型的数据又可以成为“字符串对象”,虽然被叫做字符串对象,但是字符串对象不属于object类型;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var yname = "wanghai";
alert(yname.length);
</script>
</body>
</html>
Number
在js中不管是整数还是浮点,都是Number数据类型。
什么时候执行结果是NaN?
计算结果应该返回数字,但是最终结果不是数字的时候,结果就是NaN。
NaN表示Not a Number,不是一个数字,但NaN本身就是一种Number数据类型。
重要的函数:isNaN(数据)
isNaN函数的执行结果是true/false
该函数的作用是用来判断数据是否是一个数字,不是数字是true,是数字是flash。
isNaN(d/e);//true
isNaN(10/2);//false
什么时候执行结果是Infinity?
Infinity表示无穷大,除数是0的时候,结果一定是Infinity。
var revalue = 10/0;
alert(revalue);
parseInt函数
parseInt(数据)
将字符串price转换成Number类型的数字
var price = "100";
var price = parseInt(price);
alert(price + 1);//结果101;
parseFloat函数
parseFloat函数将非数字转换成数字,保留小数。
parseFloat(数据);
var price = "5.36";
parseFloat(price);
alert(price);