JS-6-运算符

16-JavaScript算数运算符注意点
  1. 加法运算的注意点:
  • 1.1 任何非数值类型的数据在参与加法运算之前, 都会被自动的转换成数值类型之后, 再参与运算;
  • 1.2 任何数据和NaN进行运算, 结果都是NaN;
  • 1.3 任何数据和字符串相加, 都会被先转换成字符串之后再运算;
  • 1.4 字符串相加的本质就是字符串拼接;
  1. 减法运算的注意点:
  • 1.1 任何非数值类型的数据在参与加法运算之前, 都会被自动的转换成数值类型之后, 再参与运算;
  • 1.2 任何数据和NaN进行运算, 结果都是NaN;
  • 1.3 任何数据和字符串相减, 都会先把字符串转换成数值类型之后再运算;
  1. 乘法和除法运算的注意点:
  • 和减法运算的注意点一模一样;
  1. 取模(取余)运算注意点:
    格式: m%n = 余数;
  • 4.1 如果m>n的, 那么就正常取余 ;
  • 4.2 如果m<n的, 那么结果就是m ;
  • 4.3 如果n是0, 那么结果就是NaN;
  • 4.4 取余运算结果的正负性, 取决于m而不是n;

1.什么是赋值运算符?

赋值运算符就是将等号右边的值存储到等号左边的变量中;

1.1 简单类型的赋值运算符:=

1.2 复杂类型的赋值运算符:+= -= *= /= %=

2.赋值运算符的优先级和结合性
  • 赋值运算符的优先级低于算数运算符

  • 赋值运算符的结合性是右结合性(从右至左的计算)

  • 赋值运算符的左边只能放变量, 不能放常量

let res = 5;     
// 会将等号左边存储的值取出来和右边进行指定的运算, 运算完毕之后再将运算的结果存储到左边       
res += 5; // 相当于 res = res + 5;

1.什么是自增自减运算符?
  • 自增运算符: ++
  • 自减运算符: - -
2.自增自减运算符的作用
  • 自增运算符: 可以快速的对一个变量中保存的数据进行+1操作;

  • 自减运算符: 可以快速的对一个变量中保存的数据进行-1操作;

3.自增和自减写在变量的前面和后面的区别?
  • 写在变量的后面, 表示变量先参与其它的运算, 然后再自增或者自减;

  • 写在变量的前面, 表示变量先自增或者自减, 然后再参与其它的运算;

let num = 1;
     
// let res = num++ + 1; // let res = num + 1; num++;
    
let res = ++num + 1;  // num++;
     
console.log(res); // 2  3

注意点:

1.自增自减运算符只能出现在变量的前面或者后面, 不能出现在常量或者表达式的前面或者后面;

2.什么是表达式?
表达式就是用运算符连接在一起有意义有结果的语句, 我们就称之为表达式;

1 + 1; 表达式
a * 5; 表达式

3.在企业开发中自增自减运算符最好单独出现, 不要出现在表达式中;


1.什么是关系运算符?

. > < >= <= == != === !==

2.关系运算符的返回值

1.只有两个, 要么是true, 要么是false;

2.如果关系成立, 就返回true;

3.如果关系不成立, 就返回false;

3.关系运算符的注意点
  • 3.1 对于非数值类型的数据, 会先转换成数值类型, 再进行判断;

  • 3.2 对于关系运算符来说, 任何数据和NaN进行比较, 返回值都是false;

  • 3.3 如果参与比较的都是字符串类型, 那么不会转换成数值类型再比较, 而是直接比较字符对应的Unicode编码;

    如果字符串中有多个字符, 那么会从左至右的依次比较, 直到条件不满足为止;

    let res = "ab" > "ac";

  • 3.4 特殊比较的结果

let res = null == 0; // false
   
let res = undefined == 0; // false
     
let res = null == undefined; // true

注:在企业开发中千万不要通过==来判断某一个数据是否是NaN,如果想判断某一个数据是否是NaN那么可以通过isNaN来进行判断;

let num = NaN;     
let res = isNaN(num);       
console.log(res);

21-JavaScript关系运算符2
1. 区别点:

=== 和 !== ,会同时判断取值和数据类型;
==和 != ,只会判断取值;

// let res = 123 != "123"; //  false,取值是相等的;
       
let res = 123 !== "123"; // true,类型不同;
   
console.log(res);
2. 关系运算符的结合性和优先级:
  • 关系运算符都是左结合性(从左至右的运算);

  • 关系运算符中 > < >= <= 的优先级高于 == != === !==;

  • 注意点: 正式因为关系运算符是左结合性, 所以不能利用关系运算符来判断区间;

let res = 10 > 5 > 3; // let res = true > 3; let res = 1 > 3;


22-JavaScript逻辑运算符
1.逻辑运算符的优先级和结合性
  • 逻辑运算符的结合性是左结合性(从左至右的运算);

  • 在逻辑运算中&&的优先级高于||;

2.逻辑运算符的注意点
  • 2.1 在逻辑运算中如果不是布尔类型, 那么会先转换成布尔类型, 再参与其它的运算;

  • 2.2 在逻辑与运算中, 如果参与运算的不是布尔类型, 返回值有一个特点;

格式: 条件A && 条件B

如果条件A不成立, 那么就返回条件A;

如果条件A成立, 无论条件B是否成立, 都会返回条件B;

// 如果条件A不成立, 那么就返回条件A
 let res = 0 && 123; // 0
// let res = null && 123; // null
       
// 如果条件A成立, 无论条件B是否成立, 都会返回条件B
// let res = 1 && 123; // 123       
let res = 1 && null; //null

console.log(res);

2.3在逻辑或运算中, 如果参与运算的不是布尔类型, 返回值有一个特点

格式: 条件A || 条件B

如果条件A成立, 那么就返回条件A;
如果条件A不成立, 无论条件B是否成立, 都会返回条件B;

// 如果条件A成立, 那么就返回条件A       
// let res = 666 || 0; // 666
     
// 如果条件A不成立, 无论条件B是否成立, 都会返回条件B      
// let res = 0 || 123; //123       
let res = 0 || null; //null
       
console.log(res);
2.4在逻辑与运算中,有一个逻辑短路现象

格式: 条件A && 条件B

由于逻辑与运算的规则是一假则假, 所以只要条件A是假, 那么条件B就不会运算;

2.5在逻辑或运算中,有一个逻辑短路现象

格式: 条件A || 条件B

由于逻辑或运算的规则是一真则真, 所以只要条件A是真, 那么条件B就不会运算;


23-JavaScript逗号和三目运算符
1.逗号运算符 ,

在JavaScript中逗号运算符一般用于简化代码

2.逗号运算符优先级和结合性
  • 逗号运算符的结合性是左结合性(从左至右的运算);

  • 逗号运算符的优先级是所有运算符中最低的;

3.逗号运算符也是一个运算符, 所以也有运算符结果

逗号运算符的运算符结果就是最后一个表达式的结果:

表达式1, 表达式2, 表达式3, …;


1.什么是三目运算符

三目运算符又称之为条件运算符

2.三目运算符格式

条件表达式 ? 结果A : 结果B;

  • 在三目运算符中当条件为真的时候, 就会返回结果A ;

  • 在三目运算符中当条件为假的时候, 就会返回结果B;

3.三目运算符注意点

在三目运算符中?:不能单独出现, 要么一起出现, 要么一起不出现;

例题:

let a = 5;
     
//           6  +  7       
let res1 = ++a + ++a;      
console.log(res1); // 13
       
//         5   +  6      
let res2 = a++ + a++;
       
console.log(res2);// 11

-End

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值