JavaScript基础知识二

1、数据类型
    1、查看数据类型
        1、语法
            typeof() 或 typeof 
            ex:
                var num = 35;
                console.log(typeof(num));
    2、数据类型的转换
        1、隐式转换
            自动进行转换
            1、字符串 + 数字 :将数字转换为字符串
                ex
                    1、"你好" + 123 :"你好123"
                    2、"78" + 15 :"7815"
                    3、var r = "78"+15+13;
                        r : "781513"
                    4、var r = 15+13+"78";
                        r : "2878"
            2、数字 + 布尔值 :将布尔值转换为数字
                ex:
                    1、25 + true :26
                    2、38 * false :0
            3、字符串 + 布尔值 :将布尔值转换为字符串
                ex:
                    1、"你好" + true :"你好true"
                    2、"Hello" + false : "Hellofalse"
            4、布尔值 + 布尔值 :将布尔值转换为数字
                ex:
                    1、true + false : 1
        2、强制转换 - 转换函数
            "78" + 15,问题:想将"78"转换为数字,该怎么办
            1、toString()
                将任意类型的数据转换成字符串
                语法:
                    var 结果 = 数据.toString();
                    var r = "张".charCodeAt().toString(16);
            2、parseInt()
                Integer : 整数
                作用:将指定的数据转换为整数
                语法:
                    var 结果 = parseInt(数据);
                ex:
                    1、var r = parseInt(78.5);
                        r : 78
                    2、var r = parseInt("78");
                        r : 78
                    3、var r = parseInt("78ABC");
                        r : 78
                    4、var r = parseInt("ABC78");
                        r : NaN (Not a Number)
            3、parseFloat()
                作用:将任意类型的数据转换为 小数
                ex:
                    1、var r = parseFloat("38.5");
                        r : 38.5
                    2、var r = parseFloat("38.5你好吗!")
                        r : 38.5
                    3、var r = parseFloat("你好吗38.5");
                        r : NaN
            4、Number()
                作用:将任意类型的数据转换为数字(整数或小数)
                注意:如果转换的数据中包含非数字的字符,则返回NaN 
                ex:
                    1、var r = Number("35");
                        r : 35
                    2、var r = Number("35.5");
                        r : 35.5
                    3、var r = Number("Hello 35.5");
                        r : NaN
                    4、var r = Number("35.5Hello");
                        r : NaN
