Javascript运算符详解

js中运算符可分为一元运算符,二元运算符,三元运算符和赋值运算符,在一般的运算中,我们不必考虑到运算符的优先级,因为我们可以通过圆括号来解决这种问题。但是如果没有使用圆括号强制优先级,我们则必须遵循以下顺序:
对象成员存取、数组下标、函数调用>一元运算符>二元运算符>三元运算符>赋值运算符>多重赋值、数组元素

1、一元运算符
一元运算符典型的例子就是自加自减运算符,一元运算较为简单,就不多说了
但需要注意的是:
前置和后置的区别:在没有赋值操作,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置 ,那么前置的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减

2、二元运算符
二元运算符主要包括算数运算符、关系运算符和逻辑运算符,
其优先级为:算数>关系>逻辑

算数运算符:

主要用于数值的计算以及字符串之间或者字符串与其他类型的数据之间的拼接,如不想计算或者不想拼接可以将其数据类型转换

关系运算符:

得到的结果是boolean值。 只有true 或false
(>, <, >=, <=, = =, !=,= = =, !==)
关系运算符规则:
1.两个操作数都是数值,则数值比较;
2.两个操作数都是字符串,则比较两个字符串对应的字符编码值;
3.两个操作数有一个是数值,则将另一个转换为数值,再进行数值 比较;
在相等和不等的比较上,如果操作数是非数值,则遵循一下规则:
(1)一个操作数是布尔值,则比较之前将其转换为数值,false 转成 0,true 转成 1;
(2)一个操作数是字符串,则比较之前将其转成为数值再比较;
(3)一个操作数是对象,则先调用 valueOf()或 toString()方法后再和返回值比较;
(4)不需要任何转换的情况下,null 和 undefined 是相等的;
(5)一个操作数是 NaN,则= =返回 false,!=返回 true;并且 NaN 和自身不等;
(6)两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象,则返回 true,否则返回 false。
(7)在全等和全不等的判断上,比如值和类型都相等,才返回 true,否则返回 false。

逻辑运算符
得到的结果是boolean值。
&&, ||, ! (与或非)
&& 都真才真
|| 都假才假
! 取反 (非真就是假)
逻辑运算符规则扩展:
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时,遵循已下规则:
1.第一个操作数是对象,则返回第二个操作数;
2.第二个操作数是对象,则第一个操作数返回 true,才返回第二个操作数,否则返回 false;
3.有一个操作数是 null,则返回 null;
4.有一个操作数是 undefined,则返回 undefined。
5.对于逻辑或(||)
若运算符前的表达式为真,则第二个表达式不再运算,
若运算符前的表达式为假,则结果为第二个表达式
例如:
var a=true||3;//true
var b=false||4//4
对于逻辑与(&&)
若运算符前表达式为真,则结果为第二个;若运算符前一个表达式为假,则结果为假,例如:
var a=true&&5;//5
var b=false&&5;//false

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

var box = 5 > 4 ? ‘对’ : ‘错’; //对,5>4 返回 true 则把’对’赋值给 box,反之。

4、赋值运算符
= 常用的,不多做介绍

5、逗号运算符:
逗号运算符可以在一条语句中执行多个操作。

var box = 100, age = 20, height = 178; //多个变量声明
var box = [1,2,3,4,5]; //[1,2,3,4,5],数组的字面量声明

本人正在学习和摸索中,如有错误,欢迎指正!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值