JS基础语法:遵循ECMA 262标准
JS-Web-API:遵循W3C标准
要想在浏览器运行运行代码,我们开发的代码既要遵循ECMA 262标准,又要遵循W3C标准。
W3C标准中关于JS的规定有:DOM操作,BOM操作,事件绑定,ajax请求(包括http协议),存储。
比如实现页面弹框 window.alert(123),浏览器需要做:定义一个window全局变量,对象类型;给他定义一个alert属性,属性值是一个函数。
获取元素document.getElementById(id),浏览器需要做:定义一个document全局变量,对象类型;给它定义一个getElementById的属性,属性值是一个函数。
但是W3C标准没有规定任何JS基础相关的东西,他不管什么变量类型、原型、作用域和异步,只管定义用于浏览器中JS操作页面的API和全局变量。
全面考虑,JS内置的全局函数和对象有哪些?
答:ECMA标准中Object Array Boolean String Math JSON等,上面提到的window document,还有一些未定义的全局变量,如navigator.userAgent.
常说的JS(浏览器执行的JS)包含两部分:JS基础知识(ECMA262标准);JS-Web-API(W3C标准)。所以说node.js包括ECMA 262标准,但是它就不需要遵循W3C标准,因为它属于服务器端的,所以遵循服务器端的一些标准,可能叫做JS-Server-API,而不是浏览器端的标准,JS-Web-API。
网友评论