js逗号操作符

最近看了些其他人分享的面试经历

发现了这么一道题


var result = (function(){

    return 1;

},function(){

    return "2"

})()

console.log(typeof result)

突然就陷入了沉思,这好像触及到了我的知识盲区...

一开始以为这就是一整个即时匿名函数,仔细看看好像事情没那么简单,这么解释语法不对啊...

后来觉得应该这么看


var result = (function(){return 1;},function(){return "2"}) //前面的括号是一个整体

()

console.log(typeof result)

(xxx, xxx) 想必是这个逗号有什么作用

逗号操作符MDN

原来逗号也是个操作符!

当你想要在期望一个表达式的位置包含多个表达式时,可以使用逗号操作符。这个操作符最常用的一种情况是:for 循环中提供多个参数。


for (var i = 0, j = 9; i <= 9; i++, j--)

  document.writeln("a[" + i + "][" + j + "] = " + a[i][j]);

这段代码使用逗号操作符一次递增/递减两个变量,但是var语句中的逗号 不是 逗号操作符。

另一个使用逗号操作符的例子是在返回值前处理一些操作。

总结

逗号在js中是可以一个操作符

expr1, expr2, expr3...

它会返回最后一个表达式的结果,其他的表达式只会进行求值

所以文章开头的代码第一部分返回最后一个函数的定义,再执行后result的值为"2",所以输出的答案就是"string"!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,236评论 0 13
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,314评论 9 118
  • 一元操作符 只能操作一个值的操作符。 递增和递减操作符 前置型:位于要操作的变量之前; 后置型:位于要操作的变量之...
    Sketch阅读 353评论 0 0
  • PHAsset获取UIImage返回nil的问题 今天帮一个网友解决了这样一个问题 。他用photo框架,获取了一...
    苏永茂阅读 5,095评论 4 10
  • 辩题:路遇老人晕倒,救人or冷漠 路遇老人晕倒救还是不救一直是一个颇具争议的话题,近日,一则“最美女孩跪地救老人错...
    西西里咚阅读 601评论 2 0