资讯专栏INFORMATION COLUMN

JavaScript运算符的概述分类及其优先级

JaysonWang / 3114人阅读

摘要:运算符的概述提供了一组用于操作数据值的运算符,又可以称之为操作符,这些运算符可以按照作用的不同,或者操作变量数量的不同进行分类。

运算符的概述

JavaScript提供了一组用于操作数据值的运算符,又可以称之为操作符,这些运算符可以按照作用的不同,或者操作变量数量的不同进行分类。

1.算数运算符的基本操作比较简单,但我们需要注意以下的几种情况;
*如果运算数中的一个或者两个字符串类型,那么JavaScript会自动转换为数字值,再进行计算。
如果运算数中的一个或两个是字符串类型,但是其中的字符串不是数字,JavaScript会自动转换数字值    
,得到NaN结果
任何一个运算数是NaN,结果都是NaN。
布尔值false和true会转换为0和1进行计算*
2.运算符 加减以及求余,自增的用法
var num = 50 ;
var str1 = "范甘迪";
var str2 = "200";
var boo = true;

//加法num 数字加法就是数字相加
 var a1 = num+200
console.log(a1)

//如果是字符串进行相加的话,结果就是将两个字符串相连接
var a2 = str1+200
console.log(a2)

//如果布尔类型进行加法计算,先将布尔值转换为数字值,再进行加法计算
var a3 = boo+200
console.log(a3)
//如果字符串进行减法计算的话 那么先将字符串类型转换为数字值,再进行减法计算
var a4 =str1-50
console.log(a4)

//减法,先将其他类型转换为number类型,再进行计算
var a4 = num -100
console.log(a4)

//如果布尔类型进行减法计算,那么先将布尔类型转换为数字值,再进行减法计算
var a5 = boo-50
console.log(a5)
//自增运算符是来操作当时变量的值;每一次自增+1
/*有两种自增方案
1前置自增运算符++变量名 ,先增加后赋值.
2后置自增运算符-变量名++,先赋值再自增
* */
var num = 10;
console.log(num);//10

var a1 = ++num;
console.log(a1);//11
console.log(num);//11

var a1 = num++;
console.log(a1);//11
console.log(num);//12

运算符的有限级别

* 运算符的优先级别
* 运算法则是先运算优先级别较高的运算符
* 如果运算的级别相同的话则从左至右计算
`console.log(1+2-3*4) //-9 乘法优先级别更高所以先运算乘法再从左到右运算
console.log(5+50%3)//7 余数的优先级高
console.log(2*4%2)//余数与乘法优先级一样高所以自左到右计算

var num = 2;
console.log(5*++num)//前置自增优先级更高
//大于小于比较运算符 大小比较运算符的结果类型为布尔类型
/*
* 1num类型*/
console.log(1>2)//false因为1小于2 所以结果为false假
console.log(1<2)//true 1小于2 是正缺的所以结果为true
console.log(1<=2)//true

//booean类型比较运算;先将Boolean类型转换为number类型
console.log(true>false)//true true=1 false=0

//string类型 将string转换为Unicode码然后进行比较
//若比较的是英文单词那么 从左至右字母依次比较Unicode码进行比较
console.log("a"<"b")//true
console.log("adc">"asc")//false
console.log("和"<"打")//true

相等与不等运算符

/*相等与不相等运算符
* 两个== 表示相等; 不等则是!=表示*/
console.log(1==2)//false1不等于2所以结果为false
console.log(1!=2)//true 1不等于2 缩减结果为true

//boolea类型
console.log(true==true)//true
console.log(false!=true)//true
console.log(false==3)//false

//string 类型
console.log("s"=="s" )//true
console.log("d"!="我")//true
console.log("213"==213)//true只比较其数值不比较类型

全等与不全等运算符;

//全等不全等,不但不叫值还比较类型
console.log(1 === 10);// true

console.log("10" === 10);// false
console.log("10" === "10");// true
isNaN()函数与isfinite()函数的作用

//isNaN()函数 它的作用就是判断当前的值是否为NaN
//结果为true结果是NaN
//结果为false是结果不是NaN 因为他不是一个数值
console.log(isNaN(1))// 因为他不是NaN所以结果为false
console.log(isNaN("大话西游"))//因为他转换为number类型为NaN所以结果为true
//isfinit()函数表示判断当前值是否为无穷大
//结果为false时表示当前的值时无限大.
//当结果为true时 表示当前数值为有限大
var a = 100/0;
console.log(a)//infinety 表示输出的结果为无限大
console.log(isFinite(a))//false
逻辑与运算符

console.log(true && true);// true
console.log(true && false);// false
console.log(false && true);// false
console.log(false && false);// false
/*
    将逻辑与运算符的两个操作数,转换为布尔类型
    * 当左边的操作数为true时,结果为右边操作数的值
    * 当左边的操作数为false时,结果为左边操作数的值
 */

`console.log(100 && 1);// 1
console.log(1 && 0);// 0
console.log(0 && 1);// 0
console.log(0 && 0);// 0

