你知道哪些JavaScript中让人哭笑不得的奇葩知识点吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2388个文字,预计阅读时间需要10分钟。
长久沙场的前辈们,留下了无数代码,踏过了无数的坑。但有些坑,可能一位子也摸不着,因为根本不会出现在业务代码里……+1 Function.prototype 确实是个函数类型。而自定义函数的原型是……
久经沙场的前辈们,写了无数代码,踩了无数的坑。但有些坑,可能一辈子也踩不到摸不着,因为根本不会发生在业务代码里~~
1
Function.prototype 竟然是个函数类型。而自定义函数的原型却是对象类型。
typeof Function.prototype === 'function'; // true function People() {} typeof People.prototype === 'object'; // true
所以我们设置空函数可以这么做:
// OK const noop = Function.prototype; // OK const noop = () => {};
2
一个变量真的会不等于自身吗?
const x = NaN; x !== x // true
这是目前为止js语言中唯一的一个不等于自己的数据。为什么?因为NaN代表的是一个范围,而不是一个具体的数值。
在早期的 isNaN() 函数中,即使传入字符串,也会返回true,这个问题已经在es6中修复。
isNaN('abc'); // true Number.isNaN('abc') // false
所以如果您想兼容旧浏览器,用 x !== x 来判断是不是NaN,是一个不错的方案。
本文共计2388个文字,预计阅读时间需要10分钟。
长久沙场的前辈们,留下了无数代码,踏过了无数的坑。但有些坑,可能一位子也摸不着,因为根本不会出现在业务代码里……+1 Function.prototype 确实是个函数类型。而自定义函数的原型是……
久经沙场的前辈们,写了无数代码,踩了无数的坑。但有些坑,可能一辈子也踩不到摸不着,因为根本不会发生在业务代码里~~
1
Function.prototype 竟然是个函数类型。而自定义函数的原型却是对象类型。
typeof Function.prototype === 'function'; // true function People() {} typeof People.prototype === 'object'; // true
所以我们设置空函数可以这么做:
// OK const noop = Function.prototype; // OK const noop = () => {};
2
一个变量真的会不等于自身吗?
const x = NaN; x !== x // true
这是目前为止js语言中唯一的一个不等于自己的数据。为什么?因为NaN代表的是一个范围,而不是一个具体的数值。
在早期的 isNaN() 函数中,即使传入字符串,也会返回true,这个问题已经在es6中修复。
isNaN('abc'); // true Number.isNaN('abc') // false
所以如果您想兼容旧浏览器,用 x !== x 来判断是不是NaN,是一个不错的方案。

