js如何朴实无华且枯燥的输出hello world

 

如题:如何朴实无华且枯燥的输出"hello world"

 

'\ud835\udcf1' +({}+[])[[~-~!+[]]*[~![]]+~~!+[]]+(!{}+[])[-[~!+[]]-~~!{}]+(!{}+[])[-[~!+[]]-~~!{}]+
({}+{})[[~~!+[]]]+({}+[])[[-~-~~~!-[]]*[-~!+[]]+!+[]]+'\ud835\udce6'+({}+{})[[~~!+[]]]+
(!!{}+[])[~~!+[]]+(!{}+[])[-[~!+[]]-~~!{}]+([][[]]+[])[~~-~!+[]]

 

额呵呵,在f12控制台中输入上述代码,如图:

 

TIM图片20200627141005.png

下面俺来讲解一下,hello world输出过程:

9cc0554d70cb2921007e093826898bc5_6a04b428gy1fyrlemovo4g20k00kc7br.gif

 

首先'\ud835\udcf1'和'\ud835\udce6'就是?和?对应的acsii嘛,

emmm接着先讲下位运算吧和js的一些常识吧

如下:js对象到字符串会调用该对象的toString()方法

5XB{75@1XJO8UAZ`PHVQEMI.png

FVILZNFQIW%72I$[{R9SP27.png

原始值转换为布尔值: undefined、null、0、-0、NaN、””被转为false;其他所有原始值都被转为true。

~4M{7UI%9L~9@C_HP5(6[GA.png

下面就可以讲后面的怎么运算的了

({}+[])[[~-~!+[]]*[~![]]+~~!+[]]

这一段输出的是"e"

首先

({}+[])

输出的是"[object Object]"注意是字符串哦

 

[[~-~!+[]]*[~![]]+~~!+[]]

先讲一下~符号吧,在位运算中~符号运算相当于加个负号后减一比如~2=-3,~~2=2

+[]=0,

!+[]=true,

~!+[]=2,(先转化为数字后运算)

-~!+[]=2,

~-~!+[]=-3,

 

~![]=-1

 

~~!+[]=1

 

[[~-~!+[]]*[~![]]+~~!+[]]=-3*-1+1=4

 

({}+[])[[~-~!+[]]*[~![]]+~~!+[]]="[object Object]"[4]="e"

剩余的字母的获取方式也和上述这个五五开

值得注意的是还有以下获取字符串的方式

AFF7I4JDDG%ACE2KUF]VUE8.png

2cb2175f371c42f5c4007d18c35d1ed1_6a04b428gy1fxzsislfu8g2071072u0x.gif

值得一题的是在js中用位运算,反而会降低运算速度

f288ab5be337376220b3ac59de039d9d_6a04b428gy1fxzsircijng205103marn.gif

所以你看完本帖子获得的有用的知识居然是零欸

 

再附上一些好玩的


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

([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]

-~-~+![]*-~-~![]+!![]+[]+-~-~+![]+-![]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值