【JavaScript】核心语法之运算符

运算符
一。算数运算符
1.算数运算符;

  • 运算中一个或二个是字符串,js会自动转换为数字,来计算,最后结果是为NaN

任何一个和NaN计算后都是结果都是NaN

布尔值false和true都会转换为0和1来计算

var num = 100;
var str1 = '爱新觉罗';
var str2 = '200';
var boo = true;

var result1 = num + 300;
console.log(result1);// 400

var result2 = str1 + 300;
console.log(result2);
console.log(typeof result2);// string

var result3 = str2 + 300;
console.log(result3);// 200300
// 如布尔类型进行加法计算;将布尔类型转换为数字值,再进行加法计算
var result4 = boo + 300;
console.log(result4);// 301

// 减法;先将其他类型转换为number类型,再进行计算
var result5 = num - 100;
console.log(result5);// 0
// 如字符串进行减法计算;则字符串类型转换为数字值,再进行减法
var result6 = str1 - 100;
console.log(result6);// NaN

var result7 = str2 - 100;
console.log(result7);// 100
// 如果布尔类型进行减法计算;则布尔类型转换为数字值,再进行减法
var result8 = boo - 100;
console.log(result8);// -99

// 除法;一旦零是被除数;则无穷大

2.加法运算符;

  • 如布尔类型进行加法计算;将布尔类型转换为数字值,再进行加法计算
var num = 100;
var str1 = '爱新觉罗';
var str2 = '200';
var boo = true;

var result1 = num + 300;
console.log(result1);// 400

var result2 = str1 + 300;
console.log(result2);
console.log(typeof result2);// string

var result3 = str2 + 300;
console.log(result3);// 200300
// 如布尔类型进行加法计算;将布尔类型转换为数字值,再进行加法计算
var result4 = boo + 300;
console.log(result4);// 301

3.减法运算符;

  • 减法;先将其他类型转换为number类型,再进行计算
var num = 100;
var str1 = '爱新觉罗';
var str2 = '200';
var boo = true;
var result5 = num - 100;
console.log(result5);// 0
// 如字符串进行减法计算;则字符串类型转换为数字值,再进行减法
var result6 = str1 - 100;
console.log(result6);// NaN

var result7 = str2 - 100;
console.log(result7);// 100
// 如果布尔类型进行减法计算;则布尔类型转换为数字值,再进行减法
var result8 = boo - 100;
console.log(result8);// -99

4.求余运算符;

  • 用于计算两个运算数整除后的余数
console.log(100 % 3);// 1
//求余运算符;获取除法之后余数
console.log(8 % 4);// 0
console.log(100 % -3);// 1
//求余结果是正数还是负数,与第一操作数是正数或负数有关(与第二个操作数无关)
console.log(8 % -4);// 0
console.log(-100 % 3);// -1
console.log(-8 % 4);// 0
console.log(-100 % -3);// -1
console.log('爱新觉罗' % 2);// NaN
//与减法的情况保持一致

5.自增运算符;

  • 前置自增运算符;++变量名先自增,再赋值;后置自增运算符;变量名++先赋值,再自增
var num = 10;
console.log(num);//10

var result = ++num;
console.log(result);//11
console.log(num);//11

var result = num++;
console.log(result);//10
console.log(num);//11
/*自增运算符;操作变量的值
    每自增一次(+1)
  前置自增运算符;++变量名
    先自增,再赋值
  后置自增运算符;变量名++
    先赋值,再自增
 */

二。比较运算符
1.比较运算符;

  • 检查两个运算数的值是否相等和大小
console.log(10 > 11);//false
console.log(11 > 10);//true
console.log(10 >= 10);//true
//number类型
console.log(true > false);//true
console.log(true > 0);//true
//boolean类型;将boolean类型转换为number类型
console.log('a'< 'b');//true
console.log('a'> 'A');//true
console.log('abc' > 'cba');//false
console.log('abc' > 'acd');//false
/*string类型;1英文;2中文
* */
console.log('我' > '你');//true

2.相等与不等;

  • 以相等(==)和(!=)运算符只比较操作数的值,不比较类型
