控制台打印 sb

控制台打印 sb


控制台输入

(!(+[])+{})[–[+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[!+[]]*+[]]

打印

“sb”

是不是感觉特别神奇又不得其解,先把这个式子分解一下就清楚多了

  • “sb” = “s” + “b”
const s = (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]
const b = ({}+[])[[~!+[]]*~+[]]
const sb = s + b
console.log(s, b, sb) // "s" "b" "sb"
  • “s” = (“false[object Object]”)[3]
const sStr = !(~+[])+{}
const sIndex = --[~+""][+[]]*[~+[]] + ~~!+[]
const s = (sStr)[sIndex]
console.log(sStr, sIndex, s) // "false[object Object]" 3 "s"
  • “b” = ("[object Object]")[2]
const bStr = {}+[]
const bIndex = [~!+[]]*~+[]
const b = (bStr)[bIndex]
console.log(bStr, bIndex, b) // "[object Object]" 2 "b"
  • “false[object Object]” = false + {}
  • !(~+[]) = !(~0) = !(-1) = false
const falseBoolean = !(~+[])
const object = {}
const sStr = falseBoolean + object
console.log(falseBoolean, object, sStr) // false {} "false[object Object]"
  • 3 = -2 * [-1] + 1
  • –[~+""][+[]] = --[~0][0] = --[-1] = -2
  • [~+[]] = [~0] = [-1]
  • ~~!+[] = ~~!0 = ~~1 = 1
const number1 = --[~+""][+[]]
const number2 = [~+[]]
const number3 = ~~!+[]
const sIndex = number1 * number2 + number3
console.log(number1, number2, number3, sIndex) // -2 [ -1 ] 1 3
  • “[object Object]” = {} + []
  • 2 = [-2] * - 1
  • [~!+[]] = [~!0] = [~1] = [-2]
  • ~+[] = ~0 = -1
const number1 = [~!+[]]
const number2 = ~+[]
const bIndex = number1 * number2
console.log(number1, number2, bIndex) // [ -2 ] -1 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值