原始数据类型 引用数据类型 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”