优雅的JavaScript-数据类型

变量的数据类型


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值