console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);

console.log("卧龙学苑" && "卧龙学苑");// 卧龙学苑
console.log("优秀" && "");// ""
console.log("" && "痴迷");// ""
console.log("" && "");// ""

console.log("答案" && 1);// 1
console.log(false && 0);// false

逻辑或运算符:

console.log(true || true);// true
console.log(true || false);// true
console.log(false || true);// true
console.log(false || false);// false
`
/*
    将逻辑与运算符的两个操作数,转换为布尔类型
    * 当左边的操作数为true时,结果为左边操作数的值
    * 当左边的操作数为false时,结果为右边操作数的值
 */
console.log(100 || 1);// 100
console.log(1 || 0);// 1
console.log(0 || 1);// 1
console.log(0 || 0);// 0

console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);

console.log("卧龙学苑" || "卧龙学苑");// 卧龙学苑
console.log("卧龙学苑" || "");// 卧龙学苑
console.log("" || "卧龙学苑");// 卧龙学苑
console.log("" || "");// ""
 
赋值的扩展运算符
var b = 10, c = 20;

var a = b + c;
console.log(a);// 30

// b = b + c;
// 等价写法 - 赋值扩展运算符的性能要比赋值运算符更高
b += c;
console.log(b);// 30
条件运算符:

var result = 8 > 9 ? "对" : "错";

 1. console.log(result);

var score = 95;
score > 90 ? console.log("优秀") : console.log("及格");
/*当条件运算符条件为true时输出的结果为冒号前面的值 条件为false时输出结果就是冒号后面的值*/
嵌套运算符:
**
var score = 55;

    /*嵌套条件运算符
    * 优点 - 扩展了条件运算符本身的计算能力
    * 缺点
      * 可读性比较差
      * 性能随着嵌套的层级越多越差
    * 建议 - 最多不要超过三层嵌套*/
var result = score > 90 ? "优秀" : (score > 80 ? "良好" : (score > 60 ? "及格" : "不及格"));
console.log(result);**

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96690.html

相关文章

  • Java编程基础02——Java语言基础

    摘要:所以就想把一大串缩短点,将二进制中的三位用一位表示。以可以大写也可以小写开头版本可以表示二进制了八进制的数据表现形式由组成。结果把系数基数的权次幂相加即可。因为语言采用的是码来编码的。 1_(常量的概述和使用)* A:什么是常量(constant) 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的...

    pakolagij 评论0 收藏0
  • Java编程基础01——计算机基础

    摘要:外部存储器可用于长期保存大量程序和数据,其成本低容量大,但速度较慢。 1_计算机概述(了解) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机、大型计算机等。 应用举例 ...

    xiangzhihong 评论0 收藏0
  • JavaScript类型转换与各种算符

    摘要:第十七天笔记类型转换隐式类型转换隐式类型转换是弱类型松散类型的在任何情况下都可以强制转换定义类型类型以及类型的变量卧龙前端转换为类型转换为类型类型转换为类型如果文本内容是普通的文本非数字转换后的结果为如果文本内容是数字值转换后的结果为对 第十七天笔记 类型转换 隐式类型转换 隐式类型转换 JavaScript是弱类型/松散类型的 在任何情况下都可以强制转换 //定义number类型 s...

    Aklman 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<