高级js求神牛解释!!!!

AI传道士 2014-05-13 12:27:21
<script language="javascript">alert(++[[]][+[]]+[+[]]);</script>

我知道答案是10,but why????????????????
...全文
465 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
AI传道士 2014-05-15
  • 打赏
  • 举报
回复
引用 17 楼 wushangjimo 的回复:
wushangjimo 2014-05-15
  • 打赏
  • 举报
回复
AI传道士 2014-05-15
  • 打赏
  • 举报
回复
引用 10 楼 huxiweng 的回复:
这谁写的??
我写的
AI传道士 2014-05-15
  • 打赏
  • 举报
回复
引用 14 楼 xuefeng0707 的回复:
[quote=引用 13 楼 zkn_CS_DN_2013 的回复:] [quote=引用 12 楼 xuefeng0707 的回复:] 这代码写的畸形了
怎讲????[/quote]在代码里永远不会出现这种代码的[/quote] 娱乐性地研究一下,不好吗???
teemai 2014-05-14
  • 打赏
  • 举报
回复
这谁写的??
  • 打赏
  • 举报
回复
引用 5 楼 xiaopeipei2004 的回复:
++[[]][+[]] 1.先看这个[[]] 这是个二维数组,[[]].length===1 [[]][0].length===0 2. [+[]]===[0] [[]][+[]] === [[]][0] 也就是说在取二维数组的第一个元素,this is [] 3. ++[] == ++0 ===1
学习了,只是觉得很烦~
AI传道士 2014-05-14
  • 打赏
  • 举报
回复
引用 5 楼 xiaopeipei2004 的回复:
++[[]][+[]] 1.先看这个[[]] 这是个二维数组,[[]].length===1 [[]][0].length===0 2. [+[]]===[0] [[]][+[]] === [[]][0] 也就是说在取二维数组的第一个元素,this is [] 3. ++[] == ++0 ===1
嗯嗯,此种解释很是合理,可见你很用心,多谢了!!!
tony4geek 2014-05-14
  • 打赏
  • 举报
回复
因为0 自加了变为 1
xuefeng0707 2014-05-14
  • 打赏
  • 举报
回复
引用 13 楼 zkn_CS_DN_2013 的回复:
[quote=引用 12 楼 xuefeng0707 的回复:] 这代码写的畸形了
怎讲????[/quote]在代码里永远不会出现这种代码的
AI传道士 2014-05-14
  • 打赏
  • 举报
回复
引用 12 楼 xuefeng0707 的回复:
这代码写的畸形了
怎讲????
xuefeng0707 2014-05-14
  • 打赏
  • 举报
回复
这代码写的畸形了
AI传道士 2014-05-14
  • 打赏
  • 举报
回复
引用 10 楼 huxiweng 的回复:
这谁写的??
阁下有何指教???
lzj0327 2014-05-13
  • 打赏
  • 举报
回复
学习了。。。
grapepaul 2014-05-13
  • 打赏
  • 举报
回复
++[[]][+[]] 1.先看这个[[]] 这是个二维数组,[[]].length===1 [[]][0].length===0 2. [+[]]===[0] [[]][+[]] === [[]][0] 也就是说在取二维数组的第一个元素,this is [] 3. ++[] == ++0 ===1
AI传道士 2014-05-13
  • 打赏
  • 举报
回复
引用 1 楼 xiaopeipei2004 的回复:
首先,你要先知道: 对于引用类型对象(我指的是String,Date,Object,Array,Function,Boolean)的+运算符运算过程如下 1,首先调用此对象的valueOf方法,得到返回数值A 2,然后把此数值A转换成数字,得到的是最终数值 然后再来看,++[[]][+[]]+[+[]] ++[[]][0]+[0] 1 + [0] 10
alert(++[[]][+[]])的结果为什么会是1 ,始终不明白...
AI传道士 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 rui888 的回复:
debug 看下就知道了 来回之间[] 转换 alert([]) alert(+[]) alert([+[]]+"--") alert(++[[]][+[]]) 最后1+0 10
我知道debug,并且debug的结果是10,也知道+[0]是0,但是就是不明白++[[]][+[]]为什么会是1,求解释
tony4geek 2014-05-13
  • 打赏
  • 举报
回复
debug 看下就知道了 来回之间[] 转换 alert([]) alert(+[]) alert([+[]]+"--") alert(++[[]][+[]]) 最后1+0 10
grapepaul 2014-05-13
  • 打赏
  • 举报
回复
首先,你要先知道: 对于引用类型对象(我指的是String,Date,Object,Array,Function,Boolean)的+运算符运算过程如下 1,首先调用此对象的valueOf方法,得到返回数值A 2,然后把此数值A转换成数字,得到的是最终数值 然后再来看,++[[]][+[]]+[+[]] ++[[]][0]+[0] 1 + [0] 10

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