JavaScript语法知识笔记(二)——typeof检测变量数据类型, 强制类型转换,其他进制的数字,运算符,一元运算符.

08.typeof检测变量数据类型

        typeof用来获取检测变量的数据类型

               语法 console.log(typeof +数据变量);

var num = 10;
        //typeof用来获取检测变量的数据类型
            //语法 console.log(typeof +数据变量);
        console.log(typeof num);//number

        var str 'pink';
        console.log(typeof str);//string

        var flag = true;
        console.log(typeof flag);//boolean

        var vari = undefined;
        console.log(typeof vari);//undefined
        var timer = null;
        console.log(typeof timer);//object
        //prompt 取过来的值是 字符型
        var age = prompt('请输入你的年龄');
        console.log(age);
        console.log(typeof age);
        


        //字面量判断类型
        console.log(18);
        console.log('18');
        console.log(true);
        console.log(undefined);
        console.log(null);

js中可以表示的数字的最大值

        Number.MAX_VALUE

            1.79769331348623157e+308

        如果使用NUmber表示的数字超过了最大追,则会返回一个

            Infinity  表示正无穷

            -Infinity  表示负无穷

            使用typeof检查Infinity也会返回Number

        Nan 是一个特殊的数字 表示Not A Number

            使用typeof

        Number.MIN_VALUE 大于零的最小值

            5e-324

 a = Number.MAX_VALUE*Number.MAX_VALUE;

        a = "abc" * "bcd";

        a = Nan;

        //console.log(typeof a);

        a = Number.MIN_VALUE;

        console.log(a); //5e-324

        var c = 12372484 + 45787876;

            在JS中整数的运算基本可以保证精确

            如果使用js进行浮点元素 可能得到一个不精确的结果

                所以千万不要使用JS进行对精确度要求比较高的运算      

var c = 0.1 + 0.2;

        console.log(c);

  09.强制类型转换

强制转换string

                -指将一个数据类型强制转换为其他的数据类型

                - 类型转换主要指将其他的数据类型转换为

                    String Number Boolean    

            将其他的数据类型转换为String

                方式一

                    -调用被转换数据类型的toString()方法(被转换类型.toString)

                    -该方法不会影响到原变量,他会将转换的结果返回

                    -但是注意,null和undefined这两个值没有tostring()方法

                        如果调用他们的方法,会报错

                方式二

                    - 调用String()函数并将转换的数据作为参数传递给函数(直接写String)

                    - 使用String()函数做强制类型转换时

                        对于Numberu和Boolean实际上就是调用toString()

                        但是对于null和unfinerd 就不会调用tostring()

                            它会将null 直接转换伟“null”  同理

        var a  = 123;

        //调用a的toString()方法+

        //调用xxx的yyy()方法,就是xxx.yyy()
        //var b = a.toString();
        a = a.toString();

        a = true;
        a=a.toString();

        console.log(typeof b );//number
        console.log(b);//123


        a = null;
        //a = a.toString();报错

        a = undefined;
        //a = a.toString();报错

        a = 123;//参数

        //调用String()函数,来将a转换为字符串
        a = String(a);

        console.log(typeof a);//number
        console.log(a);//123

案例(强制转换):

  //1.把数字型转换为字符串型 tostring()
        var num = 10;
        var str = num.toString();
        
        console.log(str);
        console.log(typeof str);

        //2.我们利用String(变量)
        console.log(String(num));

        //3.利用 + 拼接字符串的方法实现转换效果 隐式转换
        console.log(num + '');

        var age = prompt('请输入您的年龄');
        //1.parseInt(变量)  可以把字符型的转换为数字型 得到是整数
        console.log(paraseInt(age));   //3  取整
        console.log(paraseInt('3.14'));  // 3 取整
        console.log(parseFloat('120px')); //

    将其他的数据类型转换为number

                转换方式一

                    使用number()函数

                        -字符串--> 数字

                            1.如果是纯数字的字符串 则直接将其转换为数字

                            2.如果字符串内有非数字的内容,则转换为NaN

                            3.如果字符串中是一个空串或者是一个全是空格的字符串,则转换为0

                        -布尔-->数字

                            true  转成1

                            flase 转换0

                        -NUll --> 数字  0

                        -undefined --> 数字NaN

                转换方式二

                    -这种方式专门用来对付字符串

                    -parseInt()把一个字符串转换为一个整数

                    -parseFloat()把一个字符串转换为一个浮点数

  //调用Number()函数来将a 转换为Numberk类型
       a = Number(a);

       a = true;
       a = Number(a);

        a = null; 
        a = Number(a);

        a = undefined;
        a = Number(a);

        a = "123px456";
        //调用parseInt()函数将a 转换为Number
        /*
           parseInt()可以将一个字符串中的有效的整数内容去出来
            然后转化为Number

        
        */
        a = parseInt(a);

