Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么现代ES超过浏览器支持ES_Javascript_Browser - Fatal编程技术网

Javascript 为什么现代ES超过浏览器支持ES

Javascript 为什么现代ES超过浏览器支持ES,javascript,browser,Javascript,Browser,Javascript框架将代码从现代ES传输到浏览器支持的ES,为什么我们要进行源代码到源代码的编译,而我们可以通过浏览器支持的ES版本实现同样的编译 // ES5 function greetings (name) { return 'hello ' + name } // ES6 const greetings = (name) => { return `hello ${name}`; } 因此,即使您可以使用ES5获得相同的结果,当人们希望代码能够在一个可能不支持所有最

Javascript框架将代码从现代ES传输到浏览器支持的ES,为什么我们要进行源代码到源代码的编译,而我们可以通过浏览器支持的ES版本实现同样的编译

// ES5
function greetings (name) {
   return 'hello ' + name
 }
// ES6
const greetings = (name) => {
  return `hello ${name}`;
}

因此,即使您可以使用ES5获得相同的结果,当人们希望代码能够在一个可能不支持所有最新语言功能的环境中运行时,它不像ES6那样干净,他们也不想担心将编程限制在他们知道客户端可能使用的每一种浏览器都支持的东西上

否则,您必须找出针对所有目标浏览器的最小公分母功能集,并确保不使用不在最小公分母子集中的某些功能


而且,使用transpiling,您甚至可以安全地使用最新的语言功能(只要transpiler支持),而无需等待浏览器支持。传输的一个好处是,您可以决定哪个目标环境对于要在其中运行的所有目标环境都是安全的,并且可以为该目标进行传输。例如,如果您现在认为ES6是一个安全的传输目标,那么您可以将传输目标设置为ES6,但您仍然可以在代码中使用更新得多的语言功能。当您认为ES7已经成为一个安全的目标时,您可以向前更改Transpiler目标并生成更高效的基于ES7的代码。同时,您根本不需要更改原始代码,您可以从一开始就按照最新的现代标准编写代码。

我建议您摆脱“代码行数更少”的思维模式,进入“更简洁、更具表现力的代码,它将重点放在正在执行的逻辑上,而不会与用于执行该逻辑的结构混淆“.ES6已经快6岁了。ES5已经快12岁了。如果你问我,我们也不应该瞄准它。当人们希望代码能够在一个可能不支持所有最新语言功能的环境中运行,并且他们不想担心将编程限制在他们知道在每个浏览器中都支持的东西时,他们就可以传输代码。否则,您必须找出所有目标浏览器的最小公分母功能集,并绝对确保不使用不在最小公分母子集中的功能。这不是ES6的要点。这不是关于保存几个字符的打字。我认为这里的ES5示例在这个具体案例中更加清晰。箭头函数有非常有价值的用途-这甚至不在使用它们的前5个原因中。模板文字非常有用,尽管这个例子并没有显示它们有多大的优势。好吧,如果你喜欢讨厌的代码,那就好了。你的ES5示例“讨厌的代码”怎么样?这一点都没有错,ES5示例中的
函数
声明比第二个声明更清晰,这一点很有争议。那么模板文本呢?那解构任务呢?还有其他所有的功能?它们确实使代码更简洁。我更愿意使用ES8特性而不是ES5特性编程。我是在评论你提供的具体例子,因为我认为这是一个糟糕的例子。我甚至不认为const-arrow函数定义比标准的
函数
声明更可取。所以,你不仅没有选择好的和令人信服的理由,而且我甚至不同意你选择的例子。但是,我不认为这正是OP所要求的。如果你稍微修改一下你的问题,我将被允许删除我的反对票,我将让我的评论代表我的观点。