夯实js基础 -- 数据类型

不积小流无以成江海 ,夯实基础很重要,此次从js的数据类型开始,我相信会带来帮助。


一,js的数据类型

        简单数据类型:Number,String,Boolean,Null,Undefined

        复杂数据类型:Array,Object

        es6新增:Symbol


二,判断数据类型

        注意 : typeof()返回的都是字符串形式

        alert(typeof b == "string")     //true

        string:字符串类型

        number:数字类型,包括整形,浮点型,NaN

        function:function

        object:数组,对象,null

        boolean:true,false

        undefined:undefined

        
    <script>
        var a = "";                     //string
        var b = "hello world";          //string
        var c = 123;                    //number
        var d = 12.33;                  //number
        var d1 = NaN;                   //number
        var e = function(){alert(1)};   //function
        var f = [1,2,3];                //object
        var g = {"name":"yuezihe"};     //object
        var g1 = new Date();            //object
        var h = null;                   //object
        var i = false;                  //boolean
        var j = undefined;              //undefined
        var k = Symbol();               //symbol
        
        console.log(typeof a);
        console.log(typeof(b));
        console.log(typeof(c));
        console.log(typeof(d));
        console.log(typeof(d1));
        console.log(typeof(e));
        console.log(typeof(f));
        console.log(typeof(g));
        console.log(typeof(g1));
        console.log(typeof(h));
        console.log(typeof(i));
        console.log(typeof(j));
        console.log(typeof(k));
    </script>

三,数据类型转换

        a).显式转换

          利用js提供的函数parseInt() , parseFloat() , Number() , Boolean() , String()进行数据转换

          1.parseInt()

1.1) 忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符
    串去掉。
1.2) 如果第一个字符不是数字符号或者符号,返回NaN
1.3) 会将小数取整。(向下取整)
          
            parseFloat()与parseInt()一样,唯一区别是parseFloat()可以保留小数
     //parseInt()
        var a = "2312";
        var b = "12.365";
        var c = "yuci";
        console.log(parseInt(a));           //2312
        console.log(parseInt(b));           //12
        console.log(parseInt(c));           //NaN
        console.log(parseInt("10"));		//返回 10
        console.log(parseInt("19",10));		//返回 19 (10+9)
        console.log(parseInt("11",2));		//返回 3 (2+1)
        console.log(parseInt("17",8));		//返回 15 (8+7)
        console.log(parseInt("1f",16));		//返回 31 (16+15)
        console.log(parseInt("010"));		//未定:返回 10

        console.log(parseInt("+123"));      //123
        console.log(parseInt([1,2,4]));     //1
        console.log(parseInt(""));          //NaN
             2.Number()
                    

                    2.1) 如果转换的内容本身就是一个数值类型的字符串,那么将来在转换的时候会返回自己。

                    2.2) 如果要转换的内容是空的字符串,那以转换的结果是0.

                    2.3) 如果是其它的字符,那么将来在转换的时候结果是NaN.

        console.log(Number("123"));         //123
        console.log(Number("hello world")); //NaN
        console.log(Number(""));            //0   
        console.log(Number([]));            //0
        console.log(Number([1]));           //1
        console.log(Number([1,2]));         //NaN
        console.log(Number(null));          //0
        console.log(Number(new Object()));  //NaN

            3.Boolean()

   除了 "",0,false,null,undefined,NaN返回 false,其他全部返回 true(包括空对象,空数组)
    //Boolean()
        var d = 123;            //true
        var e = false;          //false
        var f = "";             //false
        var g = 0;              //false
        var h = null;           //false
        var i = undefined;      //false
        var j = NaN;            //false
        var k ={};              //true
        var l = [];             //true
        console.log(Boolean(d));           
        console.log(Boolean(e));           
        console.log(Boolean(f));           
        console.log(Boolean(g));           
        console.log(Boolean(h));           
        console.log(Boolean(i));           
        console.log(Boolean(j));    
        console.log(Boolean(k));   
        console.log(Boolean(l));
数据类型
转换为true的值
转换为false的值
Boolean
true
false
String 
任何非空字符串
""空字符串
Number
任何非零数字值
0和NaN
Object
任何对象
null
Undefined
/
undefined

            4.String()

toString()的方法来进行转换(包装类)toString()的参数是转换的进制格式(几进制)

                  undefined,null不能用toString()

        //String()
        var number = 10;
        console.log(number.toString());     //"10"
        console.log(number.toString(2));    //"1010"
        console.log(number.toString(8));    //"12"
        console.log(number.toString(10));   //"10"
        console.log(number.toString(16));   //"A"
        console.log(String(null));          //"null"
        var str = null;
        console.log(str.toString());        //Cannot read property 'toString' of null
        var number1;
        console.log(String(number1));       //undefined
        console.log(undefined.toString());  //Cannot read property 'toString' of undefined
         b).隐式转换
            
+ - * / %进行隐式转换,还有比较运算符(> < ==)
js中的隐式转换是字符串和数字之间的转换    
+ 会把数字转换成字符串
* / % > < == 把字符串转化成数字
var num = "123";
        var num2 = 126;
        console.log(+num);      //123
        console.log(num+num2);  //"123126"
        console.log(num2-num);  //123-123=3
        console.log(num2*num);  //15498
        console.log(num2/num);  //1.024390243902439
        console.log(num2%num);  //3
        console.log(num2>num);  //true
        var number = 1;
        console.log(!!number);  //true


ps:不积跬步无以至千里,打捞基础会让我们学习深入知识点更加轻松


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值