美文网首页
加号操作符

加号操作符

作者: 积微微微 | 来源:发表于2017-09-11 17:02 被阅读14次

问题

请问下面这行代码的执行的结果?

 ++[[]][+[]]+[+[]] 

第一眼看到这个很可能是懵逼的,这是个什么玩意儿,能执行吗?

第一个要点:
+[] = ?

firefox测试运算结果.png

重点来了: +"" = 0

根据周爱民老师《JavaScript语言精髓与编程实践》,单个加号作为运算符在JavaScript中有三种作用。

  1. 标识字符串连接
  2. 表示数字取正值的一元运算符
  3. 表示数值表达式的求和运算。

加号在对数字取正值时,如果后面接的数据不是数字,那么会进行强制类型转换。

所以表达式++[[]][+[]]+[+[]]可以简化为
++[[]][0]+[0]
在这里++[[]][0]=+(+[[]][0]+1) = +(0+1) = 1
然后再次简化为
1+[0]=1+"0" = 10

加号运算符的另外一条规则是如果表达式中存在字符串,则优先按照字符串连接进行运算。所以数字1和字符串"0"相加,得到的结果是字符串"10"

相关文章

  • 加号操作符

    问题 请问下面这行代码的执行的结果? 第一眼看到这个很可能是懵逼的,这是个什么玩意儿,能执行吗? 第一个要点:+[...

  • 5. 从头学前端之操作符

    操作符包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 一元操作符 只能操作一个值的操作符叫做一...

  • ES笔记—基础之操作符篇

    描述:用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 1、一元操作符 ...

  • 字符串连接的方式效率

    方法1:直接通过加号(+)操作符连接website = 'python' + 'tab' + '.com' 效率低...

  • JavaScript基本概念之操作符——一元操作符

    ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作法...

  • java基础02-操作符和控制流程

    一、操作符。 1、使用java操作符 操作符接受一个或者多个参数,并生成一个新值。 加号和一元正号:+,减号和一元...

  • Swift Basic Operators

    操作符就是一些专用的符号或短语,用于值的检查、更改、合并等。例如加号操作符+ 将两个数加起来(as in let ...

  • 强大的加号(+)操作符

    昨天一个技术群里有朋友贴出一个egret的api文档的截图,提出有个地方看不懂,笔者后来回答了该问题,现在问题复原...

  • 性能优化

    性能优化 代码层面: 缓存利用 请求数量 请求带宽 总的来说 移动端性能优化 具体优化 加号操作符 事件委托 避免...

  • python字符串连接的三种方法及其效率、适用场景详解

    python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;pyt...

网友评论

      本文标题:加号操作符

      本文链接:https://www.haomeiwen.com/subject/mxntjxtx.html