javascript基本数据类型

 ECAMScript中有5种简单的数据类型(也称为基本数据类型):Undefined,Null,Boolean,Number,String和1种复杂数据类型Object。

数据类型虽然简单,但是会经常会发生一些意想不到的结果。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>数据类型</title>
    <script type="text/javascript">
    
    //Undefined类型
    function basicUndefined(){
       var message;//未初始化,默认值是undefined
       alert(message == undefined);//返回false
       alert(typeof message);//undefined
       message=123;
       alert(typeof message);//number typeof用来检测给定变量的数据类型
    }
    
    //Null类型
    function basicNull(){
      var car=null;//null值表示一个空对象指针,所有用typeof检测null时会返回object的原因
      alert(car);//null
      alert(car != null)//判断,false
      alert(typeof car);//object
      alert(null == undefined);//true ECMA-262规定他们的相等性测试
    }
    
    //Boolean类型
     //Object 任何对象返回true,null返回false
     //undefined 返回false
    function basicBoolean(){
       var message=""
       if(Boolean(message))//对于String类型,任何非空字符串会返回true, null,""等会返回false
       {
         alert(message);
         alert(Boolean(message));
       }
       
       var number=145;
       if(Boolean(number)){ //对应Number类型,任何非零字符串(包括无穷大)返回true,0和NaN返回false
            alert(Boolean(number));
            alert(number);
       }
    }
    
    //Number类型
    function basicNumber(){
       var a=0.1;
       var b=0.2;
       if(a+b==0.3){
         alert(" you get 0.3");
       }else{
          alert("you get "+(a+b));
       }
       alert(Number.MAX_VALUE);//js保存的最大数值
       alert(Number.MIN_VALUE);//js保存的最小数值
       alert(isFinite(Number.MAX_VALUE+Number.MIN_VALUE));//isFinite()函数用来判断是不是位于最大值和最小值之间
       
       //数值转换 Number(),parseInt(),parseFloat()
       //parseInt()函数转换时,它会从第一个非空格朝气,如果第一个字符串不是数字字符或者负号,则返回NaN
       //isNaN 不是数值
       
       //parseFloat()与parseInt()的区别是它始终会忽略前导0
//       alert(parseFloat("0985.3"));//985.3
//       alert("12345sdf562="+parseInt("12345sdf562"));//1234
//       alert("s12345sdf562="+parseInt("s12345sdf562"));//NaN
//       alert("s12345sdf562="+Number("s12345sdf562"));//NaN
//       alert("sd22.35.3="+parseFloat("sd22.35.3"));//NaN
//       alert("22.35.3sd="+parseFloat("22.35.3"));//22.35
//       alert(Number(""));// 0
//       alert(Number(true));//1
//       alert(parseInt(""));//NaN
//       alert("070nihao="+parseInt("070nihao"));//56
//       alert("070="+parseInt("070"));//56
    }
    
    //String类型
    //字符串特点:ECMAScript中的字符串是不可变的,要改变某个变了保存的字符串,首先要销毁原来的字符串,然后再用另一个新值填充该变量。
    function basicString(){
      //转换字符串用toString()方法
      var num=10;
      alert(num.toString());//"10"
      alert(num.toString(2));//表示以二进制格式返回数值的字符串,还可以是八进制,十六进制等  "1010"
      //alert(null.toString());//null和undefined没有toString()方法
      alert(String(null));   //null String()可以将任何类型的值转换为字符串  
    }
     
     //Object类型  可以用valueOf()或toString()方法获取对象方法的值
    function basicObject(){
      var o={
         valueOf:function(){return -1;}
      };
      alert(o+5);
    }

  //创建object实例的两种方式,第一种通过new操作符后跟Object构造函数如:var person=new Object();person.name="hello";
      //第二种方式是使用对象字面量表示如:var person={ name:"hello",age:22};
       function displayInfo(args){
          var output="";
          if(typeof args.name=="string"){
             output+="Name: "+args.name+"\n";
          }
          if(typeof args.age=="number"){
             output+="Age: "+args.age+"\n";
          }
          alert(output);
       }

 </script>
</head>
<body>
  <input  type="button" value="Undefined" οnclick="basicUndefined()"/>
  <input type="button" value="Null" οnclick="basicNull();" />
  <input type="button" value="Boolean" οnclick="basicBoolean();" />
  <input type="button" value="Number" οnclick="basicNumber();" />
  <input type="button" value="String" οnclick="basicString();" />
  <input type="button" value="Object" οnclick="basicObject();" />
  <input type="button" value="调用一" οnclick="displayInfo({name:'alice'})" />
  <input type="button" value="调用二" οnclick="displayInfo({name:'alice',age:29})" />
 </body>
</html>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值