码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript数据类型和类型转换

时间:2015-06-11 00:05:59      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

Javascript数据类型

Boolean(布尔)、Number(数字)、String(字符串)、Undefined(未定义)、Null(空对象)、Object(对象类型)、Function

引用类型:对象、数组、函数。

原始数据类型:数值、布尔值 、null 、字符串

原始类型的变量不能动态添加成员:

<script type="text/javascript">
        var n=‘我好帅‘;
        n.Age=100;
        alert(n.Age);//结果是undefined
    </script>

引用类型的对象可以动态添加成员:

<script type="text/javascript">
        var n=new String(‘sean‘);
        n.Age=100;
        alert(n.Age);//结果是100
    </script>

变量是不是对象就看后面有没有new(这么说不太严谨)。

一个变量声明了,没有初值那么结果就是undefined.属于未知状态

一个变量赋值为null。表示的是尚未存在的对象。

typeof

typeof用来查看变量的类型

<script type="text/javascript">

        var n1=10;
        var n2=true;
        var n3=‘hello‘;
        var n4;
        var n5=null;
        var n6=new Object();

        alert(typeof n1);//这种写法可以,但很容易少输一个空格,造成错误
         alert(typeof(n2));//boolean
        alert(typeof(n3));//string
        alert(typeof(n4));//undefined
        alert(typeof(n5));//类型显示为Object,为什么,null表示的是空对象,对象都是Object类型
         alert(typeof(n6));//Object
        alert(String(n5));//用String把n5以字符串的形式显示出来。如果n5=null,那这个对象是不能调用任何方法的。
    </script>

instanceof

instanceof判断某个对象是不是引用类型

<script type="text/javascript">
        var time=new Date();
        alert(time instanceof Date);//true
        alert(time instanceof Object);//true,Date是Object对象
    </script>

小案例:

<script type="text/javascript">
        var s1=‘我不帅‘;
        var s2=new String(‘我真的不帅‘);

        alert(s1 instanceof String);//false,s1是原始类型,而instanceof前面应该是引用类型的变量
        alert(s2 instanceof String);//true,new出来的一个String对象,肯定是true

        alert(s1 instanceof Object);//false,instanceof前面应该是引用类型的变量
        alert(s2 instanceof Object);//true,无论是什么类型的对象,都属于Object类型


        alert(typeof s1);//string类型,为啥弹出来的是小写string,只是以一种字符的形式显示而已。
        alert(typeof s2);//Object类型,new的一个对象
    </script>

类型转换

parseInt(arg)将指定的字符串,转换成整数
parseFloat(arg)将指定的字符串,转换成浮点数
Number(arg)把给定的值(任意类型)转换成数字(可以是整数或浮点数);转换的是整个值,而不是部分值。如果该字符串不能完全转换为整型,则返回NaN。(Not a Number)
isNaN(arg),判断arg是否为一个非数字(NaN),NaN与NaN也不相等。
String(arg)把给定的值(任意类型)转换成字符串;
Boolean(arg)把给定的值(任意类型)转换成 Boolean 型;

<script type="text/javascript">
        
        var n1=‘10‘;
        alert(parseInt(n1)+10);//20

        var n2=‘10asd‘;//可识别为数字10
        alert(parseInt(n2)+10);//20

        var n3=‘adsas10jk‘;//不可识别
        alert(parseInt(n3)+10);//NaN

        var n4=‘321qqw‘;//同上,数字开头跟字母可识别为数字,字母开头不可识别其中的数字。
        alert(parseInt(n4,8));//进制转换,将八进制转换为十进制,将8换成16,即从十六进制转换为十进制

        var  x1=‘3.1415926kksd‘;//同上,数字开头跟字母可识别为数字,字母开头不可识别其中的数字。
        alert(parseFloat(x1)+1);//4.1415926,转换成浮点数

        var num1=‘99‘;
        alert(Number(num1)+1);//100
        var num2=‘99a‘;
        alert(Number(num2)+2);//NaN
        var num3=‘a99d‘;
        alert(Number(num3)+3);//NaN

        alert(Number(false));//0
        alert(Number(true));//1
        alert(Number(‘1.2.3‘));//NaN
        alert(Number(new Object()));//NaN
        alert(Number(new Date()));//1433944956084
        alert(Number(new Date().toLocaleTimeString()));//NaN
        //测试得知,Number()比较严格,不会识别99

         //NaN,由于转换可能出现NaN,所以在使用前做个判断是不是NaN
        var n8=‘12a‘;
        if(isNaN(Number(n8))){//isNaN用来确定不是数字
            alert(‘是的,确定不是数字‘);//结果,该alert触发
        }else{
            alert(‘是的,是数字‘);
        }

        //NaN与NaN也不相等
        var n9=‘12a‘;
        var m9=‘ads2‘;
        alert(Number(n9)==Number(m9));//false
        
        // String(arg),把给定的值(任意类型)转换成字符串

        var s1=100;
        alert(String(s1));//100
        var s2=null;
        alert(String(s2));//null
        var s3;
        alert(String(s3));//undefined
         
        //String()与调用对象的toString()方法等效。
        //特列:当对象为null或undefined时,调用toString()会报错,而String()可以转换成功。
        var s4=undefined;
        alert(s4.toString());//报错

        var s5=null;
        alert(s5.toString());//报错
         var b=‘ads‘;
        alert(Boolean(b));
        //Boolean(arg)把给定的值(任意类型)转换成 Boolean 型

    </script>

Javascript数据类型和类型转换

标签:

原文地址:http://www.cnblogs.com/sean100/p/4567447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!