今天看到Javascript传说中的逗号操作符,实际上我们平时也很难遇到特殊的用法和语法结构,如果面试的时候遇到就傻眼了的确有点刁钻,适合技术狂人们去深造。
运算规则:
逗号运算符,它将先计算左边的参数,再计算右边的参数值。然后返回最右边参数的值。
<script> var a = 10, b = 20; function foo(){ return a++, b++, 30; } var c = foo(); alert(a); // 返回11 alert(b); // 返回21 alert(c); // 返回30 </script>
优先级:
逗号运算符在JavaScript在的优先级是最低的,比函数调用和赋值运算符还低。(注:函数调用确实是函数调用运算符)
<script> alert(10*2, 10*3); // 输出20 </script>
根据逗号运算符的原理来解释的话,那应该是输出30才对,但是注意:逗号运算符在JavaScript在的优先级是最低的。按照平时的思维方式也应该返回20。
如果要输出30应该这样写:
<script> alert( (10*2, 10*3) ); // 输出30 </script>
如果需要深入研究大家可以做做下面的题(适合技术狂人):
来自 http://www.easyui.info/archives/1527.html
1. var a = (1,5 - 1) * 2;a的值为() A、0.999999999 B、1 C、2 D、8 E、0.5 2. var b = 10,c = ( 20, function (x) { return x + 100}, function () { return arguments[0]} ); var a = b + c({x: 10}).x; a的值为() A、30、10 B、20 C、10 D、30、110 E、NaN 、10 3. function f(x, y) { x = 10; alert( arguments[0], arguments[1] ); } f();结果为 A、null,undefined B、10 C、undefined D、0, NaN E、 "undefined" 4. var f = (function f(){ return "1"; }, function g(){ return 2; })(); typeof f;的值为() A、"string" B、"number" C、"function" D、"undefined" 5. var x = 10; var foo = { x: 20, bar: function () { var x = 30; return this.x; } }; alert( foo.bar(), (foo.bar)(), (foo.bar = foo.bar)(), (foo.bar, foo.bar)() ); 结果为: A、15 B、20 C、30 D、10
相关推荐
上篇文章我们讲解了javascript的操作符中的一元操作符、位操作符、布尔操作符,今天我们继续讲解剩下的几个操作符,包括乘性操作符、加性操作符、相等操作符、条件操作符、赋值操作符、逗号操作符,小伙伴们仔细研读...
, (逗号操作符) delete new this typeof void 第三章 语句 这一章描述了所有 JavaScript 的语句。JavaScript 语句是用特定的语法由关键词组成的。一个语句可以跨多行。多个语句可以出现在一行上,但各自中间...
, (逗号操作符) delete new this typeof void 第三章 语句 这一章描述了所有 JavaScript 的语句。JavaScript 语句是用特定的语法由关键词组成的。一个语句可以跨多行。多个语句可以出现在一行上,但各自中间应该...
本文将深入探讨如何以逗号或其他自定义分隔符来添加或删除字符串,并且会强调不支持正则表达式中的特殊字符。我们将通过实例代码和步骤来详细解释这一过程。 首先,让我们理解“以逗号分隔方式添加字符串”。当你有...
本文将详细介绍 MongoDB 中的四个主要逻辑查询操作符:`$and`、`$nor`、`$not` 和 `$or`。 1. **$and** 操作符: `$and` 用于组合多个查询表达式,只有当所有表达式都为真时,文档才会被选中。它的语法是使用一个...
在JavaScript编程语言中,表达式和操作符是构建程序的基础元素。本章主要讲解了JavaScript中的表达式和各种运算符的使用。 3.1 表达式 表达式是由数值、变量以及运算符组成的组合,它们可以计算出一个值。在...
除了IE版本判断之外,文中还提到了JavaScript中逗号操作符的使用。逗号操作符允许在一条语句中执行多个操作,它会计算每个操作,并返回最后一个操作的结果。这是在循环中测试条件注释时使用的技巧,例如: ```...
最后,虽然文章中提到的一元加号操作符用于数据类型转换的特性已经非常强大和实用,JavaScript中加号操作符的使用远不止这些。由于文章内容提供的是一部分扫描文档,如果希望获取更多关于加号操作符的神奇用法,欢迎...
展开操作符用于将数组或类数组对象展开为用逗号分隔的值序列,而剩余操作符则用于收集函数参数列表中剩余的参数到一个数组中。 在定义函数时,如果函数参数以三个点(...)作为前缀,这样的参数称为剩余参数(rest ...
- JavaScript提供了多种操作符,如算术操作符(+、-、*、/、%)、比较操作符(==、===、<、>等)和逻辑操作符(&&、||、!)。 3. **流程控制** - 条件语句(if...else、switch)用于根据条件执行不同的代码块。 ...
本讲将详细讲解Smarty中的变量操作符,帮助你更好地理解和运用这些工具。 首先,让我们来了解什么是Smarty变量操作符。在Smarty模板中,变量操作符是用来处理和修改模板变量的特殊符号或短语。它们允许你执行如赋值...
包括算术操作符(如+、-、*、/、%)、比较操作符(如==、===、!=、<、>、、>=)和逻辑操作符(如&&、||、!)。表达式则由操作符和操作数组合而成,可以计算出一个值。 三、控制流 条件语句如`if...else`和`switch.....
本文将深入探讨如何在各种编程语言中,如Python、Java、C#和JavaScript中,读取以逗号为分隔符号的txt文件。 首先,我们来看Python的处理方式。Python提供了强大的`csv`模块,可以方便地读取和写入CSV文件。下面是...
以下是对JavaScript语言基础的详细总结,涵盖的主要知识点包括变量、数据类型、操作符、控制流、函数、对象、数组、闭包、原型链等。 1. 变量与数据类型: - 变量:在JavaScript中,使用`var`、`let`或`const`...
`split()`方法是JavaScript中处理字符串的一个关键功能,它允许我们根据提供的分隔符将字符串切割成多个子字符串。在这个例子中,分隔符是逗号(",")。 首先,我们创建了一个`onload`事件处理函数,这个函数会在...
- 逗号操作符:避免在逗号操作符后换行,以防止意外创建新的语句。 - 块作用域:虽然JavaScript没有真正的块作用域,但应尽可能模拟块作用域,避免变量污染全局范围。 - 赋值表达式:使用明确的赋值操作符,避免...
- 数组和对象的最后一个元素后面不加逗号(逗号操作符后缀)。 - 使用解构赋值简化代码,尤其是处理函数参数和返回值时。 4. **字符串** - 优先使用模板字符串(`template literals`,用反引号包围)而不是字符...