Javascript运算符知多少
文章导航
- 算数运算符
- 多功能加号 +
- 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。
减号 -
- 数值之间得差值运算
- 如果不是数值之间得运算会得出
NaN
。NaN (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
逻辑运算符
逻辑运算符有三种:&&
||
!
逻辑表达式是会返回数据的(不是返回布尔值):
&&
返回第一个为false
的表达式的值 (如果所有表达式都为true
,则返回最后一个表达式的值)
true && 0 && 5 //0
3-2 && 4 && 5 //5
&&
还可以做短路语句
res.data.length > 0 && console.log(data)
||
返回第一个为true
的表达式的值 (同样,如果所有表达式都为false
,则返回最后一个表达式的值)
||
可以在取值时去有效值或设置默认值
function formatData(date){date = date || new Date() //如果date没有值就设为当前日期...
}
!
取反
下面的这 6 个值 undefined
, null
, NaN
, ""
, 0
, false
转换为布尔值是 false
,其他值则为 true
注意: 条件语句就是将 &&
||
!
返回的数据转化为 Boolean
值
Javascript运算符知多少相关推荐
- JavaScript运算符:递增递减运算符前置和后置的区别
从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...
- JavaScript强化教程——JavaScript 运算符
本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 -- JavaScript 运算符 JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算 ...
- javascript运算符_JavaScript中的按位运算符
javascript运算符 JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some str ...
- javascript运算符_JavaScript中!=或!==运算符之间的区别
javascript运算符 We can perceive the differences between these two operators as the same difference tha ...
- javascript 运算符优先级
JavaScript 运算符优先级(从高到低) https://github.com/xhlwill/blog/issues/16 今天把js函数转换为python 函数时,发现在js运算符优先级这边 ...
- 【转】进阶 JavaScript 必知的 33 个点【进阶必备】
转自:进阶 JavaScript 必知的 33 个点[进阶必备] 进阶 JavaScript 必知的 33 个点[进阶必备] Original 前端小菜鸡之菜鸡互啄 前端开发爱好者 2022-04-1 ...
- JavaScript运算符的优先级(案例讲解)
先来看看这道题... 下边代码输出的结果是( ) var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' ...
- Like Sunday, Like Rain - JavaScript运算符优先级
"JavaScript⾥的很多奇技淫巧,都来⾃于对运算符的灵活使⽤." 说到运算符的优先级,我们往往会想到一张见过无数次却从来没背下来的表.因为没背下来, 所以往往会认为它很简单, ...
- javascript运算符_双重否定运算符是什么! 用JavaScript做?
javascript运算符 Suppose you have an expression, which gives you a result. 假设您有一个表达式,它给您一个结果. You want ...
最新文章
- PHP中include()与require()的区别说明
- Android GridView的使用方法
- EduCoder Linux文件/目录高级管理三
- 《Python游戏编程入门》——1.2 初识Python
- 判断网页是否为微信内置浏览器打开?
- python生成器的使用_应该如何以及为什么使用Python生成器
- numpy中的*(矩阵对应位置元素相乘)和np.dot(矩阵执行矩阵乘法运算)
- opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
- python正则表达式案例_Python正则表达式使用经典实例
- mfc 子窗体 按钮不触发_python项目实战:pyQT5 实现窗体之间传值
- java定时器quartz
- markdown引入代码_Markdown 插入代码
- Android四大组件之广播
- layui调用相册功能和点击按钮调用相册功能
- 如何搭建个人私有云盘
- fly.js 的二次封装
- 《Dreamweaver CS6 完全自学教程》笔记 第十四章:使用 CSS 设计网页
- 利用html5画出五角星画出星空
- Stata画出数据的时间序列折线图和拟合趋势线
- lt19264a+c语言程序,可以直接显示汉字的19264液晶驱动C语言程序