javascript - 逗号当分号用了?
黄舟
黄舟 2017-04-11 11:22:22
[JavaScript讨论组]
var a,b;
a = 5, b = function () {
                console.log("ok");
            };

这样写没有问题啊。。。这里的逗号(第二个)该如何理解呢?
还有一种写法最近经常看到,不是很理解,如下:

x && (a=2,b=3);

假设x为真,那么a=2,b=3都会被执行吗?这里的逗号,圆括号是什么用法?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
伊谢尔伦

第二个逗号和第二个问题的逗号就是从左到右依次赋值

  • a && b当a为true的时候,执行b,返回b的bool值。当a为false的时候,不执行b,返回false。

  • a || b当a为true的时候,不执行b,返回true。当a为false的时候,执行b,返回b的bool值。

括号就是为了把代码合为一体,表明是一个整体的表达式。

迷茫

逗号是一种运算符。 从左到右执行。
//var a,b;声明里面的逗号只是省了一个var而已。

怪我咯

var a,b; 表示声明两个变量相当于 var a; var b; 也就是var可以声明多个变量,变量之间用逗号隔开。

x为真,后面的表达式才会被执行。如果x为假,就不会执行。你应该理解&&是短路运算,假如第一个表达式是false,就不会去检查第二个表达式了。
圆括号也是个运算符,可以看一下mdn上面的https://developer.mozilla.org...,里面逗号也是运算符,会依次执行,并最终返回最后一个操作对象的值,这里(a = 2, b = 3)将返回 3。

ringa_lee

回答你第二个问题,=。=
假设x为真的话,后面的语句会执行,因为&&运算符执行顺序是:
command1 && command2
command1为true,执行command2

圆括号优先级最高,逗号运算符属于多重运算符,先计算左边的,再计算右边的,最后返回右边的值,举个栗子~

var a = 1, b = 2;
function commaTest1() {
    return a,b
}
function commaTest2() {
    return b,a
}
commaTest1(); // result: 2
commaTest2(); // result: 1
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号