【面向JS--运算符】

什么是运算符?什么是表达式?

运算符:指定数据运算方式的符号,+,-,*,/...
表达式:由运算符和操作数所组成的式子,叫表达式
    ex: 
        1、a+b
        2、a=5;
        3、var result = 35+7 * 2 / 3
    注意:每一个表达式,都有自己的运算结果

运算符详解

1、算术运算符

+,-,*,/,%,++,–……

注意:
1、除加法外,剩下的算术运算符如果两边的操作数,不是number类型,会隐式通过Number()进行转换,转换成功则正常运算,否则,结果为NaN

% : 取余(数),俗称”模”

5 % 3 : 结果:2
5 % 2 : 结果:1
2 % 5 : 结果:2
10 % 3 : 结果:1
10.5 % 3 : 结果:1.5
-10 % 3 : 结果:-1
-10 % -3 : 结果:-1

使用场合:
1、判断数字是否为n的倍数
    ex:
        1、判断 num 是否为 偶数
            判断 num % 2 的结果是否为 0
        2、判断 num 是否为 n 的倍数
            判断 num % n 的结果是否为 0
2、获取 某数字的 最后几位
    ex:
        1、想获取 1234 的最后一位
            1234 % 10 结果为:4
        2、想获取 1234 的最后两位
            1234 % 100 结果为:34

++:自增运算符,在自身数值上只做+1操作

var num = 5;
num++; ==> num = num + 1

num++ : ++做后缀,先使用变量的值,然后再进行自增
++num : ++做前缀,先对变量进行自增,然后再使用变量的值

- -:自减运算符,在自身数值基础上只做-1操作

var num = 10;
var j = num--;
console.log(num);//10,9
console.log(j);//10

2、关系运算符

比较数据大小或相等 等一系列的关系

>,<,>=,<=,==(判断等于),!=(不等于),===(全等),!==(不全等)

==:
    判断 表达式两边数值是否相等,是的话结果为true,否则就是false
===:
    判断 数值以及数据类型 都相同的情况下,结果认为是true,否则就是false
!==:
    数值以及数据类型,只要有一个不相同,就认为是不等(true),否则就是false

关系表达式的运算结果均为 boolean 类型

var n1 = 15;
var n2 = 51;
n1>n2 : false
n1<n2 : true
n1>=n2 : false
n1<=n2 : true
n1==n2 : false
n1!=n2 : true

注意:
1、运算符两端的操作数,有一个是number类型,一个是非number类型的话,会将非number类型的数据转换为number类型进行比较(通过Number()进行转换)。如果转换失败(NaN),结果为 false
2、运算符两端的操作数如果都是string类型的话,那么就将两个数据每位字符的Unicode码进行比较。Unicode码大的数据为大。
3、任何数据与NaN进行比较,结果永远是false,想判断数据是否为NaN的话,要使用isNaN()

ex:"张三丰">"张无忌" //false
张:24352  三:19977 无:26080
19977 < 26080 ⇒ "张三丰"<"张无忌"

    "33" < "5" //true
    "3":51  "5":53
    51 < 53 ⇒ "33" < "5"

3、逻辑运算符

主要用于关联多个条件,或对条件做取反操作

!(逻辑非),&&(逻辑与),||(逻辑或)

逻辑与 : &&

关联两个条件
如果两个条件的结果都为真的话,逻辑与的表达式的结果 就为真,否则为false

逻辑或 : ||

关联两个条件
如果两个条件,只要有一个为真,那么这个逻辑或的表达式的结果就为真。

逻辑非 : !

非真即假
非假即真

短路逻辑:

1、对于 &&,短路与

如果第一个条件的结果为真,则继续判断第二个条件(表达式),最后将第二个条件(表达式)的结果作为整个逻辑表达式的结果
如果第一个条件的结果为假,则不会继续判断第二个条件,整个逻辑表达式的结果就为 假

语法:条件1 && 操作(表达式)
    如果条件1 为真,则执行&&后面的操作或表达式
    如果条件1 为假,则不执行&&后面的操作或表达式

2、对于 ||,短路或

如果第一个表达式结果为true的,就不用继续判断第二个表达式,整个逻辑表达式的结果为true
如果第一个表达式结果为false的话,则继续判断第二个表达式,并且以第二个表达式的结果作为整个逻辑表达式的结果

语法:条件1 || 操作(表达式)
    如果条件1 为真,则不执行&&后面的操作或表达式
    如果条件1 为假,则执行&&后面的操作或表达式

4、位运算符

直接由二进制进行的运算,将数值的二进制左移或右移n位

1、只针对数字
2、将数字转换为二进制再进行运算
3、所有的位运算会把小数转换成整数(向下取整)再进行运行
    35.786 向下取整 35
    39.9999向下取整 39

位运算符

1、&:按位与

语法:num1 & num2
转换为二进制后,进行每位上的数字比较。每位上的数字对应都为1时,该位的整体结果为1,否则就是0
场合:判断一个数字的奇偶性。ex : n & 1 ,如果结果 为1的话,说明是奇数,否则是偶数

    0000000000001
    1100110011001
    ===============
    000000000001    ---->  奇数

2、|:按位或

语法:num1 | num2
转换成二进制,每位上的数字进行比较,只要有一个位置的数为1,那么该为的结果就是1,否则就是0
场合:将小数向下求整, n | 0
    3.5 | 0  ==> 3 | 0
    3 : 11
    0 : 00
    =========
        11   ---> 3

