类型转换
文章平均质量分 92
Coder小鹿
前端小白程序员一枚,略略略~
展开
-
(!(~+[])+{})[--[~+““][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]]*~+[]] javascript类型转换的彩蛋
前言(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]]*~+[]]大家可以试着运行一下这串代码是不是输出的"sb"让人眼前一惊肯定都会去想这个变相的骂人是怎么实现的原始式子拆分解这种题目,当然要把他们先按运算符给拆分开来,一步一步分析了首先可以将原始的式子分为式子1 (!(~+[])+{})[–[~+""][+[]]*[~+[]]+~~!+[]]式子2 ({}+[])[[~!+[]]*~+[]]并且式子1和式子2原创 2020-09-08 20:08:37 · 2875 阅读 · 0 评论 -
javascript类型转换(下篇)
前言不多说,这一篇全是题目和解析,直接上题目了,如果不懂得可以看javascript类型转换(上篇)[]+[]首先这两个都是对象类型,所以会执行toPrimitive内部方法,而[[DefaultValue]]的hint值为空,hint值为空相当于hint为number的时候。所以会先执行valueOf,然后根据返回值判断是否执行toString。那么来看看这里的第一个[],执行valueOf后,因为数组的valueOf会返回数组本身,因此这个返回值还不是基本类型值,因此会执行toString,所原创 2020-09-04 19:52:53 · 1140 阅读 · 2 评论 -
javascript类型转换(上篇)
前言JavaScript中有6种数据类型:数字(number)、字符串(string)、布尔值(boolean)、undefined、null、对象(Object)。其中对象类型包括:数组(Array)、函数(Function)、还有两个特殊的对象:正则(RegExp)和日期(Date)。其中简单数据类型为:number、string、boolean、undefined、null引用数据类型为:object但是Javascript是一门弱类型的语言,它在声明时只有一种类型,只有在运行期间才能确定当前原创 2020-09-04 17:43:41 · 1387 阅读 · 2 评论