阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript ECMAScript 全局函数

      全局函数的用法

      全局函数可以直接使用,执行结束后会将结果直接返回给调用者。

      9 个全局函数

      下面是最新的 ECMAScript2021 规范内规定的 9 个全局函数

      • eval()
      • isFinite()
      • isNaN()
      • parseFloat()
      • parseInt()
      • decodeURI()
      • decodeURIComponent()
      • encodeURI()
      • encodeURIComponent()

      最新的 ECMAScript2021 的规范里已经移除了 uneval()/escape()/unescape(),只有上面 9 个算全局含函数;

      关于全局函数的说明

      这里说的全局函数,是指 ECMAScript 规范内的全局函数,全局指的是 globalThis;

      在浏览器里最顶级对象是 window ,在 Nodejs 里最高输 global

      跟多人感觉setTimeout也算全局函数,其实按照 ES 规范里是不算的,我们一般谈论 JS 的标准,都是默认指 ECMAScript 规范的这个为标准!请切记切记!!!

      如果碰到了下面的面试题

      下列函数哪些是JavaScript的全局函数?
      A:encodeURI
      B:parseFloat
      C:setTimeout
      D:eval
      

      请一定要选择ABD,setTimeout 不属于全局函数,网上一群二货也挣得脸红脖子粗的 (https://www.nowcoder.com/questionTerminal/70716ef495734e70a6201593f7aac586), 这个问题没啥好争论的,因为无论什么观点都能找到有力的反驳证据;

      最简单的就是直接打开 ECMAScript 规范来看,规范在:https://tc39.es/ecma262/#sec-function-properties-of-the-global-object

      为了方便网速不好的小伙伴,我截图如下:

      https://a.axihe.com/anbang/javascript/global-function/global-fun-all.png

      小伙伴们,如果以后碰到这类争论问题,直接看规范就好,按照规范回答就绝对稳!

      即使面试官说你错了,你也要当场拿出 ECMAScript 规范作为你的证据,只要面试官稍微深入研究过 JavaSrit,必定都会以 ECMAScript 做为最终的标准!

      如果你面试真的遇到这类场景,请一定要抓住机会,如果表现优异,完全可以吊打面试官,只要你不嘴贱,不故意嘲讽他,态度好一些,加分很大,基本就过面试了。

      目录
      目录