变量的数据类型
原始数据类型 引用数据类型
Undefined 对象
Null 数组
Boolean 函数
Number
String
原始数据类型---Undefined
1.Undefined 类型只有一个值,即特殊的Undefined;
在使用var 声明变量但未对其进行初始化,这个变量值为Undefinded
如:var message;
2.Undefinded指的是未定义的类型,如果alert(a)一个不存在的变量,会直接报错,而不是Undefined
可见Undefined和正真未声明还是有区别:
1.他是一种特殊类型
2。但是typeof未定义类型或者不存在不变量都返回Undefined
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//alert(a);//未定义就使用会报错
// var b;
//alert(b);
//
//alert(typeof b);
var c=5;
alert("c:"+c);
</script>
</body>
</html>
原始类型---null
它只有一个专用值null,即它的字面量,值undefined实际上是从null派生来的,因此在ECMAScript中将两者定义为相等
例如:
alert(null==undefined);//输出true
尽管两者的值相等但他们的含义不同
undefined是声明了变量但未对其初始化时赋予该变量的值
null用于表示尚未存在的对象,如果函数或者方法要返回对象,此时如果找不到部队向,通常直接返回null
注意:
如果单纯定义一个变量的初始化值为null,他返回的类型为object
原始数据类型---Boolean
只有两个值 true、false ,区分大小写和Java里一样
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//var flag=true;
//alert(typeof flag);
//alert(2==5);
alert(undefined==null);
</script>
</body>
</html>
原始数据类型---number
1.数值的分类:
1.整型:
八进制:
十六进制:
十进制:
2.浮点型
3.特殊值:
Infinity 无穷大
NaN(0/0) 不是数值类型
如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var num = 6.34;
/*//定义八进制,一般以0开头,组成部分0~7之间的数字
var num1=012;
//十六进制,一般以0X开头,组成部分0~9,A~F之间的数字和字符
var num2=0x78;
var num3=-3/0;
//infinity和-infinity,number数据类型的两个特殊值
var num4=-infinity;
var num5=0/0;//NaN
//NaN是number类型的一个特殊值,不等于任何类型,连自己都不相等*/
/* alert(NaN == NaN);
alert(typeof num);*/
var num6=28;//默认就是28
var num7=.9//默认为0.9
//通过isFinite()判断一个数是否有限值,有限就返回true,否则返回false
// alert(isFinite(-6/0));
//isNaN():判断是否是非数字有就返回true,否则返回false
alert(isNaN("ssfdg"));
</script>
</body>
</html>
浮点型:
1.浮点型定义:
浮点数字:该数字钟包含一个小数点,而且小数点后面必须至少有一位数字
2.浮点型数据的类型:
1.直接含有小数点 如:3.15
2.还可以使用指数计数法(实数后面跟一个e或者E,后面跟正负号,后面再加上一个整型的指数)1.243243E=-32
特殊值
1.Infinity:无穷大
1.Infinity:正无穷大
2.-Infinity:负无穷大
通过isFinite()判断是否有限大
2.NaN
1.代表非数字值的特殊值,该属性用于指示某个值不是数字
2.NaN有两个特点:
1.任何和NaN的操作都是会返回NaN
2.NaN与任何数值都不相等,包括自身
3.不能用number.Nan比较来检测一个值是否是数字,而是使用isNaN()来比较
4.isNaN()函数如果X是特殊的非数字值NaN
例如:
alert(isNaN(3));//false
alert(isNaN(“blue”));//true
alert(isNaN(true));//false
alert(isNaN(null));//false
alert(isNaN(undefined));//true
原始数据类型---String
1.由单引号或者双引号括起来的字符序列
如:“122”,
2.转义字符:
用一些普通的字符的组合来替代一些特殊字符,由于其组合改变了原来字符表示的含义,称之为转义
1.字符型常量:表示的值是字符类型变量所能包含的值,通常用AscII表达式来表示一个字符常量
或者可以用单引号或者双引号内加上反斜杠表示转义字符
转义字符:
\' 单引号
\" 双引号
\& 和号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
\f 换页符
类型的转换
1.隐式转换
2.显示转换
隐式转换
1.转换成布尔类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
/* //Undefined自动转换成false
var a;
if(a){
alert("true")
}else{
alert("false");
}
//null自动转换成false
if(null){
alert("转换成true");
}else{
alert("转换成false");
}*/
//nnmber --->boolean
//0,0.0,NaN-->false 其他数值转换成true
/*
* String---》Boolean
* ""转换false;
* 对象转换成true
*
* */
var num=new Object();
var date=new Date();
if(date){
alert("转换成true ");
}else{
alert("转换成false");
}
</script>
</body>
</html>
结论:
1.Undefined--->false
2.null----》false
3.数值 0,0.0 ,NaN---->false 其他数值都是true
4.字符串 ""--->false "有内容"----》true
5.其他对象都是true
2.转换成数值类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
/*
undefined---->NaN
null---->0
boolean--->number 类型
true----》1
false----》0
String---->number类型
""---->0
"234"----->234
"a123"----->NaN
"0x90"---->转换成十六进制对应的十进制
*/
alert("0x90t"-6);
</script>
</body>
</html>
结论:
undefined---->NaN
null---->0
boolean--->number 类型
true----》1
false----》0
String---->number类型
""---->0
"234"----->234
"a123"----->NaN
"0x90"---->转换成十六进制对应的十进制
3.转换成字符串类型
结论:
number----->String
23---->"23"
NaN--->"NaN"
infinity----->"infinity"
boolean----->string
false--->"false"
true---->"true"
undefined---String
undefined---->"undefined"
显示转换
1.Boolean类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//Boolean();小括号里面写的是参数,把要转换的值放进小括号里,就得到一个Boolean类型的值
/*undefined转换成false
null转换成false
number---->boolean
0,0.0 ,NaN---->false
其他数值为true
String----》Boolean*/
var flag=Boolean(new Date());
alert(flag+" "+typeof (flag))
//flag----》true
</script>
</body>
</html>
结论:
类型转换规则Boolean();
0,-0----》false 1,2,3---->true NaN--->false
空字符串------>false 其他为true
undefined------>false
null----->false
显示转换---数值类型转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var str="23.34dhfdshfkjhkds";
var str1="23.44vfdsgf";
alert(parseInt(str));
var num=parseFloat(str1);
alert(num);
</script>
</body>
</html>
结论:
Numbetr()可以将其他类型转换成数值类型
undefined--->NaN
null---->0
true---->1
false---->0
字符串--->如果可以解析为数值,则转换成数值,否则为NaN,0
空字符串----》0
parseInt()和ParseFloat()使用----->只能将字符串转类型换成数值类型
1.字符串全部为数字,“234“------》234
2.字符串中包含数字和非数字(从左往右截取,直到遇到第一个非数字为止)
“a234”---->NaN
"234hfshdkjf"----->234
""----->NaN
显示转换----字符串类型
结论:
1.String()函数可以将其他的类型强制转换成字符串类型
数值-----》数值本身
字符串-----》字符串本身
true---》“true”
false----》“false”
null--->“null”