上篇文章比较了"?,="三者的优先级:"?">"=">","

今天继续学习"++,--,&&,||"四者的优先级,强化JavaScript运算符基础。

首先上图一张,运算符的比较:

结论:

1.优先级:"++,--">"&&">"||"

2.即时性:++,--操作符里面的变量计算时候具有即时性。例如a=0,a++,那么a++结果是0,a是1.


||和&&是截断操作符,对||来说,前面成立后面就不用计算,对&&来说前面不成立后面就不会计算

例如:var a=b=c=0;
++a||++b: ++a的值为1,所以++b不执行,a=1,b=0; ++a&&++b: ++a值为1,再计算++b,a=1,b=1; ++a||++b&&++c,&&优先级低于||,先计算++a,a=1后面执行a=1,b=0,c=0.

下面我们看一个复杂的例题:

var  a =1 ,b =0;
var c = a-- && b++ || a++ && b-- || b++;
alert(a);
alert(b);
alert(c);

结果是:a=1,b=2,c=1

结计算过程详解:

1.c原式相当于:(a--) && (b++) || (a++) && (b--) || (b++);

2.计算到第3位时候注意:此时全式变为:1(a为0)&&0(b为1)||0(a为1)&&(b--)(0&&any特点,不用计算这位,b仍为1)||1(该位是在第2个&&计算完之后,开始计算的,所以b变为2),即1&&0||0&&(b--)||1

3.a=1,b=2,c=1

JavaScript运算符优先级——"++,--,&&,||“的更多相关文章

  1. javascript 运算符优先级

    JavaScript 运算符优先级(从高到低) https://github.com/xhlwill/blog/issues/16 今天把js函数转换为python 函数时,发现在js运算符优先级这边 ...

  2. JavaScript运算符优先级引起的bug

    [下面是昨天发给同事的邮件,为防止泄露商业机密,隐去了项目名和变量名] ==================================================== 昨天发现Nx代码中的一 ...

  3. JavaScript运算符优先级

    图片引用自:http://www.cnblogs.com/xxcanghai/p/5189353.html

  4. javascript运算符优先级顺序

    1 ()2 !.-(负号).++.-- 3 *./.%4 +.- 10-55 <.<=.<.>=6 ==.!=.===.!==.7 &&8 ||9 ?:10 = ...

  5. (转)JavaScript中的运算符优先级

    JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出J ...

  6. JavaScript基础之运算符及全面的运算符优先级总结

    算数运算符: 加+,减—,乘*,除/,求余%,加加++,减减——, 加减乘除求余运算与数学上的用法完全一样. 不过,加号+还有连接字符串的作用,其他运算符还可以将字符串数字转换成数值型,参见JavaS ...

  7. 运算符优先级 (JavaScript)

    运算符优先级描述了在计算表达式时执行运算的顺序.先执行具有较高优先级的运算,然后执行较低优先级的运算.例如,先执行相乘,再执行相加. JavaScript 运算符     下表列出了 JavaScri ...

  8. JavaScript 运算符的优先级

    ㈠逗号(,)运算符 ⑴使用 , 可以分割多个语句,一般可以在声明多个变量时使用 , : ⑵使用 , 运算符同时声明多个变量    // var a , b , c ; ⑶可以同时声明多个变量并赋值   ...

  9. javascript运算符语法概述

    × 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...

随机推荐

  1. Linux中的sed解析

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  2. EchartJS平均线、最大值、最小值

    1.先来看一个没有平均线.最大值.最小值的简单实例 option = { title: { text: '未来一周气温变化', subtext: '纯属虚构' }, tooltip: { trigge ...

  3. nginx添加缓存以及判断是否缓存生效

    location ~.*\.(js|css|html|png|jpg|gif)$ { expires 3d; } expires    3d; //表示缓存3天 expires    3h; //表示 ...

  4. 剑指offer —— 二维数组的查找

    1.问题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.思路:只看题目本身 ...

  5. 网络通讯与IP地址

    1.主机:Host,台式机,笔记本,手机等设备 2.网络介质:网线,光纤,无线网Wi-Fi.移动网络 3.数据:一串子节 网络通讯的检测:安装wireshark,通常称为抓包工具 抓,capture ...

  6. BA 认证

    IIBA-CBAP https://www.iiba.org/standards-and-resources/core-standard/ PMI-PBA https://www.pmi.org/ce ...

  7. NSArray,NSMutable和NSSet,NSMutableSet和NSDictionary,NSMutableDictionary用法

    开始编写应用程序的代码时,可以利用大量的 Objective-C 框架.其中,为所有应用程序提供基本服务的 Foundation 框架尤为重要.Foundation 框架包括表示基本数据类型的值类(如 ...

  8. CF352B Jeff and Periods 模拟

    One day Jeff got hold of an integer sequence a1, a2, ..., an of length n. The boy immediately decide ...

  9. POJ1053 Set Me

    题目来源:http://poj.org/problem?id=1053 题目大意: 有一种牌,共有81张.每张牌有四个属性,每种属性有三种可能取值:形状(D,O,S),数字(1,2,3),颜色(R,G ...

  10. Oracle 11g服务OracleDBConsoleorcl启动失败(异常或报错)

    OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl.在运行Enterprise Manager(企业管理器OEM)的时候,需要 ...