You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
var number = new Number(10);
number.toString('16');
就是将10用16进制进行表示,上面的例子打印的结果是"a"。
注意,radix最大可以表示36!!!
var number = new Number(35);
number.toString('36');
打印的字母是 "z"! 用这种方法,我们可以表示剩下的所有字母!
但是我们怎么利用这个 toString 方法呢?准确的说,我们该怎么生成一个 number 对象呢?还要拼出 new Number 吗?
前言
马上2024年春节了,提前祝大家新春快乐!
之前文章有提过js隐式转换,详情请看:https://www.haorooms.com/post/js_yinxingleixing
用如下方式打印字母表示字母你知道吗?
先来个思考题:
输出句子
大家把下面放到chrome控制台,看看是什么
如果想了解以上是怎么实现的,先来检测下自己对 JavaScript 隐式类型转换的理解程度:
开始解密
第一个效果:
因为空数组并不存在第一个元素,所以会打印 undefined
第二个效果:
这时候已经获得一个 undefined 字符串了,我们只用通过下标就可以取到对应的字母了。
然而,如果我们不用括号,我们怎么取值呢?这时候,我们就需要利用一个技巧:
第三个效果:
这时候我们就获得了"u"字母,通过改变下标,我们可以获取u、n、d、e、f、i 共6个字母
是不是很有意思,然而这才只是个开始。
NaN
第一个效果:
第二个效果:
第三个效果:
false
第一个效果:
第二个效果:
第三个效果:
通过这种方式,我们可以取出 "f"、"a"、"l"、"s"、"e"五个字母
true
直接看核心步骤:
剩下的想必大家已经轻车熟路了。
通过以上 4 种方法取到的字母依然有限,我们需要一些其他的方法来获得更多的字母。
Infinity
注意:在前面我们已经取到了字母 e。
我们可以从中取出 t 和 y
function
注意:到此为止,我们已经获得了 u n d e f i t r f a l s t y,从中我们可以拼成"find"字符串。
神奇的constructor
注意,我们已经有了 17 个字母了,我们现在可以拼出"constructor"!
constructor 可是一个神奇的属性,因为通过它,我们可以获得各种类型的值对象的构造函数!
通过以上方式,我们可以取 m、g
也许我们会疑问,"" 如何表示呢?
name
有了 m,我们现在可以拼出 name,可是 name 有什么用呢?
我们最终的目的是拼出万能的"toString"字符串
万能的 toString
我们之所以拼出 toString,是因为利用 toString 这个方法可以表示出 26个 字母!
这时候,就要隆重介绍下这个平时看起来不起眼,但是在这里确实最终主角的 toString 方法!
以下引自 W3C school:
举个例子:
打印的字母是 "z"! 用这种方法,我们可以表示剩下的所有字母!
但是我们怎么利用这个 toString 方法呢?准确的说,我们该怎么生成一个 number 对象呢?还要拼出 new Number 吗?
其实都不用!这个时候,就彰显出了 JavaScript 隐式类型转换的优秀之处:
注意:到了这个时候,我们也不得不使用()了!
到此为止,我们已经可以表示出所有的字母了,有的很轻松的就表示出来,有的则有些麻烦,而且显示也很长,比如字母 p:
The text was updated successfully, but these errors were encountered: