资讯专栏INFORMATION COLUMN

JavaSceipt核心语法——运算符

刘德刚 / 1368人阅读

摘要:运算符运算符一共分为六种算数运算符比较运算符逻辑运算符赋值运算符字符串联接运算符条件运算符运算符的概念提供的一组用于操作数据值的运算符操作符。这些运算符可以按照作用的不同或者操作变量数量的不同进行分类。

运算符

——运算符一共分为六种;
1.算数运算符
2.比较运算符
3.逻辑运算符
4.赋值运算符
5.字符串联接运算符
6.条件运算符
——运算符的概念;
JavaScript提供的一组用于操作数据值的运算符(操作符)。这些运算符可以按照作用的不同或者操作变量数量的不同进行分类。
——运算符的优先级别;
JavaScript语言中的运算符,如果在复杂的表达方式中应用,首先我们要了解运算符的优先级别。也就是说先计算哪个,再计算哪个的道理。就跟数学中的加减乘除相似。如果不知道运算符的优先级别,那么很可能导致最后的计算结果错误。
我们没有必要去记运算符的优先级别,只要记住关键的小括号级别是最高的就可以。实际开发中只要使用小括号包裹的运算符,就先去计算包裹的运算符;

运算符具有计算的优先级别

1.先计算优先级别高的运算符
2.运算符的级别相同,从左至右的计算

运算符中优先级别最高的是“()”
优先计算的表达式利用"()"将其包裹起来
console.log(100 + 200 - 150 * 3);
console.log(100 + 200 % 3);
console.log(2 * 200 % 3);

var num = 10;
console.log(5 + ++num);
1.算数运算符

算数运算符的基本操作比较简单
-如果运算数中的一个或者两个是字符串类型,那么JavaScript会自动转换成数字值,然后再进行计算。
如果运算数中的一个或两个是字符串类型,但是其中的字符不是数字时,JavaScript会自动转换成数字值进行计算,得到的结果是NaN.(任何一个运算数是NaN,结果都会是NaN)。
布尔的false和true值都会默认转换为0和1进行计算。

var num = 100;
var str1 = "运算符";
var str2 = "200";
var boo = true;

   加法
var result1 = num + 300;
console.log(result1);// 400

   如果字符串进行加法计算 -> 字符串连接运算符(拼串)
var result2 = str1 + 300;
console.log(result2);
console.log(typeof result2);// string

var result3 = str2 + 300;
console.log(result3);// 200300
   如果布尔类型进行加法计算 -> 将布尔类型转换为数字值,再进行加法计算
var result4 = boo + 300;
console.log(result4);// 301

   减法 - 先将其他类型转换为number类型,再进行计算
var result5 = num - 100;
console.log(result5);// 0
   如果字符串进行减法计算的话 -> 将字符串类型转换为数字值,再进行减法计算
var result6 = str1 - 100;
console.log(result6);// NaN

var result7 = str2 - 100;
console.log(result7);// 100
  如果布尔类型进行减法计算 -> 将布尔类型转换为数字值,再进行减法计算
var result8 = boo - 100;
console.log(result8);// -99

2.比较运算符
JavaScript语言中的比较运算符,主要是用来比较两个操作数的大小,相等。
全等于不全等,不仅要比较直,还要比较类型。

 1.number类型
console.log(10 > 11);// false是错误的,10不可能大于11
console.log(11 > 10);// true是正确的,11本来就大于10
console.log(10 >= 10);// true是正确的,10本身就大于等于10
 2.boolean类型 - 将boolean类型转换为number类型
console.log(true > false);// true是正确的,true表示1、false表示0
console.log(true > 0);// true是正确的,true表示1,所以大于0

    3.string类型 - a.英文;b.中文
       英文或中文 -> 将文本转换成 Unicode 码 - 对应具有数字值
       英文单词 -> 从左至右的依次比较字母 Unicode 码的大小
  
console.log("a" < "b");// true
console.log("a" > "A");// true
console.log("abc" > "cba");// false
console.log("abc" > "acd");// false

console.log("我" > "你");// true

Unicode编码顺序

相等与不等比较
1.number类型
console.log(10 == 10);// true
console.log(10 == 11);// false
2.boolean类型
console.log(true == true);// true
console.log(true == false);// false

console.log(true == 1);// true

3.string类型
console.log("a" == "a");// true
console.log("a" == "b");// false
(只比较值,而不比较类型)
console.log("100" == 100);// true

