暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

为什么我讨厌JavaScript

前端新世界 2022-02-16
384
喜欢就关注我们吧


本文翻译自:
https://dev.to/alichraghi/why-i-hate-javascript-22pb

JavaScript已经风靡了很多年。它绝对是使用最广泛的编程语言。但于我而言这没有意义。因为我讨厌JavaScript,以下是我对JavaScript敬而远之的几个原因。

没有静态类型

是的,没有静态类型,大多数人认为这很好,因为可以随时更改变量类型。但我觉得很糟糕!原因在于:

  • 降低运行时速度
  • 降低初始化速度
  • 编程容易出错
  • 未知的数据大小,容易导致内存泄漏

当然,我并不是说动态类型不好,但就很奇怪:为什么JavaScript没有静态类型?

不合逻辑的比较

这个在JS中比较有名。


上图还不够说明问题吗?再看下面的例子

"3" - 3 → 0 
"3" + 3 → 33
9999999999999999 == 10000000000000000 → true
0.1 + 0.2 === 0.3 → false // (this website explains https://0.30000000000000004.com )
1.0000000000000001 === 1 → true
typeof NaN == 'number' → true
NaN != NaN → true

默认全局变量

嗯……怎么会?为什么会发生这种情况?毫无头绪。

function my_func({
    x = 10;
}
my_func();
console.log(x) → 10

(当然,你可以用var
let
解决这个问题)

大多数编程语言对全局变量都非常敏感。你甚至不能在rust中使用全局变量(可以使用static mut
,但需要始终将其用作不安全的变量)。

因为全局变量可以被代码的任何部分更改,这使得我们难以记住或推理每种可能的用途,再则我们不能将全局变量限制在代码的某些部分。

sort()函数

.sort()
函数是一种用于数组排序的方法。但不知道为什么它不喜欢数字数组。看下面的例子

[8192415].sort() → [1192458]

...

我已经解释了我讨厌JavaScript的理由,你同意吗?

每日分享前端插件干货,欢迎关注!

点赞和在看就是最大的支持❤️

文章转载自前端新世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论