再比开 strict 模式之前之后,js 行为简直就是两个语言。我至今还记得如果不开 strict 模式,就一个 this 的特性,都能让人眼前一黑,var 的的全局提升特性(谢天谢地现在终于用 var 的人少了,但各种小脚本或者内嵌 js 引擎里依旧 var 满天飞,你依旧必须学 var 这东西和里面坑)。
再比如习惯了类继承概念的人接触用 prototype 实现继承的时候,一定也是学得非常难受。当然现在我已经 class extends 一把梭走天下了,prototype 让我碰那是不可能的。
此言差矣。
以下是 python ,不支持你的观点。
以下是 lua ,不支持你的观点。
就一个异步函数,从古早的 callback 到后来的 Generator ,Promise ,再到终于初具人形的 async/await ,你终于以为可以一把 async/await 走天下了,结果是前面几种也全都要学和写,因为这几样东西现在依旧各自有非常多的使用场景。更重要的是有的人就是特别喜欢捣鼓 Promise 而有的人就是不想碰 Promise 只喜欢 async/await ,你必须都要会。
再比开 strict 模式之前之后,js 行为简直就是两个语言。我至今还记得如果不开 strict 模式,就一个 this 的特性,都能让人眼前一黑,var 的的全局提升特性(谢天谢地现在终于用 var 的人少了,但各种小脚本或者内嵌 js 引擎里依旧 var 满天飞,你依旧必须学 var 这东西和里面坑)。
再比如习惯了类继承概念的人接触用 prototype 实现继承的时候,一定也是学得非常难受。当然现在我已经 class extends 一把梭走天下了,prototype 让我碰那是不可能的。
再比一个风格问题,箭头函数这东西的确是个好东西,但作为一个常年后端的人,看到别人经常满天飞的箭头函数依旧要扶额。普通定义一个函数都要 const foo = () =>{ } 这种写法,我虽然知道前端很喜欢这么干,但依旧觉得大受到震撼。再还有 Array.sort() 会把数组所有成员转换成字符串然后才做排序导致第一次用的人 100%中招出 bug 啊之类的都算小问题了。