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


    08.typeof检测变量数据类型

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

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

    1. var num = 10;
    2. //typeof用来获取检测变量的数据类型
    3. //语法 console.log(typeof +数据变量);
    4. console.log(typeof num);//number
    5. var str 'pink';
    6. console.log(typeof str);//string
    7. var flag = true;
    8. console.log(typeof flag);//boolean
    9. var vari = undefined;
    10. console.log(typeof vari);//undefined
    11. var timer = null;
    12. console.log(typeof timer);//object
    13. //prompt 取过来的值是 字符型
    14. var age = prompt('请输入你的年龄');
    15. console.log(age);
    16. console.log(typeof age);
    17. //字面量判断类型
    18. console.log(18);
    19. console.log('18');
    20. console.log(true);
    21. console.log(undefined);
    22. 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

    1. a = Number.MAX_VALUE*Number.MAX_VALUE;
    2. a = "abc" * "bcd";
    3. a = Nan;
    4. //console.log(typeof a);
    5. a = Number.MIN_VALUE;
    6. console.log(a); //5e-324
    7. var c = 12372484 + 45787876;

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

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

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

    1. var c = 0.1 + 0.2;
    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”  同理

    1. var a = 123;
    2. //调用a的toString()方法+
    3. //调用xxx的yyy()方法,就是xxx.yyy()
    4. //var b = a.toString();
    5. a = a.toString();
    6. a = true;
    7. a=a.toString();
    8. console.log(typeof b );//number
    9. console.log(b);//123
    10. a = null;
    11. //a = a.toString();报错
    12. a = undefined;
    13. //a = a.toString();报错
    14. a = 123;//参数
    15. //调用String()函数,来将a转换为字符串
    16. a = String(a);
    17. console.log(typeof a);//number
    18. console.log(a);//123

    案例(强制转换):

    1. //1.把数字型转换为字符串型 tostring()
    2. var num = 10;
    3. var str = num.toString();
    4. console.log(str);
    5. console.log(typeof str);
    6. //2.我们利用String(变量)
    7. console.log(String(num));
    8. //3.利用 + 拼接字符串的方法实现转换效果 隐式转换
    9. console.log(num + '');
    10. var age = prompt('请输入您的年龄');
    11. //1.parseInt(变量) 可以把字符型的转换为数字型 得到是整数
    12. console.log(paraseInt(age)); //3 取整
    13. console.log(paraseInt('3.14')); // 3 取整
    14. console.log(parseFloat('120px')); //

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

                    转换方式一

                        使用number()函数

                            -字符串--> 数字

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

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

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

                            -布尔-->数字

                                true  转成1

                                flase 转换0

                            -NUll --> 数字  0

                            -undefined --> 数字NaN

                    转换方式二

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

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

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

    1. //调用Number()函数来将a 转换为Numberk类型
    2. a = Number(a);
    3. a = true;
    4. a = Number(a);
    5. a = null;
    6. a = Number(a);
    7. a = undefined;
    8. a = Number(a);
    9. a = "123px456";
    10. //调用parseInt()函数将a 转换为Number
    11. /*
    12. parseInt()可以将一个字符串中的有效的整数内容去出来
    13. 然后转化为Number
    14. */
    15. a = parseInt(a);

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

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

    1. a = "123.456px"
    2. a = parseFloat(a);

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

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

    1. a = 198.23;
    2. a = parseInt(a);
    3. console.log(typeof a );
    4. console.log(a);

    10.其他进制的数字

    1. var a = 123;
    2. /*
    3. 在JS中,如果需要表示16进制的数字,则需要以0x开头
    4. 如果需要表示八进制的数字,则需要以0开头
    5. */
    6. //十六进制
    7. a = 0x10;
    8. a = 0xff;
    9. a = 0xcafe;
    10. //八进制数字
    11. a = 070;
    12. //二进制数字
    13. //a = 0b10;
    14. a = "070";
    15. //可以在parseInt()中传递第二个参数,来指定数字的进制
    16. a = parseInt(a,8);
    17. console.log(typeof a);
    18. console.log(a);



    11.运算符

      运算符也叫操作符

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

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

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

                        number string boolean undfined object

                算数运算符

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

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

                    + 加法运算 将结果返回

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

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

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

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

                    *

                    /

                    %

                        %取余数

    1. var a = 123;
    2. var result = typeof a ;
    3. //console.log(typeof result);
    4. //result = a + 1 ;
    5. result = true + 1;
    6. result = true + false;
    7. result = 2 + null;
    8. result = 2 + NaN;
    9. result = "123" + "456";
    10. var str = "锄禾日当午,"+
    11. "汗滴禾下土,"+
    12. "谁之盘中餐,"+
    13. "粒粒皆辛苦";
    14. result = 123 + "1";
    15. result = true + "hello";

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

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

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

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

    1. var c = 123;
    2. //c = c + "我是来把c变成字符串的";
    3. c = c + "";
    4. //console.log(result);
    5. //console.log(typeof c);
    6. //console.log(c);
    7. //console.log("c = "+c);//输出c的值
    8. result = 1 + 2 + "3";//33
    9. result = "1" + 2 + 3;//123
    10. result = 100 - 5;
    11. result = 100 - true;
    12. result = 100 - "1";
    13. result = 2 * 2;
    14. result = 2 * "8";
    15. result = 2 * undefined;
    16. result = 2 * null;
    17. result = 1 / 2;

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

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

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

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

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

         

    1. var d = "123";
    2. d = Number(d);
    3. d = d - 0;
    4. // console.log(typeof d);
    5. // console.log(d);
    6. result = 9 % 3;
    7. result = 9 % 4;
    8. console.log("result ="+result);

     

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

                    + 正号

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

                    - 负号

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

                    对于非nymber 的值

                        先转换为number,然后在运算

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

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

    1. var a = 123;
    2. a = -a ;
    3. a = true;
    4. a = -a ;
    5. a = true;
    6. a = "18";
    7. a = +a;
    8. // console.log("a = " +a);
    9. // console.log(typeof a );
    10. var result = 1 + +"2" + 3;
    11. console.log("result = " +result);

  • 相关阅读:
    什么是悲观锁,乐观锁,举例和适用场景,悲观锁实现
    C++基础与深度解析 | 输入与输出 | 文件与内存操作 | 流的状态、定位与同步
    Ackerman的非递归算法思路讲解
    51单片机DAC数模转换
    城乡供水智慧化运营,喜提一等奖!
    GBASE 8s 索引R树
    Qt编译MySQL数据库驱动
    【零基础入门JavaSE】数据类型与变量
    对于epoll实现原理的理解
    力扣 240.搜素矩阵II
  • 原文地址:https://blog.csdn.net/WZY22502701/article/details/127600033