flag-in-your-hand

文章探讨了JavaScript和HTML的交互,重点分析了一个特定的showFlag函数。在函数中,ic变量的真假决定了字符串的显示。checkToken和bm函数看似影响结果,但实际上关键在于ck()函数,它通过对字符串的Unicode值和ASCII值的比较来决定ic的最终值。通过Chrome开发者工具的断点调试,揭示了代码的真实运行逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目给了js和html的源码。

简单看了下,在showFlag()中,ic值为true时,会展示冒号前面的字符串

然后将fg的值赋值给“flag”。

 在调用showFlag()前,调用了checkToken(),和bm(),一眼看上去,似乎是先检验token,然后对token进行编码并展示。

 

但是,用chrome的开发者工具,打断点调试,发现不管怎么改 checkToken的值,使它相等,最后ic都是false,

 ​​​​​

、 

 

然后看bm(),发现这是一个幌子,一路顺藤摸瓜,发现bm()函数中最后会调用ck()

 

 

这个函数貌似又对ic做了一次赋值,最终决定展示的结果。

其中, charCodeAt(),获取的是字符串第一个字符的Unicode值,而这个值是和ASCII一样的,只有当s和a长度相等,编码值等于a-3,才返回true。

所以答案马上就出来了。

 

之前不太了解html的运行机制,现在看好像是顺着每一句话都会运行?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值