parseFloat()作用和parseInt()类似,

            不同的是它们可以获得有效的小数

a = "123.456px"
        a = parseFloat(a);

  如果对非string使用parseint()或parseintfloat()

                它会将其转换为string 然后在操作

a = 198.23;
        a = parseInt(a);


       console.log(typeof a );
       console.log(a);

10.其他进制的数字

var a = 123;

        /*

        在JS中,如果需要表示16进制的数字,则需要以0x开头
                如果需要表示八进制的数字,则需要以0开头
        
        
        */
        //十六进制
        a = 0x10;
        a = 0xff;
        a = 0xcafe;
        
        //八进制数字
        a = 070;

        //二进制数字
        //a = 0b10;

        
        a = "070";

        //可以在parseInt()中传递第二个参数,来指定数字的进制
        a = parseInt(a,8);

        console.log(typeof a);
        console.log(a);



11.运算符

  运算符也叫操作符

                通过运算符可以对一个或多个值进行运算

                比如typeof 就是运算符 可以来获得一个值的类型

                    它会将该值的类型以字符串的形式返回

                    number string boolean undfined object

            算数运算符

                当对非number类型的值进行运算时,会将这些值转换number然后在运算

                    任何值和NaN做运算都得是NaN

                + 加法运算 将结果返回

                    + 如果对两个字符串进行加法运算,则会做拼串

                        会将两个字符串拼接为一个字符串,然后返回

                    任何的值和字符串做加法运算,都会先转换为字符串,然后和字符串做拼串的操作

                    - 可以对两个值尽心减法运算

                *

                /

                %

                    %取余数

 var a = 123;

        var result = typeof a ;

        //console.log(typeof result);

        //result = a + 1 ;

        result = true + 1;

        result = true + false;

        result = 2 + null;

        result = 2 + NaN;

        result = "123" + "456";


        var str = "锄禾日当午,"+
                  "汗滴禾下土,"+
                  "谁之盘中餐,"+
                  "粒粒皆辛苦";

        result = 123 + "1";

        result = true + "hello";

 //任何值和字符串相加都会转换为字符串,并做拼串操作

            我们可以利用这一特点 来将一个任意的数据类型转换为string

                我们只需要为任意的数据类型+一个"",即可将其转换为   string

                这是一种隐士的类型转换,由浏览器自动完成 实际上它也是调用string()函数

var c = 123;

        //c = c + "我是来把c变成字符串的";

        c = c + "";

        //console.log(result);

        //console.log(typeof c);
        //console.log(c);
        //console.log("c = "+c);//输出c的值

        result = 1 + 2 + "3";//33

        result = "1" + 2 + 3;//123

        result = 100 - 5;

        result = 100 - true;

        result = 100 - "1";

        result = 2 * 2;

        result = 2 * "8";

        result = 2 * undefined;

        result = 2 * null;

        result = 1 / 2;

  //任何值做- * / 运算时都会自动转换为number

            我们可以通过为一个值-0*1/1来将其转换

                我们可以利用这一特点做隐式的类型转换

                    可以通过一个值-0*1/1来将其转换为number

                    原理和number()函数一样,使用起来更加简单

     

 var d = "123";

        d = Number(d);


        d = d - 0;

        // console.log(typeof d);
        // console.log(d);

        result = 9 % 3;
        
        result = 9 % 4;


        
        console.log("result ="+result);

 

一元运算符,只需要一个操作数

                + 正号

                        -正号不会对数字产生影响                      

                - 负号

                        -负号可以对数字进行负号取反  

                对于非nymber 的值

                    先转换为number,然后在运算

                    可以对一个其他的数据类型使用+,来将其转换为number

                    它的原理和number()函数一样

var a = 123;

        a = -a ;

        a = true;

        a = -a ;

        a = true;

        a = "18";

        a = +a;

        // console.log("a = " +a);
        // console.log(typeof a );

        var result = 1 + +"2" + 3;

        console.log("result = " +result);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杪商柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值