JavaScript基础语法2

续JavaScript基础语法1

三丶 JavaScript运算符和表达式

3.1 算术运算符

在这里插入图片描述

3.1.1 加法运算符

var box = 1 + 2; //等于3
var box = 1 + NaN; //NaN,只要有一个NaN 就为NaN
var box = Infinity + Infinity; //Infinity
var box = -Infinity + -Infinity; //-Infinity
var box = Infinity + -Infinity; //NaN,正无穷和负无穷相加等NaN
var box = 100 + '100';//100100,字符串连接符,有字符串就不是加法
var box = '您的年龄是:' + 10 + 20; //您的年龄是:1020,被转换成字符串
var box = 10 + 20 + '是您的年龄'; //30 是您的年龄,没有被转成字符串
var box = '您的年龄是:' + (10 + 20); //您的年龄是:30,没有被转成字符串

3.1.2 减法运算符

var box = 100 - 70; //等于30
var box = -100 - 70 ;//等于-170
var box = -100 - -70; //-30,一般写成-100 - (-70)比较清晰
var box = 1 - NaN; //NaN,只要有一个NaN 就为NaN
var box = Infinity - Infinity; //NaN
var box = -Infinity - -Infinity;//NaN
var box = 100 - true; //99,true 转成数值为1
var box = 100 -false; //100,false转成数值为0
var box = 100 - ''; //100,''转成了0
var box = 100 - '70'; //30,'70'转成了数值70
var box = 100 - null; //100,null 转成了0
var box = 100 - 'Lee'; //NaN,Lee 转成了NaN

3.1.3 乘法运算符

var box = 100 * 70; //7000
var box = 100 * NaN; //NaN,只要有一个NaN 即为NaN
var box = Infinity * Infinity; //Infinity
var box = -Infinity * Infinity ; //-Infinity
var box = -Infinity * -Infinity ; //Infinity
var box = 100 * true; //100,true 转成数值为1
var box = 100 * ''; //0,''转成了0
var box = 100 * null; //0,null 转成了0
var box = 100 * 'Lee'; //NaN,Lee 转成了NaN

3.1.4 除法运算符

var box = 100 / 70; //1.42....
var box = 100 / NaN; //NaN
var box = Infinity / Infinity; //NaN
var box = -Infinity / Infinity ; //NaN
var box = -Infinity / -Infinity; //NaN
var box = 100 / true; //100,true 转成1
var box = 100 / ''; //Infinity,
var box = 100 / null; //Infinity,
var box = 100 / 'Lee'; //NaN

3.1.5 取模运算符

var box = 10 % 3; //1,余数为1
var box = 100 % NaN; //NaN
var box = Infinity % Infinity; //NaN
var box = -Infinity % Infinity ; //NaN
var box = -Infinity % -Infinity; //NaN
var box = 100 % true; //0
var box = 100 % ''; //NaN
var box = 100 % null; //NaN
var box = 100 % 'Lee'; //NaN

3.1.6 JS里面的算数运算规则

  • 任意数据类型和字符串进行加法运算,都是字符串的拼接
  • 任意数据类型和NaN进行四则运算,结果都是NaN
  • 当true和false参与运算,true转换为1,false转换为0
  • 除+运算外,数值类型字符串参与运算,都转换为数值;但是非数值类型字符参与运算,结果都是NaN
  • 除+运算外,空字符串转换为0
  • null在任意运算都为0,在取模运算时null作为初始结果为NaN;
  • 0可以作为除数,得到结果都是无穷大
  • 0参与取余运算,得到结果都是NaN

3.2 一元运算符

递增和递减运算符概述:

  • 如果需要反复给数字变量添加或减去1,可以使用递增(++)和递减( – )运算符来完成。
  • 在 JavaScript 中,递增(++)和递减( – )既可以放在变量前面,也可以放在变量后面。放在变量 前面时,我们可以称为前置递增(递减)运算符,放在变量后面时,我们可以称为后置递增(递 减)运算符。
  • 递增和递减运算符必须和变量配合使用。

