呵呵,JavaScript 真好玩(苦笑脸)
首先,问个问题:在 JavaScript 中,怎样使 x !== x
?
什么!原来变量自己还可以不全等于自己?!
答:当然咯,NaN
jym:“哈?就这?”
本瓜:“别急,这才刚起步,抓紧坐稳啦!”
有没有可能,这个变量不是 NaN,但是仍然满足 x !== x
呢?
答:当然咯,它可以是任何值!
Amazing!!
我们通过 object. Defineproperty
设置 get
方法,返回一个随机数,即能满足任意值的:x !== x
了
jym:“还有吗?”
本瓜:“当然啦!”
除了能让 x !== x
,还能让 x === x + 1
,信不信?
它就是:
Number.MAX_SAFE_INTEGER
常量表示在 JavaScript 中最大的安全整数(maxinum safe integer)(2^53 - 1)
crazy!!
os:要是把这写在项目代码里,那不得是“唯我独尊”?🐶🐶🐶
jym:“这有用吗?”
本瓜:“当然有用,最大的用处就是知道这么个东西,防止被坑,避免少见多怪。”
除了 x !== x
、x === x + 1
,咱还可以让 x > x
Symbol.toPrimitive
是一个内置的 Symbol 值,它是作为对象的函数值属性存在的,当一个对象转换为对应的原始值时,会调用此函数。
该函数被调用时,会被传递一个字符串参数 hint
,表示要转换到的原始值的预期类型。 hint
参数的取值是 "number"
、"string"
和 "default"
中的任意一个。
MDN 示例:
<hr>
哈哈哈,看到这里,jym 不由觉得:呵呵,JavaScript 真好玩(苦笑脸)
嘻嘻嘻,最后再附送一个问题:
在 JavaScript 中,有没有可能使得:typeof x === 'undefined' && x.length > 0
返回 true
呢?
欢迎评论留言~~
<hr>
OK,以上便是本篇分享。
觉得不错点个赞吧👍👍👍,您的鼓励,我的动力,坚持输出质量好文~~ 欢迎评论留言
我是掘金安东尼,输出暴露输入,技术洞见生活。再会吧~~ 👋👋👋
版权声明: 本文为 InfoQ 作者【Geek_4cf903】的原创文章。
原文链接:【http://xie.infoq.cn/article/91c8f9ed82df12506243f0b59】。文章转载请联系作者。
评论