文章导航

  • 算数运算符
    • 多功能加号 +
      • 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. PHP中include()与require()的区别说明
  2. Android GridView的使用方法
  3. EduCoder Linux文件/目录高级管理三
  4. 《Python游戏编程入门》——1.2 初识Python
  5. 判断网页是否为微信内置浏览器打开?
  6. python生成器的使用_应该如何以及为什么使用Python生成器
  7. numpy中的*(矩阵对应位置元素相乘)和np.dot(矩阵执行矩阵乘法运算)
  8. opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
  9. python正则表达式案例_Python正则表达式使用经典实例
  10. mfc 子窗体 按钮不触发_python项目实战:pyQT5 实现窗体之间传值
  11. java定时器quartz
  12. markdown引入代码_Markdown 插入代码
  13. Android四大组件之广播
  14. layui调用相册功能和点击按钮调用相册功能
  15. 如何搭建个人私有云盘
  16. fly.js 的二次封装
  17. 《Dreamweaver CS6 完全自学教程》笔记 第十四章:使用 CSS 设计网页
  18. 利用html5画出五角星画出星空
  19. Stata画出数据的时间序列折线图和拟合趋势线
  20. lt19264a+c语言程序,可以直接显示汉字的19264液晶驱动C语言程序

热门文章

  1. 一份内核重载代码的学习笔记
  2. JDBC连接数据库(详细步骤)
  3. 微信公众号查题接口API
  4. 计算机算法-线性寻找第k小(大)元素(Top K)BFPRT算法
  5. 西门子、三菱、欧姆龙等PLC不编写程序实现ModbusTCP从站功能的案例
  6. Pandas系列(五):可视化绘图
  7. java开发环境介绍
  8. 易源数据_易源数据-菜谱大全【最新版】_数据API_数据应用_电商-云市场-阿里云...
  9. ssdb和mysql_SSDB 数据库
  10. 一个人可以有多少个朋友