2、运算符 和 表达式
    1、什么是表达式
        表达式是由运算符 和 操作数来组成的式子
            var result = 35 + 28;
            console.log(a = 35); //结果为 35
            b=a=35; 正确的表达式,a 和 b 的值,都是35
    2、运算符
        1、算术运算符
            +,-,*,/,%,++,--
            优先级:
                ++,-- 最高
                *,/,% 居中
                +,- 最低

            ++ : 自增运算符
                在自身基础上做+1的操作
                ++ 做前缀:
                    var i = 10;
                    console.log(++i); // 11
                    先对i进行+1操作,然后再使用i的值(先自加,再取值)
                
                ++ 做后缀:
                    var j = 10;
                    console.log(j++); // 10
                    console.log(j); // 11
                    先使用j的值,然后再对j进行+1操作(先取值,再自加)
            -- : 自减运算符
                在自身基础上做-1的操作

            ex:
                1、var i = 10;
                    console.log(i++);//输出:10 变为:11
                    console.log(++i);//12 变为 :12 输出 12
                    console.log(i++);//12 输出 :12 变为 13
                    console.log(i++);//13 输出 :13 变为 14
                    console.log(i);//14 输出 :14
                2、
                    var i = 10;
                            10  10(11)(12)12 12(13) (14)1414
                    var r = i + i++ + ++i +  i++ +  ++i + i;
                    10+10+12+12+14+14 :72
                    //72,78,
        2、关系运算符(比较运算符)
            >,<,>=,<=,==,!=,===,!==
            优先级:
                1、>,<,>=,<=
                2、==,!=,===,!==
            == : 判断等于
            = : 赋值
            != : 判断两个数据是否不相等,不等为true
            === : 判断数值和数据类型是否都一直
                var n1 = 35;
                var s1 = "35";

                n1 == s1 : true
                n1 === s1 : false

            ex:
                1、3 > 10 : false
                2、"3" > 10 : false
                3、"3a" > 2 : false
                4、"3" > "10" : true
                5、"张三丰" > "张无忌" : false


            注意:
                1、两个操作数,如果一个是数字,一个是字符串的话,默认会将字符串通过 Number() 转换成数字,再做比较
                2、NaN
                    NaN 与 任何数据做 != ,结果都为 true
                    其它操作全是 false
                3、字符串 与 字符串进行比较时,实际上上比较的是每位字符的Unicode码
                    1、"3" > "10"
                        实际上比较的是 3 跟 1 的Unicode码的大小
                    2、"张三丰" > "张无忌" : false
                        实际上比较的是 "三" 跟 "无" 的unicode码的大小

                        张(24352)三(19977)丰
                        张(24352)无(26080)忌
                    3、35 > "张三丰"
                        结果:false
                4、判断一个数据是否为数字
                    NaN 不能使用 == 或 != 来进行判断
                    想判断一个数据是否为数字,使用以下函数
                    isNaN() : 判断一个数据是否为 非数字
                        如果为非数字的话,返回true
                        否则(是数字) ,返回 false
                    语法:
                        var 结果 = isNaN(数据);
                    ex:
                        1、var r = isNaN("35.5");
                            false
                        2、var r = isNaN("35你好");
                            true
                        3、var r = isNaN("你好35");
                            true
                        4、var r = isNaN(35)
                            false
        3、逻辑运算符
            &&,||,!
            && : 两个条件都为true,整个表达式为true
            || : 两个条件,有一个为true,整个表达式就为 true
            ! : 对现有条件结果,取反。非真即假,非假即真

          短路逻辑:
                1、短路逻辑 &&
                    条件1 && 条件2
                    当第一个条件为false时,整体表达式结果就是false,就不会判断执行第二个表达式

                    如果条件1为true的话,那么就要继续判断执行第二个条件

                    条件 && 操作
                    如果操作中有多条语句要执行,则使用(),括起来,并用 , 隔开
                2、短路逻辑 ||
                    条件1 || 条件2
                    当第一个条件为true时,就不再执行条件2,整个结果为 true

                    当第一个条件为false时,则继续执行第二个条件

                    条件1 || 操作
        4、位运算符
            1、位运算符
                是将数字先转换为二进制,再进行操作
            2、详解
                1、<<
                    按位左移,将数字变大
                2、>>
                    按位右移,将数字变小
                3、&
                    按位与,判断奇偶性可以使用按位&
                    将任意数字与1做按位与操作,结果为1,是奇数,结果为0,是偶数
                    ex:
                        35 & 1 : 1 -> 奇数
                        38 & 1 : 0 -> 偶数
                4、|
                    按位或,对小数取整时使用
                    将任意数字与0做按位或操作,结果为 保留整数部分
                    ex:
                        35.857 | 0 : 35
                5、^
                    按位异或,交换两个数字时使用
                    var a = 15;
                    var b = 18;

                    a = a ^ b; 结果:29
                    b = b ^ a; 结果:15
                    a = a ^ b; 结果:18
                
        5、赋值运算符 & 扩展的赋值运算符
            1、赋值运算符 :=
            2、扩展的赋值运算符
                +=,-=,*=,/=,%=,^= ... ...
                a+=b; => a = a + b;
                a^=b; => a = a ^ b;
                ex:
                    使用 扩展的赋值运算符,简化下列操作
                    a = a ^ b; ( a^=b;)
                    b = b ^ a; ( b^=a;)
                    a = a ^ b; ( a^=b;)
        6、条件运算符(三目运算符)
            单目(一元)运算符 :只需要一个操作数的运算符
                ++,--,!
                ex:
                    a++
                    ++a
            双目(二元)运算符 :需要两个操作数的运算符
                +,-,*,/,%,>,<,>=,<=,==,!=,==,!==,&&,||,<<,>>,&,|,^
            三目(三元)运算符 :需要三个操作数的运算符
                条件运算符 ?:
            
            语法:
                条件表达式?表达式1:表达式2;
                
                条件运算符的嵌套,在表达式1 和 表达式2,可以再继续使用条件运算符
          
        var num = 5;
        console.log(5 & 1 == 1);
        结果:1

        var num = 5;
        console.log((5 & 1) == 1);
        结果:true
3、函数 - function
    1、什么是函数
        函数是一段预定义好,可以被反复执行的代码块
            预定义:提前声明好,并非马上执行
            代码块:可以包含多条可执行的语句
            反复执行:允许被多次使用(调用)
        使用过的函数:
            parseInt() :有参数,有返回值
            parseFloat() :有参数,有返回值
            Number() :有参数,有返回值
            console.log() :有参数,无返回值
            alert() :有参数,无返回值
            prompt() :有参数,有返回值
    2、定义和使用函数
        1、普通函数的声明 和 调用
            1、声明
                function 函数名(){
                    //函数体 - 若干条可执行的语句
                }
            2、调用
                在任意的JS位置处,可以通过
                    函数名();
                对函数进行调用
        2、带参数 带返回值的函数
            语法:
                function 函数名(形参列表){
                    return 值;
                }

                1、形参列表
                    形参:形式参数,定义函数时定义的参数,如果是多个参数的话,用 "," 隔开即可
                2、返回值
                    在函数体内,要带给函数体外的一个数据
            调用:
                1、在JS的任意位置处通过  函数名(); 调用函数
                2、如果函数有参数的话,则需要传递参数(实参)给函数。
                3、如果函数有返回值的话,则可以在函数调用处,通过一个变量来接收返回值
posted @ 2020-08-21 18:32  柒涩波  阅读(99)  评论(0编辑  收藏  举报