3、^:按位异或

语法:num1 ^ num2
转换成二进制,每位上的数字进行比较,有且只有一个位置的数为1时,该位结果才为1,否则就是0
ex: 5 ^ 8
    5 : 0101
    8 : 1000
    ===========
        1101  ==> 13
场合:不借助第三方变量,交换两个数字的位置
    想交换 num1=5,num2=8 的位置
    num1 = num1 ^ num2; // num1 = 13
    5 : 0101
    8 : 1000
    =============
        1101  ==> 13

    num2 = num2 ^ num1; // num2 = 5
    8 : 1000
    13: 1101
    ===============
        0101  ==> 5

    num1 = num1 ^ num2;
    13 : 1101
     5 : 0101
    ============
             1000  ==> 8 //num1=8

4、<<:左移

语法:num1 << n
将二进制数想左移动几位,后面用0补齐
ex:5 : 在内存中的保存形式
        0000 0000 0000 0000
        0000 0000 0000 0101
    5 << 1 :  10
        0000 0000 0000 0000
        0000 0000 0000 1010  --->  10
    5 << 2 :  20
        0000 0000 0000 0000
        0000 0000 0001 0100  --->  20

5、>>:右移

语法:num1 >> n
将二进制数向右移动几位,左侧以0补齐
ex:5 : 在内存中的保存形式
        0000 0000 0000 0000
        0000 0000 0000 0101
    5 >> 1 :  2
        0000 0000 0000 0000
        0000 0000 0000 0010  --->  2
    5 >> 2 :  1
        0000 0000 0000 0000
        0000 0000 0000 0001  --->  1

5、赋值运算符

=,+=,-=,*=,/=,%=,&=,^=,… …

基本赋值运算:=,将等号的右边的值保存在左边的变量中。赋值表达式也有返回值,会返回将要保存回变量的新值。
扩展赋值运算:对变量内部的值进行修改的简写方法
包括:+=   -=    *=   /=   %= 
何时使用扩展赋值运算:需要修改变量中的值,再存回变量中
ex: total*=0.8; --> total=total*0.8; 表示累乘
     a+=5; --> a=a+5; 表示累加

6、条件(三目)运算符

1、目

目:操作数
单目运算符:只需要一个操作数即可 ex: ++,--,!
双目运算符:需要两个操作数 ex:+-,*,/,%,&&,&,||,| ... ...
三目运算符:需要三个操作数

2、条件运算符

根据条件的结果 选择 某个操作数(表达式)去执行。

1、语法

? :
表达式1 ? 表达式2 : 表达式3;
表达式1:为boolean表达式
    如果表达式1的值为 true,则运行表达式2,并且将表达式2的结果作为整个表达式的结果
    如果表达式1的值为 false,则运行表达式3,并且将表达式3的结果作为整个表达式的结果

2、条件运算符嵌套

表达式2,表达式3的位置处可以嵌套其它的条件运算符
ex:输入一个考试成绩
     如果 成绩>=90 分, 输出 优秀
     否则 如果 成绩>=80 输出 良好
     否则 如果 成绩>=60 输出 及格
     否则 输出 不及格

    成绩>=90?"优秀":(成绩>=80?"良好":(成绩>=60?"及格":"不及格"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: js-001-2017是一个代号,代表2017年发布的JavaScript语言相关的规范或标准。在计算机编程领域,JavaScript是一种广泛使用的脚本语言,主要用于网页的交互逻辑和行为的实现。js-001-2017可能是对该语言的一次更新或修订,旨在提供更好的开发体验和更强大的功能。 随着互联网的发展,使用JavaScript的应用也日益增多。js-001-2017中可能包含了对原有语法的改进、新的功能特性的添加,以及一些修复可能存在的漏洞或问题。通过发布新的规范,开发者们可以更好地了解和掌握JavaScript的最新语法和特性,以便更高效地进行编程。 JavaScript的重要性不容忽视,它被广泛运用于前端开发、移动应用开发、后端开发等多个领域。通过学习和应用js-001-2017中的规范,开发者们可以更好地与JavaScript这门语言进行互动,更好地实现自己的编程任务。 总之,js-001-2017是JavaScript语言的一个规范或标准,通过它的学习和应用,开发者们可以更好地掌握和应用最新的JavaScript语法和特性,提升自己在编程领域的技能水平。 ### 回答2: js-001-2017是指JavaScript编程语言的入门课程,是2017年开设的课程。这门课程主要教授JavaScript的基础知识和应用技巧。JavaScript是一种面向对象的脚本语言,广泛用于Web开发。 该课程的目标是让学生从零基础开始学习JavaScript,并掌握其基本语法、变量、运算符、流程控制、函数、数组等基本概念。在课程中,学生将学习如何使用JavaScript编写交互性的前端网页。通过实践项目和练习,学生将学会使用JavaScript实现表单验证、动态网页效果、DOM操作、事件处理等技术。 除了基础知识外,该课程也会介绍一些常用的JavaScript库和框架,如jQuery、React等,以帮助学生更高效地开发Web应用程序。 这门课程对于想要从事Web前端开发的学生来说非常重要。JavaScript是Web开发中不可或缺的一门技术,它可以让我们的网页更加动态和交互。通过学习js-001-2017,学生将为自己以后的学习和工作打下坚实的基础。 总之,js-001-2017是一门非常有意义且实用的课程,通过学习这门课程,学生将获得JavaScript编程的入门知识和技巧,为自己的Web开发之路打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值