Javascript基础(三)之运算符、函数

本文详细介绍了位运算符的原理及应用场景,包括按位与、按位或、按位异或、左移和右移等运算符的具体使用方法,并通过实例展示了如何利用这些运算符进行数字操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、运算符
1、位运算符
作用:
针对数字操作
将数字先转换为二进制再进行运算操作
二进制:
由0,1组成,逢二进一
十进制 二进制
0 0
1 1
2 10
3 11
4 100
5 101
6 110
… …

    运算符:
        1、&(按位与)
            语法:num1 & num2
            作用:将两边的操作数转换为二进制,每位数字进行按位比较,对应位置的数字都为1的时候,该位结果才为1,否则为0
            ex:
                3 & 5 : 1

                3:011
                5:101
                =========
                  001

                12 & 7 : 4
                12:1100
                 7:0111
                 ==========
                   0100
                1、15 & 1 : 1
                    15:1111
                     1:0001
                     ======
                       0001
                2、18 & 1 : 0
                3、37 & 1 : 1
                4、26 & 1 : 0
                5、12345 & 1 : 1
                6、78966 & 1 : 0

            场合:判断一个数字的奇偶性,num & 1,如果结果为1,num则为奇数,否则为 偶数
        2、|(按位或)
            语法:num1 | num2
            作用:将两边的操作数转换为二进制,每位数字进行按位比较,对应位置的数字只要有一个为1的时候,该位的结果就是1
                ex:
                    1 | 3
                    1:01
                    3:11
                    =====
                      11  = 3

                    5 | 7
                    5:101
                    7:111
                    =====
                      111 = 7

                    5:101
                    3:011
                    =====
                      111 = 7
            场合:将小数做向下取整操作
        3、^(按位异或)
            语法:num1 ^ num2
            作用:将两边的操作数转换为二进制,按位比较,对应位置只有一个1的时候才返回1,否则返回0
            ex :
                5 ^ 3 = 6
                5 : 101
                3 : 011
                =============
                      110
            场合:在不借助第三方变量时交换两个数字的位置
                ex:
                    var num1 = 5;
                    var num2 = 3;

                    num1 = num1 ^ num2; //num1 = 6
                        5 : 101
                        3 : 011
                        =======
                            110  = 6
                    num2 = num2 ^ num1;//num2 = 5
                        3 : 011
                        6 : 110
                        ========
                            101 = 5
                    num1 = num1 ^ num2;//num1 = 3
                        6 : 110
                        5 : 101
                        =======
                              011 = 3
        4、<<(按位左移)
            语法:num<<n
            作用:将num转换成二进制,并且向左移动n位,右侧以0补齐
            ex: 2<<1 = 4
                2
                0000 0000 0000 0000 0000 0000 0000 0010
                2<<1 = 4
                0000 0000 0000 0000 0000 0000 0000 0100
                2<<2 = 8
                0000 0000 0000 0000 0000 0000 0000 1000
        5、>>(按位右移)
            语法:num>>n
            作用:将num转换成二进制,并且向右移动n位,左侧以0补齐
            ex:8>>2
            8
            0000 0000 0000 0000 0000 0000 0000 1000
            8>>2 = 2
            000000 0000 0000 0000 0000 0000 0000 10

            7>>1
            7
            0000 0000 0000 0000 0000 0000 0000 0111
            7>>1 = 3
            00000 0000 0000 0000 0000 0000 0000 011
2、赋值运算
    赋值运算符:=
        变量 = 值;
        注意:=的左侧必须是变量
    扩展的赋值表达式:
    +=,-=,*=,%=,/=,^=,... ...
    a+=b; 等价于 a=a+b;
    ex: 
        var num = 10;
        num += 5;//num=num+5;
        console.log(num);

        num = 10;
        num *= 3;//num = num * 3
        console.log(num); // 30

        var a = 5;
        var b = 3;

        a = a ^ b; // a^=b;
        b = b ^ a; // b^=a;
        a = a ^ b; // a^=b;