相等比较运算符
与赋值运算符的区别

赋值运算符(=)

相等比较运算符(==)

不等比较运算符

符号是(!=)

不是(<>)

isNaN()函数
isNaN函数用于判断其参数是否为NaN。
一般多用于检测使用类型转换函数进行数据类型转换后的结果是否为合法的数字值。
(NaN与任何值包括自身进行比较,最后结果都是false)

   作用 - 判断当前值是否为 NaN
       true - 表示当前值是 NaN(不是一个数字值)
       false - 表示当前值不是 NaN(不是一个数字值)
    
 
console.log(isNaN(100));// false
console.log(isNaN(Number("wolongxueyuan")));// true

var result = 100/0;
console.log(result);// Infinity

    isFinite()函数
    作用 - 判断当前值是否为无穷大
      false - 表示当前值是无穷大
      true - 表示当前值是有限数值
 
console.log(isFinite(result));// false

逻辑运算符
逻辑运算符是用于布尔类型的计算。
把逻辑与运算的两个操作数,转换为布尔类型。

当左边的操作数为true,结果是右边操作数的值

当左边的操作数为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);
console.log(1 || 0);
console.log(0 || 1);
console.log(0 || 0);

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

逻辑短路
逻辑与运算符

 - 逻辑与运算符前面是false,结果都将返回逻辑与运算符前面的值
 - 逻辑与运算符前面是true,结果都将回逻辑与运算符后面的值

逻辑或与运算符

 - 逻辑或运算符前面是false,结果都将返回逻辑或运算符后面的值
 - 逻辑或运算符前面是true,结果都将返回逻辑或运算符前面的值

4.条件运算符

var score = 55;

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

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

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

相关文章

  • this全面解析(一)

    摘要:调用栈就是为了到达当前执行位置所调用的所有函数。由于无法控制回调函数的执行方式,因此就没有办法控制调用位置得到期望的绑定,下一节我们会介绍如何通过固定来修复这个问题。 在《你不知道的this》中我们排除了对于this的错误理解,并且明白了每个函数的this是在调用时绑定的,完全取决于函数的调用位置。在本节中我们主要介绍一下几个主要内容: 什么是调用位置 绑定规则 this词法 调用...

    darry 评论0 收藏0
  • JavaScript 之 核心语法 [ 数据类型 ]

    摘要:数据类型数据类型表示数值的类型类型的分类原始类型类型数字类型类型分为整数和浮点数整数正整数负整数变量为数字类型整数显示浮点数小数变量为数字类型浮点数显示浮点数在小数点前面如果没有数字,会被默认为在小数点前的数字为比如会显示浮点数的 数据类型 数据类型 - 表示数值的类型 类型的分类 原始类型 number类型(数字类型) number类型分为整数和浮点数 整数 - 正整数 、0 、负...

    luffyZh 评论0 收藏0
  • JavaScript核心语法——数据类型

    摘要:原始类型分别有类型类型和类型三种。类型中存在一个特殊的值叫。也可以把其他类型的数据自动转换为类型运算符运算符判断原始类型语法结构变量名称。 数据类型 1.数据类型的概述;在JavaScript代码中,能够表示并且操作值的类型就叫做数据类型数据类型可以分成可变类型和不可变类型,可变类型的值是可以修改的。相反不可变类型的值是不可以修改的。数据类型还有原始类型(原始值)与引用类型(内置对象)...

    wfc_666 评论0 收藏0
  • JS语言核心——“语句”

    摘要:表达式语句把表达式当做语句的用法声明语句用来声明新变量或定义新函数控制结构改变语句的默认执行顺序条件语句循环语句跳转语句表达式语句赋值语句运算符函数调用等复合语句和空语句复合语句复合语句将多条语句联合在一起,当成一条单独的语句语句块的结尾不 表达式语句(expression statement):把表达式当做语句的用法; 声明语句(declaration statement):用来声...

    Galence 评论0 收藏0
  • Javascript语句 - Javascript语法基础 - Javascript核心

    摘要:多数运算符都是由标点符号表示,比如和。通常会根据需要对操作数进行类型转换左值是一个古老的属于,它是指表达式只能出现在赋值运算符的左侧。也称为严格相等运算符,它用来检测两个操作数是否严格相等。运算符的检测规则是和运算符的求反。 源代码: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/...

    lavnFan 评论0 收藏0

发表评论

0条评论

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