CNode

分享一道简单的js面试题

分享
MMatrixbirds发布于9 年前最后回复9 年前4 回复4499 浏览0 收藏
[[++[+[]+[]][0]]+[]][0] === x

当x=什么值 这里条件返回true 并且说出原因 提示并补充: 1.为何会有隐式转换? 2.以及转换出来的东西是什么?

查看回复

回复 (4)

E
ekoneko#1·9 年前
[
    [
        ++[
            +[] // 0
            +[] // ''
        ][0]
    ]+[]
][0]

=

[
    [
        ++[
            0 + '' // '0'
        ][0]
    ]+[]
][0]

= 

[
    [
        ++['0'][0] // = ++('0') = 1
    ]+[]
][0]

= 

[
    [1]+[] // = 1 + '' = '1'
][0]

= ['1'][0] = '1'

我觉得面试一边要求优雅的 code style, 一边又出这种题的行为非常没品...

M
Matrixbirds#2·9 年前
引用 ekoneko` 我觉得面试一边要求优雅的 code style, 一边又出这种题的行为非常没品...

@ekoneko 很棒。其实是一道没啥卵用的题目就是看愿不愿意写。2333

D
dislido#3·9 年前

可以试一试jsfuck

S
stonephp#4·9 年前

我只能说出这个面试题的脑子有问题。

参与回复
登录后即可参与回复。登录