[华为云在线课程][JavaScript数据类型和运算符及流程控制][学习笔记][第2章]
【摘要】 第2章,JavaScript的运算符 2.1,JavaScript算术运算符 加法 + 运算符:加法可以对两个值进行加法运算,并将结果返回对非number类型的值进行运算的时候,会先把其转换成number类型的值,然后再运算任何数和NAN做运算时,转换的值都是NAN与null类型值相加,null转换为0任何类型和字符串做加法运算都会将其转化成字符串,然后再进行字符串拼接var x1 = 1...
第2章,JavaScript的运算符
2.1,JavaScript算术运算符
加法 + 运算符:
- 加法可以对两个值进行加法运算,并将结果返回
- 对非number类型的值进行运算的时候,会先把其转换成number类型的值,然后再运算
- 任何数和NAN做运算时,转换的值都是NAN
- 与null类型值相加,null转换为0
- 任何类型和字符串做加法运算都会将其转化成字符串,然后再进行字符串拼接
var x1 = 123;
var result = x1 + 1;
console.log(result);//124
console.log(typeof result);//number
var x2 = true;
x2 = x2 + 2;
console.log(x2);//3
var x3 = false;
x3 = x3 + 2;
console.log(x3);//2
var x4 = 1;
x4 = x4 + NaN;
console.log(x4);//NaN
var x5 = false;
x5 = x5 + NaN;
console.log(x5);//NaN
var x6 = null;
x6 = x6 + "123";
console.log(x6);//null123
减法 - 运算符:
- 减法可以对两个值进行减法运算,并返回值
- 减法运算都把数据类型转换成Number进行运算
var a1 = 10 - "3";
console.log(a1);//7
var a2 = 10 - true;
console.log(a2);//9
var a3 = 10 - false;
console.log(a3);//10
乘法 * 运算符:
- 乘法对两个值进行乘法运算,并返回值
- 对非number类型的值进行运算的时候,会先把其转换成number类型的值
- 任何值有关NaN的运算返回的都是NaN
var a1 = 10 * "3";
console.log(a1);//30
var a2 = 10 * undefined;
console.log(a2);//NaN
var a3 = 10 * NaN;
console.log(a3);//NaN
除法 / 运算符
- 除法对数据实现除法运算,并返回值
- 对非number类型的值进行运算的时候,会先把其转换成number类型的值
- 任何值有关NaN的运算返回的都是NaN
var a1 = 10 / "2";
console.log(a1);//5
var a2 = "1" / undefined;
console.log(a2);//NaN
var a3 = 0 / NaN;
console.log(a3);//NaN
取模 % 运算符:
- 取模运算就是求两数相除的余数
var a1 = 10 % "4";
console.log(a1);//2
var a2 = 4 % true
console.log(a2);//0
自增 ++ 运算符:
- 前置型:将操作符置于变量前
- 后置型:将操作符置于变量后
- 前置型是在进行算术运算之前再进行自增运算
- 后置型是在进行算术运算之后再进行自增运算
var a1 = 5;
console.log(++a1);//6
var a2 = 5;
console.log(a2++);//5
自减 – 运算符:
- 前置型:将操作符置于变量前
- 后置型:将操作符置于变量后
- 前置型是在进行算术运算之前再进行自减运算
- 后置型是在进行算术运算之后再进行自减运算
var a1 = 5;
console.log(--a1);//4
var a2 = 5;
console.log(a2--);//5
数值运算符:
- number类型:正号不会对数值产生影响
- 对于任意非number类型的值,会先转换成number类型的值,然后再进行运算
var a = "123";
a = +a;
console.log(a);//123
console.log(typeof a);//number
负数值运算符:
- number类型:负号可以对符号进行取反
- 对于非number类型的值,会先转换成number类型的值,然后再进行运算,变号正值变为负值,负值变为正值
var a1 = "123";
a1 = -a1;
console.log(a1);//-123
console.log(typeof a1);//number
var a2 = true;
a2 = -a2;
console.log(a2);//-1
console.log(typeof a2);//number
2.2,JavaScript赋值运算符
- JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算:
- 简单赋值运算是将赋值运算符右边表达式的值保存到左边的变量中
- 复合赋值运算混合了其他操作(例如:算术运算操作)和赋值操作
运算符 | 描述 | 示例 |
---|---|---|
= | 将右边表达式的值赋给左边的变量 | username=“mr” |
+= | 将运算符左边的变量加上右边表达式的值赋给左边的变量 | a+=b//相当于a=a+b |
-= | 将运算符左边的变量减去右边表达式的值赋给左边的变量 | a-=b//相当于a=a-b |
*= | 将运算符左边的变量乘以右边表达式的值赋给左边的变量 | a*=b//相当于a=a*b |
/= | 将运算符左边的变量除以右边表达式的值赋给左边的变量 | a/=b//相当于a=a/b |
%= | 将运算符左边的变量用右边表达式的值求模,并将结果赋给左边的变量 | a%=b//相当于a=a%b |
2.3,JavaScript比较运算符
> 大于运算符
console.log(10 > 5);//true
< 小于运算符
console.log(10 < 5);//false
<= 小于等于运算符
console.log(10 <= 11);//true
> = 大于等于运算符
console.log(10 >= 10);//true
== 相等运算符
console.log(10 == 10);//true
=== 严格相等运算符
console.log(10 === "10");//false
!= 不相等运算符
console.log(1 != "0");//true
!== 严格不相等运算符
console.log(1 !== "0");//true
2.4,JavaScript逻辑运算符
- ! 非运算符
- 对布尔值进行 ! 非运算,所谓非运算就是一个布尔值进行取反操作
var a1 = true;
a1 = !a1;
console.log(a1);//false
var a2 = false;
a2 = !!false;
console.log(a2);//false
var a3 = "111";
a3 = !!a3;
console.log(a3);//true
console.log(typeof a3);//boolean
console.log(!undefined);//true
console.log(!null);//true
console.log(!false);//true
console.log(!0);//true
console.log(!'');//true
console.log(NaN);//true
- && 与运算符
- && 可以对符号两侧的值进行"与运算",并返回结果
- 关联两个条件,两个条件都为真的时候,那么整个表达式的结果才为真
- 短路 && 与:
- 如果第一个值为false,则不会看第二个值,表达式的值就是false
- 如果第一个true时,则继续判断第二个值,并且以第二个做为表达式的值
console.log(true && true);//true
console.log(true && false);//false
var a1 = 10;
a1 > 11 && ++a1;
console.log(a1);//10
- || 或运算符
- || 可以对符号两边的值进行或运算并返回结果
- 关联两个条件,两个条件中,只要有一个为真,那么整个表达式就为真
- 短路或||:
- 如果第一个值为true,则不会检查第二个,整个表达式的值就是true
- 如果第一个值为false,才会检查第二个,并且以第二个值作为整个表达式的值。
console.log(true || false);//true
console.log(false || false);//false
var a1 = 10;
a1 > 9 || ++a1;
console.log(a1);//10
2.5,JavaScript三目运算符
- 表示的三元运算符需要三个操作数:
- 语法是
条件?结果1:结果2
,满足条件时取结果1,否则取结果2
var b = 5;
var result1 = b == 5 ? "true" : "false";
console.log(result1);//true
var result2 = b != 5 ? "true" : "false";
console.log(result2);//false
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)