3、条件运算符(三目运算符)
    目:操作数
        单目运算符:只有一个操作数,++,--,!
        双目运算符:有两个操作数,+,-,*,...
        三目运算符:要求有三个操作数

    条件运算符:
        ? :
        表达式1 ? 表达式2 : 表达式3;
        表达式1 :是一个条件,结果为boolean类型
        如果表达式1的值为true,则执行表达式2
        如果表达式1的值为false,则执行表达式3

    输入一个考试成绩,如果成绩大于60分,输出及格,否则输出 不及格

    练习:输入一个年龄,如果年龄大于等于 18岁,打印输出 "你已成年",否则,打印输出,"还未成年"

    条件运算符的嵌套:
        表达式2, 表达式3的位置处分别可以再嵌套一个条件表达式
        ex : 根据成绩 输出成绩 等级
            成绩100 输出 A
            90 ~ 100 输出 B
            80 ~ 90 输出 C
            60 ~ 80 输出 D
            60以下 输出 E

2、函数
1、没有函数的弊端
1、代码直接写在script中,网页加载时就运行
2、代码不够通用
2、什么是函数
函数(function),也被称为方法(method)或者过程(procedure)
函数是一段预定义好,并可以被反复执行的代码块
预定义好:
事先被定义,但不会马上被执行。可以由任意元素的事件来调用(调用时被执行)
反复执行:
同一个函数,可以被多次调用
提升了代码的可重用性
代码块:
允许包含多条可执行的语句

    函数的本质也是功能完整的对象
3、语法
    1、普通函数的 声明 和 调用
        1、声明
            function 函数名(){
                若干条语句;
            }
        2、调用
            任何 JS 的位置处 ,可以通过
                函数名();
            进行调用
    2、带参数的函数的声明 和 调用
        parseInt("35.5");
        parseInt(46.8);
        参数:由函数外部传递到函数内部进行辅助操作的数据
        声明语法:
            function 函数名(参数列表){
                函数体/方法体
            }
        参数列表:
            可以为空,为空的话称之为无参函数
            也可以由一个或多个参数名称组成,多参数的话,中间用 ,隔开

            参数名称:与变量名称一致,不需要使用var来声明

            定义函数时定义的参数称之为 "形参(形式参数)"


        调用带参数函数
            任意位置处,通过
                函数名(参数列表);
            调用函数
            参数列表:要传递的值的列表,多个值之间用,隔开
            调用函数时传递的参数称之为 "实参(实际参数)"
    3、带返回值的函数的声明 和 调用
        返回值:执行完函数最后得到的一个数据
            var r1 = parseInt(35.5);
            var r2 = parseFloat("37.8");
            ... ...
        语法:
            声明:
            function 函数名(参数列表){
                函数体 ...
                return 值;
            }
            调用:
            var 变量 = 函数名(参数列表);

            注意:
                1、return 后面只能返回一个值
                2、return 后面的语句不会被执行
4、作用域
    1、什么是作用域
        作用域指的是变量或函数的可访问范围
        在JS中,变量和函数的作用域分为:
            1、函数作用域,只能在定义的函数内访问
            2、全局作用域,一经定义,任何位置都能用
    2、函数作用域中的变量
        又称为"局部变量"
        function fun1(){
            var num = 15; // 局部变量,只能在fun1中使用
            console.log(num);
        }
    3、全局作用域中的变量
        又称为"全局变量",一经声明,JS的任何位置处都能使用。全局变量 会声明在 独立于 任何 function 外围位置处
        <script>
            var num = 15; // 全局变量
            function fun1(){
                console.log(num); //15
            }
            console.log(num);//15
        </script>

        注意:
            声明变量时,不加var关键字也是全局变量
    4、声明提前
        JS在正式运行前,会将var声明的变量以及function声明的函数,预读到所在作用域的顶部。
        但是对变量的赋值仍然保留在原位置处
    5、按值传递
        基本数据类型作为参数时,传参时,实际是将实参的值复制一个副本传递给函数
    6、函数的作用域
        1、全局函数
            在script中定义的函数,相互之间独立,没有所属关系,一经定义,任何位置都能使用
        2、局部函数
            在 function 中声明的,有所属关系,只能在声明的函数内使用
            function fun1(){
                function son(){
                    console.log("fun1中的函数son");
                }
            }
        3、ECMAScript 提供的全局函数
            1、parseInt()
            2、parseFloat()
            3、Number()
            4、isNaN()
            5、eval()
                作用:计算并执行以字符串表示的js代码
            6、encodeURI()
                URI : Uniform Resource Identifier
                按照 URI 的规则 解析一个字符串(编码)
                https://www.baidu.com/s?wd=减肥
            7、decodeURI()
                对一个URI格式的字符串进行解码,并返回解码后的字符串
            8、encodeURIComponent()
            9、decodeURIComponent()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值