以前写的博客,现在搬过来
1 首先三目运算符和return的正确用法是这样的: 2 3 (function test(){ 4 var foo = []; 5 return typeof foo === 'object'?1:2; 6 })();//函数返回值为1 7 8 要是在三目运算符中又多个运算呢: 9 10 (function test(){ 11 var foo = []; 12 return typeof foo === 'object'?(console.log(1),1):(console.log(2),2); 13 })();//console输出1,并且函数返回值是1 14 15 还能有同一个返回值: 16 17 (function test(){ 18 var foo = []; 19 return typeof foo === 'object'?console.log(1):console.log(2),2; 20 })();//输出1,函数返回2,这样写不论typeof foo === 'object'是true or false ,函数返回值都是2 21 22 即使这样写: 23 24 (function test(){ 25 var foo = []; 26 return typeof foo === 'object'?(console.log(1),1):console.log(2),2; 27 })();//输出1,返回2 28 29 (console.log(1),1)是必须要括号的,不然会报错;
这里返回有很大一部分功劳都是','(逗号)分隔符的作用,他和三目运算符都有一层 return 的意思,如果你看到','分隔符,那么逗号前面的都是只会运行而已,影响返回的只有逗号后面的结果,若遇到多个逗号,则同理