资讯专栏INFORMATION COLUMN

JavaScript中的运算符个人分享

DesGemini / 2650人阅读

摘要:运算符加减乘除法运算符加法运算符如果字符串进行加法计算叫拼串加法遇到字符串都是连接而不是加法运算如果类型进行加法计算时加法运算自动将布尔类型转换为数字值在进行加法注意操作变量中如果不存在类型的话执行的是加法计算示例代码一花一世界调用结

运算符 加减乘除法运算符

加法运算符:

如果字符串进行加法计算 - 叫拼串

加法遇到字符串都是连接而不是加法运算

如果boolean类型进行加法计算时 - 加法运算自动将布尔类型转换为数字值在进行加法

注意:操作变量中如果不存在string类型的话 -> 执行的是加法计算

示例代码:

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);// 调用结果为 一花一世界300
console.log(typeof result2);// 调用结果为 string

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

2.减法运算符

仅局限于数学计算(数字值)

如果操作变量的类型不是number(数字)类型那它会先将当前数据类型转换为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

特殊情况:数字减NaN和字符串输出结果都得出NaN

示例代码:

console.log(num - NaN);// NaN
console.log(num - "我是谁");// NaN

3.乘法和除法运算符和减法运算符一样

注意: 除了加法运算符之外,所有算数运算符都是执行数学计算

求余运算符 - 就是获取除法计算之后的余数

特殊情况: 求余的结果是正数还是负数与第一个操作的数有关,(与第二个操作的数无关)

示例代码:

console.log(100 % 3);// 1
console.log(8 % 4);// 0
// 求余的结果是正数还是负数,与第一个操作数是正数或负数有关(与第二个操作数无关)
console.log(100 % -3);// 1
console.log(8 % -4);// 0

console.log(-100 % 3);// -1
console.log(-8 % 4);// 0

console.log(-100 % -3);// -1
// 与减法的情况保持一致
console.log("卧龙学苑" % 2);// NaN
自增运算符 - 就是给自己增加 - 操作的是当前变量的值,每自增一次(+1)

前置自增运算符 - ++变量名

先自增,再赋值

后置自增运算符 - 变量名++

先赋值,再自增

示例代码:

var num = 10;
console.log(num);// 10

// 前置自增
var result1 = ++num;
console.log(result1);// 11
console.log(num);// 11

// 后置自增
var result = num++;
console.log(result);// 10
console.log(num);// 11
运算符的优先级别

先计算优先级别高的运算符

运算符的级别相同,从左至右的计算

运算符中优先级别最高的是"()"

优先计算的表达式利用"()"将其包裹起来

示例代码:

console.log(100 + 200 - 150 * 3);// -150
console.log(100 + 200 % 3);// 102
console.log(2 * 200 % 3);// 1

var num = 10;
console.log(5 + ++num);// 16
比较运算符 大于小于比较运算符

示例代码:

