文章导航

  • 算数运算符
    • 多功能加号 +
      • 1 数字运算
      • 2 字符串连接
      • 3 相关符号 ++/+=
    • 减号 -
    • 乘号 * 与除号 /
    • 取模 (取余) %
    • 运算符优先级
  • 比较运算符
  • 逻辑运算符

算数运算符

多功能加号 +

1 数字运算

最基本的功能

var sum = 1 + 2; //3

2 字符串连接

var str = 'hello' + 'world'; //helloworld

字符串加上任何的数据类型都会是一个字符串 (匿名对象略有不同)

var str1 = 1 + "2"; //"12"
var str2 = NaN + "str"; //"NaNstr"
var str3 = undefined + "str"; //"undefinedstr"
var str4 = null + "str"; //"nullstr"
var str5 = [1,2,3] + "str"; //"1,2,3str"var obj = {name: "lee"}
var str6 = obj+ "str"; // "[object object]str"// 但是匿名对象结果不同
var str7 = {name: "lee"} + "str"; // NaN
var str8 = "str" + {name: "lee"}; // "str[object Object]"

3 相关符号 ++/+=

  • a++ 等价于 a = a + 1,也等价于 a += 1,是变量自增1的简便写法;
  • += 则是自增任意值的简便写法
    注意 a++++a
  • a++ 是后加,可以理解为先用后加,++a 反之,举个例子
// 可以复制这段代码到控制台查看结果
var a = 1;
console.log(a++) // 1
var sum = a++ +3 + ++a;
console.log(sum) // 9

如何理解:
① 第一次输出a时,a = 1,输出值后a自增得a=2
② sum 运算时,a=2 先加 3 得到5,然后自增得 a=3;++a 先进行自增得 a = 4,再加前面的结果 5 得 9。

减号 -

  • 数值之间得差值运算
  • 如果不是数值之间得运算会得出 NaNNaN (Not a number) 是一个 number 类型得数据,他表示不是一个数。更有意思的是 NaN == NaN 返回的是 false
  • --++ 类似
  • a-=n 等价于 a = a-n (a, n 代表一个值)

乘号 * 与除号 /

a*=n 等价于 a = a*n (a, n 代表一个值)
a/=n 等价于 a = a/n (a, n 代表一个值)

取模 (取余) %

返回两者作商得余数

5%3 //2
-5%3 //-2

a%=n 等价于 a = a%n (a, n 代表一个值)

运算符优先级

  • + - * / 遵循数学运算优先级
  • () 优先级最高
  • = 优先级最低

比较运算符

> < >= <= == != (还有 === !== )

  • 比较数值的大小
  • 英文字母、符号之间比较的是 ASCII
  • 中文字符之间比较的是 Unicode

比较运算符的返回结果为 Boolean 值

10 > 8 //true
"10" > "8" //false, 字符串之间比较看的是ASCII,从首位开始比较
"10" > 8 //true, 先将"10" 转成数字"ok" > 9 //false
"ok" < 9 //false, "ok"不能转成数字,所以只能是 NaN

NaN不等于任何值,包括NaN

NaN == NaN //false

逻辑运算符

逻辑运算符有三种:&& || !

逻辑表达式是会返回数据的(不是返回布尔值):

  1. && 返回第一个为 false 的表达式的值 (如果所有表达式都为 true,则返回最后一个表达式的值)
true && 0 && 5 //0
3-2 && 4 && 5 //5

&& 还可以做短路语句

res.data.length > 0 && console.log(data)
  1. || 返回第一个为 true 的表达式的值 (同样,如果所有表达式都为 false,则返回最后一个表达式的值)
    || 可以在取值时去有效值或设置默认值
function formatData(date){date = date || new Date() //如果date没有值就设为当前日期...
}
  1. ! 取反

下面的这 6 个值 undefined, null, NaN, "", 0, false 转换为布尔值是 false,其他值则为 true

注意: 条件语句就是将 && || ! 返回的数据转化为 Boolean

Javascript运算符知多少相关推荐

  1. JavaScript运算符:递增递减运算符前置和后置的区别

    从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...

  2. JavaScript强化教程——JavaScript 运算符

    本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 -- JavaScript 运算符  JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算 ...

  3. javascript运算符_JavaScript中的按位运算符

    javascript运算符 JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some str ...

  4. javascript运算符_JavaScript中!=或!==运算符之间的区别

    javascript运算符 We can perceive the differences between these two operators as the same difference tha ...

  5. javascript 运算符优先级

    JavaScript 运算符优先级(从高到低) https://github.com/xhlwill/blog/issues/16 今天把js函数转换为python 函数时,发现在js运算符优先级这边 ...

  6. 【转】进阶 JavaScript 必知的 33 个点【进阶必备】

    转自:进阶 JavaScript 必知的 33 个点[进阶必备] 进阶 JavaScript 必知的 33 个点[进阶必备] Original 前端小菜鸡之菜鸡互啄 前端开发爱好者 2022-04-1 ...

  7. JavaScript运算符的优先级(案例讲解)

    先来看看这道题... 下边代码输出的结果是( ) var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' ...

  8. Like Sunday, Like Rain - JavaScript运算符优先级

    "JavaScript⾥的很多奇技淫巧,都来⾃于对运算符的灵活使⽤." 说到运算符的优先级,我们往往会想到一张见过无数次却从来没背下来的表.因为没背下来, 所以往往会认为它很简单, ...

  9. javascript运算符_双重否定运算符是什么! 用JavaScript做?

    javascript运算符 Suppose you have an expression, which gives you a result. 假设您有一个表达式,它给您一个结果. You want ...

最新文章

  1. RDKit:化合物亚结构(Substructure)搜索(基于Python3)
  2. sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
  3. minhash算法检索相似文本_文本去重算法:Minhash/Simhash/Klongsent
  4. 苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
  5. pytorch loss function 总结
  6. 深入理解分布式技术 - 实践分库分表
  7. Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略
  8. 匹兹堡大学申请条件计算机科学,匹兹堡大学cs
  9. Linux 利用yum源安装subversion(svn)客户端
  10. PowerTip of the Day-How Much RAM Do You Have?
  11. 在IIS 5.1 或IIS6 中配置PHP 的FastCGI模式
  12. 在matplotlib中改变tick(标签)的字体大小
  13. (紫书,感谢作者)第7章暴力求解法
  14. 写出更易懂的代码(一)
  15. ue4 迁移模型_UE4换装系统(合并骨骼模型)
  16. MySQL客户端工具的选择
  17. 离散Hopfield神经网络的联想记忆——数字识别
  18. 系统思考:VUCA时代下的我们应该怎么做?
  19. Python学习笔记 -一到五
  20. via浏览器 html代码,网页黑色加强的css代码

热门文章

  1. 2021考研数学2线形代数
  2. 在线办公软件测试题,办公软件office excel测试题及其答案.doc
  3. 【Python】推导式(列表推导式、元组推导式、字典推导式、集合推导式)详解
  4. “HP LaserJet M1319f 激光一体机”在 Windows XP 下实现共享打印
  5. C语言基础及STM32基础
  6. 音乐制作软件中文完整版-Nuendo 4 v4.3 WiN
  7. 如何维护知乎口碑?小马识途解析知乎口碑优化的技巧
  8. python设计2048小游戏_使用graphics.py实现2048小游戏
  9. android ios 音频寻,多媒体-iOS与Android的音频文件互通
  10. xy苹果助手未受信任_全网难找的iOS苹果版百度网盘SVP来了