JS系列 第三节: JavaScript 运算符

第三节: JavaScript 运算符

一.运算符

运算符(Operators,也翻译为操作符),是发起运算的最简单形式。

运算符的分类见仁见智,我对运算符进行如下分类:

数学运算符(Arithmetic operators)

比较运算符(Comparison operators)

逻辑运算符(Logical operators)

赋值运算符(Assignment operators)

按位运算符 (Bitwise operators)

条件 (三元) 运算符(Conditional operator)

1. 数学运算符

加+ 减 - 乘 * 除 / 取余数 % 括号 ()

下面的结果都是3:

console.log(1 + 2);
console.log(8 - 5);
console.log(1.5 * 2);
console.log(12 / 4);
console.log(13 % 5);    //13÷5=2……3 得几不重要,要的是余数

取余数这个运算,实际上也是除,要的是余数:

//取余数
console.log(12 % 3);    //0
console.log(121 % 11);  //0
console.log(5 % 8);     //5
console.log(8 % 5);     //3
console.log(5 % 5);     //0

// 测试
console.log(1 % 0)

默认的计算顺序,先乘除,后加减。乘除取余是平级,先遇见谁,就算谁。

console.log(1 + 2 * 3);     //7
console.log(1 + 2 * 3 % 3); //1
console.log(1 + 2 % 3 * 3); //7

我们可以用小括号来改变计算先后顺序,注意没有中括号和大括号,一律用小括号。

var a = 4 * (3 + (1 + 2) * 3);
console.log(a);

1.1. 隐式转换
所有带有字符串的运算都会尽可能的转为数字进行计算,加号比较特殊。(加好在字符串中有拼接的意思)

数学运算符的正统,是number和number的数学运算,结果是number。出于面试的考虑,有一些奇奇怪怪的数学运算.

* 发生转换

数学运算中,只有纯字符串、布尔值、null能够帮你进行隐式转换

//隐式转换:就是没有写parseInt()、parseFloat()自己帮你转格式
        
console.log(3 * "8");   //24
console.log("3" * "8"); //24
console.log("48" / "2"); //24
console.log("24" % 55); //24
console.log(3 * null); //0   
    //隐式转换的时候null将被转为0
console.log(3 * false); //0  
    //隐式转换的时候false将被转为0
console.log(3 * true);  //3  
    //隐式转换的时候true将被转为1

* 不能隐式转换

不纯的字符串和undefined是不能帮你进行隐式转换的,结果都是NaN, 没办法计算

console.log(3 * "8天");  //NaN   
    //数学运算中,不纯的字符串没法隐式转换
console.log(3 * undefined); //NaN  
    //数学运算中,undefined不能进行隐式转换

加法的特殊性
加法比较特殊,因为+同时是加法和连字符的符号,所以加法在面对字符串的时候没有隐式转换,就是字符串拼接

数学运算,字符串拼接
任何数据类型加字符串都等于字符串

//加法对于字符串没有隐式转换
console.log(3 + "8");           //38
console.log(3 + undefined); //NaN   
console.log(3 + null);      //3
console
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值