3.2.1 递增运算符(++)

  • ++num 前置递增,就是自加1,类似于 num = num + 1,但是 ++num 写起来更简单。
  • num++ 后置递增,就是自加1,类似于 num = num + 1,但是 num++ 写起来更简单。
  • 使用口诀:++在前,整体是一个新值,++在后,整体是一人旧值

前置递增运算符(++num)

var num1 = 5;
++ num1; // num1 = 6;
var num2 = 6;
console.log(num1 + ++ num2); // 13

后置递增运算符(num++)

var num1 = 5;
num1 ++; // num1 = 6
var num2 = 6
console.log(num1 + num2 ++); // 12

示例:

var a = 1; var b = ++a + ++a; console.log(b);//5
var a = 1; var b = a++ + ++a; console.log(b);//4
var a = 1; var b = a++ + a++; console.log(b);//3
var a = 1; var b = ++a + a++; console.log(b);//4

前置和后置的区别:

在没有赋值操作,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置,那么前置 的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减。运算的时候也是一样;

其他类型应用一元运算符的规则:

var box = '89'; box++; //90,数值字符串自动转换成数值
var box = 'ab'; box++; //NaN,字符串包含非数值转成NaN
var box = false; box++; //1,false 转成数值是0,累加就是1
var box = 2.3; box++; //3.3,直接加1

3.2.2 递减运算符(–)

同上

3.3 赋值运算符

在这里插入图片描述

var t=5; // 其意义就是把数值5赋给变量t;
var k=x+y+5; // 其意义就是把表达式x+y+5最后的值赋给变量k。
var box = 100;
box += 100; // 200,+=代替box+100

3.4 关系运算符(比较运算符)

在这里插入图片描述

比较原则:

  • 若一个是数值字符串,一个是数值,字符串会自动转换成数值进行比较。
  • 若两个都是数值字符串,则比较首个数字的大小。
  • 布尔值的false和true会转换成0和1。
  • 两个操作数都是数值,则数值比较。
  • 两个操作数都是字符串,则比较两个字符串对应的字符编码值。

字符转ascii码:用charCodeAt();

在相等和不等的比较上,如果操作数是非数值,则遵循以下规则

  • 一个操作数是布尔值,则比较之前将其转换为数值,false 转成0,true 转成1;
  • 一个操作数是字符串,则比较之前将其转成为数值再比较;
  • 不需要任何转换的情况下,null 和undefined 是相等的;
  • 一个操作数是NaN,则==返回false,!=返回true;并且NaN 和自身不等;
  • 在全等和全不等的判断上,比如值和类型都相等,才返回true,否则返回false。

特殊值对比表:

表达式 值
null == undefined true
'NaN' == NaN false
5 == NaN false
NaN == NaN false
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
'100' == 100 true
'100' === 100 false

3.4.1 =的区别

相等运算符 == :判断两个操作数是否相等。不同的数据类型会自动转换为相等的数据类型再做比较。

等同运算符=== :全等(值和类型),严格意义的相等,两个操作数的值和他们的类型必须完全一致。

var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,类型不相等
var result = 55 === 55; // true

3.5 逻辑运算

在这里插入图片描述

3.6 三目运算符

三目运算符,又叫三元条件运算符

三元条件运算符其实就是后面将要学到的if 语句的简写形式。

根据条件在两个语句中执行其中的一个,使用符号 ?:

语法如下:条件表达式?语句1:语句2

var box = 5 > 4 ? '对' : '错'; //对,5>4 返回true 则把'对'赋值给box,反之,把错赋给box。
// 判断一个年龄是否成年, 当年龄超过18 返回 成年 否则返回未成年
var age = 19;
// console.log( age >= 18 ? '成年' : '未成年' );
var msg = age >= 18 ? '成年' : '未成年';
console.log(msg);

3.7 运算符优先级

在这里插入图片描述
未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值