console.log(10 == 10);// true
console.log(10 == 11);// false
// 1.number类型
console.log(true == true);// true
console.log(true == false);// false
// 2.boolean类型
console.log(true == 1);// true


console.log('a' == 'a');// true
console.log('a' == 'b');// false
// 3.string类型
console.log('100' == 100);// true
// 只比较值,而不比较类型
/*
    相等比较运算符
    * 与赋值运算符的区别
    * 赋值运算符(=)
    * 相等比较运算符(==)
    不等比较运算符
    * 符号是'!='
    * 不是'<>'
 */

3.全等与不全等;

  • 以相等(===)和(!==)运算符只比较操作数的值,比较类型
console.log(10 === 10);// true
console.log('10' === 10);// false
console.log('10' == 10);// true
//全等和不全等;不仅比较值,比较类型

4.isNaN()函数;

  • 用于判断参数是否是NaN(不是数字值)
console.log(isNaN(100));
console.log(isNaN(Number('爱新觉罗')));
/*isNaN()函数
* 作用;判断值是否为NaN
* true;表示值为NaN(不是个数值)
* false;表示值为NaN(不是个数值)
* */
var result = 100/0;
console.log(result);// Infinity
console.log(isFinite(result));// false
/*isFinite()函数
* 作用;判断值是否无穷大
* false;表示值是无穷大
* true;表示值是有限数值
*/

三。逻辑运算符
1.逻辑运算符;
以&&逻辑与运算符如果两个运算符,都是true,则返回true
以||逻辑与运算符如果两个运算符,其中任何一个true,则返回true

2.逻辑与运算符
以&&逻辑与运算符如果两个运算符,都是true,则返回true

console.log(true && true);// true
console.log(true && false);// false
console.log(false && true);// false
console.log(false && false);// false
/*
    将逻辑与运算符两个操作数,转换为布尔类型
    * 当左边操作数为true,结果为右边操作数的值
    * 当左边操作数为false,结果为左边操作数的值
 */
console.log(100 && 1);// 1
console.log(1 && 0);// 0
console.log(0 && 1);// 0
console.log(0 && 0);// 0

console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);

console.log('爱新觉罗' && '爱新觉罗');// 爱新觉罗
console.log('爱新觉罗' && '');// ''
console.log('' && '爱新觉罗');// ''
console.log('' && '');// ''

console.log('爱新觉罗' && 1);// 1
console.log(false && 0);// false

3.逻辑或运算符;

  • 以&&逻辑与运算符如果两个运算符,都是true,则返回true

console.log(true || true);// true
console.log(true || false);// true
console.log(false || true);// true
console.log(false || false);// false
/*
    将逻辑与运算符两个操作数,转换为布尔类型
    * 当左边操作数为true时,结果为左边操作数的值
    * 当左边操作数为false时,结果为右边操作数的值
 */
console.log(100 || 1);// 100
console.log(1 || 0);// 1
console.log(0 || 1);// 1
console.log(0 || 0);// 0

console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);

console.log('爱新觉罗' || '爱新觉罗');// 爱新觉罗
console.log('爱新觉罗' || '');// 爱新觉罗
console.log('' || '爱新觉罗');// 爱新觉罗
console.log('' || '');// ''

四。赋值运算符;

1.赋值扩展运算符;

  • 就是赋值运算符和算数之间配合使用,也是一种简写形式
var b = 10, c = 20;
var a = b + c;
console.log(a);// 30

// b = b + c;
// 等价写法;赋值扩展运算符性能要比赋值运算符更高
b += c;
console.log(b);// 30

五。条件运算符;
1.条件运算符;

  • 判断表达式是真和假,并判断结果执行其中2个给以指令得一个
var result = 9 > 8 ? '对' : '错';
console.log(result);

var score = 90;
score < 95 ? console.log('优秀') : console.log('及格');

2.条件运算符嵌套;

  • 以每个表达式可以中一个条件运算表达式
var score = 55;
/*优点,扩展了运算符本身的计算能力
* 最多不要多过三层嵌套*/
var result = score > 90 ? '优秀' : (score > 80 ? '良好' : (score > 60 ? '及格' : '不及格'));
console.log(result);
    原文作者:佐珥玎
    原文地址: https://segmentfault.com/a/1190000015924933
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