优雅的JavaScript-数据类型

来源:互联网 发布:淘宝logo的意义 编辑:程序博客网 时间:2024/05/23 00:53

变量的数据类型

原始数据类型      引用数据类型Undefined        对象Null             数组Boolean          函数NumberString

原始数据类型---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,否则返回falsealert(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.其他对象都是true2.转换成数值类型<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><script type="text/javascript">/*undefined---->NaNnull---->0boolean--->number 类型      true----》1      false----》0String---->number类型    ""---->0    "234"----->234    "a123"----->NaN    "0x90"---->转换成十六进制对应的十进制  */alert("0x90t"-6);</script></body></html>结论:      undefined---->NaNnull---->0boolean--->number 类型      true----》1      false----》0String---->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”          


原创粉丝点击