官术网_书友最值得收藏!

Analyzing code for hidden errors

Let's suppose that you have the following JavaScript:

// src/Ch01/Ch01_Demo.js
function makePerson(id, name) { return {id, name}; }

A lot of things can go wrong with the preceding code; they are as follows:

  • The caller can pass in nulls or undefined values as arguments
  • The caller can pass in unintended types of arguments
  • The caller can manipulate the returned person object any way they like, for example, they can add or remove properties

In other words, this code doesn't prevent a number of potential errors. In JavaScript, we have linters, such as ESLint (https://eslint.org/), that check for a lot of possible errors, but you have to remember to find them, enable them, and then work around their limitations. A linter can be helpful in various other ways, such as by pointing out the recommended best practices in a coding style. However, linters in JavaScript are often re-purposed to perform static type checking tasks as well; because they offer so much flexibility and need to be configured (in fact, people usually upload their preferred sets of configuration for different styles of programming), there may be large differences in what exactly gets checked across different codebases.

主站蜘蛛池模板: 金平| 清远市| 曲阜市| 泰州市| 九江市| 喀喇沁旗| 石首市| 长春市| 平邑县| 溧水县| 称多县| 罗甸县| 驻马店市| 会泽县| 壤塘县| 五寨县| 响水县| 名山县| 大连市| 常德市| 武乡县| 徐闻县| 芦山县| 双江| 陈巴尔虎旗| 宁安市| 砀山县| 香港| 鄂伦春自治旗| 昭觉县| 河池市| 富民县| 海宁市| 柳河县| 商丘市| 通许县| 荆门市| 连州市| 社旗县| 石渠县| 钦州市|