As a front-end coder, I don’t know if you will encounter some standard nouns when reading articles at ordinary times, but the introduction of these nouns and the relevance of the antecedents and consequences is always confusing. I had that experience, and I wanted to find out. This article has collected some professional terms that we often encounter but not all of them, mostly including W3C, MDN, ECMAScript, rich text, hypertext, Polyfill, shim and so on. I hope that after tracing the source, it can be helpful to my daily reading of the article, and ALSO hope to be helpful to you reading this article.

w3c

W3c, the full name of the World Wide Web Consortium, Chinese called the World Wide Web Consortium. The World Wide Web Consortium (W3C) is the most famous standardization organization in the world. It is an organization founded in 1994 with the mission of unleashing the full potential of the Web world by promoting the development of common protocols and ensuring their universality.

This is the official response. After reading it, I feel like I know every word, but when put together, I don’t seem to know what it says. So what exactly is this organization for? What does it have to do with our usual development?

The word World Wide Web Consortium makes me think of League of Legends, which feels like doing something public.

W3c is an organization, and it is a standardization organization.

Standardization we understand that the web is full of information involving many different roles, platform providers, application developers, content providers, etc. We know that the purpose of the World Wide Web is to reach as many users as possible with consistent information.

In order to solve the incompatibility problems caused by different platforms, technologies and developers in Web applications, the World Wide Web Consortium (W3C) has developed a series of standards and urged Web application developers and content providers to follow these standards. The content of the standard includes specifications for using the language, guidelines for use in development, and explanations of engine behavior.

2. What does this standardized organization mainly do? What are the standards we are exposed to?

The group is dedicated to standardizing the Web, most importantly developing Web specifications (called Recommendations) that describe web communication protocols (such as HTML and XHTML) and other building blocks. Usually we contact with the standard, such as: hypertext markup language, HTML5 specification, event specification, we usually contact DOM level one, level two specifications are formulated by the organization.

3. How to standardize? In other words, how does a new standard emerge?

The W3C standardization process has seven main steps. The steps cited here are from the W3C program for w3cSchool:

  • 1. W3C received a submission
  • 2. Publish a record by W3C
  • 3. Create a working group by W3C
  • 4. Publish a working draft by the W3C
  • 5. Issue a candidate recommendation by the W3C
  • 6. Issue a proposed recommendation by the W3C
  • 7. Recommendations issued by W3C

The W3C is a membership organization. Each member can submit to the W3C organization as needed, and then go through a series of steps to achieve standardization. Of course, not every submission will be standardized.

4. Is it over after the standard is established?

Once the standard is established, it needs the support of all parties to implement it. It’s not mandatory, of course, and I think that’s one of the reasons the W3C calls its standard a recommendation. Modern browsers are standard browsers, which means they implement w3c specifications (HTML, CSS, DOM, BOM) and are supported by browser vendors, so they behave consistently.

As can be seen from the previous standardization procedures, a new standard is very strict to be standardized, and it may take a long time. In the implementation of specific standards, different browsers support different times.

ECMAScript

ECMAScript is also a standard that is mainly used to standardize JavaScript. For example, ES6 and ES7 are the products of this standard. The standard is conducted by ECMA International and supervised by committee TC39. It was called ECMAScript mainly because Javascript was already being trademarked, so the commission adopted the ECMAScript naming convention.

The story goes that Microsoft invented JScript in version 3.0 of Internet Explorer. Fearing a monopoly, Netscape, the inventor of Javascript, quickly submitted Javascript to the European Computer Manufacturers Association (ECMA) to standardize the language. In order to establish language standardization, ECMA submitted JavaScript 1.1 as a draft to the European Computer Manufacturers Association (ECMA) in 1997, and Technical Committee 39 (TC39) was appointed to “standardize a common, cross-platform, vendor-neutral standard for syntax and semantics of scripting languages”. Finally, with the help of Netscape, Sun, Microsoft, Borland, and others, ECMA-262 defines a new scripting language called ECMAScript.

Most JavaScript syntax in use today is the ECMA-262 standard. In addition to ECMA-262, the more well-known standard is ES5, which was standardized in 2009 and is fairly fully implemented in all modern browsers. ES6 was standardized in 2015. This standard is partially implemented in most modern browsers; ES7, ES8, and ES9. It is also important to learn more about these new specifications during normal development to avoid some problems.

As with the W3C, a new standard goes through a number of steps to standardize. The new ECMAscript standard has five main stages:

  • Stage 0 – Strawman
  • Stage 1-Proposal
  • Stage 2 – Draft
  • Stage 3
  • Stage 4-Finished

shim & polyfill

Mention the ESMAscript standard and two other terms come to mind: polyfill and shim. What are they?

As we know, modern browsers have fully implemented the ES5 standard, and most of the ES6 standard has been implemented. However, ES7, ES8 and other proposals have not been implemented, so if we want to use them, we generally need special treatment. This process is commonly called polyfill or shim. These two terms are derived from the lack of standardization of browsers and the language standard of browser engine implementation has not reached a higher level. Patch needs to be made, which can be understood as patching.

1, the shim

Shim refers to emulating a new API in an old environment and implementing it only with the tools already in the old environment so that all browsers have the same behavior.

We would say in development that Vue can’t be used in IE8 because Object.definePropery is a non-shim property and that’s the same reason.

2, polyfill

Polyfill is a piece of code (or plug-in) that provides functionality that developers expect to be supported natively in browsers. The library checks to see if the browser supports an API and loads the corresponding Polyfill if it does not.

For example, in order to be able to use the higher version syntax in the lower version, a polyfill is introduced, the most typical being babel-polyfill.

MDN

MDN stands for Mozilla Developer Network. Unlike the previous W3C and ECMAscript, MDN was not created for standardization. In the upper left corner of the MDN website is MDN Web Docs, which is clearly a development document for developers.

Of course, w3c and ECMAScript also have corresponding documents, but usually in the development process, people are more used to use MDN to query information, mainly MDN is also too good, there are various easy to understand instructions and compatibility instructions.

MSDN

Full name Microsoft Developer Network, the development of programs running on IE browser need to refer to the document. In view of the usual IE support to 11, many attributes have been standardized, so usually used less.