// 1.number类型
console.log(10 > 11);// false
console.log(11 > 10);// true
console.log(10 >= 10);// true
// 2.boolean类型 - 将boolean类型转换为number类型
console.log(true > false);// true
console.log(true > 0);// true
/*
    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
相等和不相等与全等和不全等比较运算符

1.相等和不相等:

相等比较运算符

与赋值运算符的区别

赋值运算符(=)

相等比较运算符(==)

不等比较运算符

符号是"!="

不是"<>"

示例代码:

// 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

2.等和不相等与全等

完全相等 : 是三个等于号 (===)

完全不相等 : 是以个叹号两个等号 ( !== )

完全相等就是说不只是值相等而且类型也必须相等

反之完全不相等道理一样必须是所有都不一样才可以(比如:值和类型)

示例代码:

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

console.log("10" === 10);// false
console.log("10" == 10);// true

// 不全等
console.log(11 !== 10);// true

console.log("10" !== 10);// true

备注:

相等和不相等与全等和不全等的区别

相等就是只要值是一样的就行

全等则是值和类型都要一样才行

isNaN()函数

作用 - 判断当前值是否为 NaN

true - 表示当前值是 NaN(不是一个数字值)

false - 表示当前值不是 NaN(不是一个数字值)

注意: 全等和相等都不好使

示例代码:

console.log(isNaN(100));// false
console.log(isNaN(Number("一花一世界")));// true
isFinite()函数

作用 - 判断当前值是否为无穷大

注意:boolean类型的值在isFinite()函数中表示的意思是:

表示当前值是无穷大

true - 表示当前值是有限数值

var result = 100/0;
console.log(result);// Infinity - 表示无穷大的意思
console.log(isFinite(result));// false
逻辑运算符 逻辑与运算符

总结:

逻辑与相当于生活中说的"并且"的意思

如果两个变量的布尔值都为false的话,结果为左边变量的值

如果两个变量的布尔值,一个是true一个是false的话,结果为false的变量值

如果两个变量的布尔值都为true的话,结果为右边变量的值

注意:计算的结果无论是什么类型,转换为布尔类型时结果只能是true或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(1 && "一花一世界");// 调用结果为 一花一世界
console.log(false && 0);// 调用结果为 false
逻辑或运算符

将逻辑与运算符的两个操作数,转换为布尔类型

逻辑或相当于生活中说的"或者"的意思

如果两个变量的布尔值都为false的话,结果为右边变量的值

如果两个变量的布尔值都为true的话,结果为左边变量的值

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

当左边的操作数为false时,结果为右边操作数的值

示例代码:

console.log(true || true);// 调用结果为 true
console.log(true || false);// 调用结果为 true
console.log(false || true);// 调用结果为 true
console.log(false || false);// 调用结果为 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("" || "");// 调用结果为 ""
逻辑非运算符

逻辑非 - 语法 : (!)

逻辑非相当于生活中说的"不是"的意思

逻辑非就是取相反

如果当前值为true(对的)得到结果就是false(错的)

备注:null,0,NaN,空字符串 ("") 和undefined都是false(错的)

赋值扩展运算符

赋值扩展运算符 - 就是简写形式

优点:

代码量减少

性能更好

示例代码对比:

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

b += c;
console.log(b);// 30
条件运算符

条件运算符的语法格式

条件表达式 ? 为true的结果 : 为false的结果

问号 (?)后是为true的结果 - 可以是任何类型 - 比如: 字符串,布尔值,数字值等等

冒号 (:)后是为false的结果 - 可以是任何类型 - 比如: 字符串,布尔值,数字值等等

示例代码:

var result = 10 > 20 ? "对" : "错";
console.log(result);// 调用结果为 错

var score = 95;
score > 90 ? console.log("帅") : console.log("丑");// 调用结果为 帅
嵌套条件运算符

嵌套条件运算符

优点 - 扩展了条件运算符本身的计算能力

缺点

可读性比较差

性能随着嵌套的层级越多越差

建议 - 最多不要超过三层嵌套

示例代码:

var result = score > 90 ? "很帅" : score > 80 ? "一般帅" :  "很丑";
console.log(result);

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

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

相关文章

  • JavaScript个人分享

    摘要:的基础语法的语法是区分大小写的注意在中是区分大小写的变量名称不能是中文代码示例一花一世界控制台调用效果图语法中的空格与换行注意并不是的语法内容可有可无的建议使用因为这样会使代码看的更清晰利于阅读代码示例代码一花一世界中的分号可选项语法并 JavaScript的基础语法: JavaScript的语法是区分大小写的 注意: 在JavaScript中是区分大小写的 变量名称不能是中文 代...

    JasonZhang 评论0 收藏0
  • 前端_JavaScript

    摘要:为此决定自研一个富文本编辑器。例如当要转化的对象有环存在时子节点属性赋值了父节点的引用,为了关于函数式编程的思考作者李英杰,美团金融前端团队成员。只有正确使用作用域,才能使用优秀的设计模式,帮助你规避副作用。 JavaScript 专题之惰性函数 JavaScript 专题系列第十五篇,讲解惰性函数 需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意...

    Benedict Evans 评论0 收藏0
  • JavaScript中的面向对象个人分享

    摘要:面向对象面向对象的概念所谓面向对象就用抽象方式创建基于显示世界模型的一种变成模式面向对象编程可以看做是使用一系列对象互相协作的软件设计备注面向对象全称简称面向对象编程的主要三个特征是封装所谓封装就是按要求使用得到对象的结果相关数据用于存储 面向对象 面向对象的概念 所谓面向对象就用抽象方式创建基于显示世界模型的一种变成模式,面向对象编程可以看做是使用一系列对象互相协作的软件设计 备注...

    DirtyMind 评论0 收藏0
  • 阿里云前端周刊 - 第 28 期

    摘要:源码速览在近期发布了。本人就职于腾讯直播前端开发,感觉直播能够尝试的领域真的太多太多,但是,在这块一直是一个痛点。前端中的计算机领域的通常认为起源于。 推荐 1. 现代 JavaScript 语法清单 https://github.com/mbeaudru/m... 本文涉及到了现代项目开发中常用的 JavaScript 语法使用以及示例代码的清单 ;本指南并不打算从零介绍 JavaS...

    stonezhu 评论0 收藏0
  • 阿里云前端周刊 - 第 28 期

    摘要:源码速览在近期发布了。本人就职于腾讯直播前端开发,感觉直播能够尝试的领域真的太多太多,但是,在这块一直是一个痛点。前端中的计算机领域的通常认为起源于。 推荐 1. 现代 JavaScript 语法清单 https://github.com/mbeaudru/m... 本文涉及到了现代项目开发中常用的 JavaScript 语法使用以及示例代码的清单 ;本指南并不打算从零介绍 JavaS...

    maxmin 评论0 收藏0

发表评论

0条评论

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