在阅读了有关JavaScript的愚人节文章的翻译后,我惊讶于人们会发现什么小毛病。问题不在于文章本身,也不在于关于这种语言的模因和笑话,而是因为有人讽刺地宣称JavaScript是一种不好的编程语言。但是,如果您想了解他怎么办?
回答问题,如果您正在使用JS开发,那么究竟是什么?也许您正在使用FrontEnd,也许您正在nodejs上开发一个小型BackEnd应用程序,或者您是银行的所有软件都写在上面的开发人员?如果第三种情况与您有关,则很可能是您在某个地方弄错了。
问题在于,没有一种编程语言可以成为使用不同PL实现某些目标的灵丹妙药。但是出于某种原因,仍然有人认为某种语言将取代所有现有的语言,成为通用语言,并普遍拯救整个世界。但是通常会创建工具来解决特定问题(即使“特定”一词可以包括相当多的此类任务),甚至连瑞士刀也无法解决您的所有问题。
JavaScript可以很好地完成最常使用的任务。而且,以上文章中考虑的大多数宽松情况都是真空中的球形马,根本不会用于实际开发中。
首先,我以下面的代码段为例:
const x={
i: 1,
toString: function(){
return this.i++;
}
}
if(x==1 && x==2 && x==3){
document.write("This will be printed!")
}
, . — «?!» « ?». . . JavaScript — . — (===) (==). , . () . - `x == 1 && x == 2 && x == 3` - , , :
public class JavaScript {
public static void main(String[] args) {
AnonymousObject x = new AnonymousObject(1);
if (x.equals(new AnonymousObject(1)) && x.equals(new AnonymousObject(2)) && x.equals(new AnonymousObject(3))) {
System.out.println("JavaScript == Java // true");
}
}
}
class AnonymousObject {
public int i;
public AnonymousObject(int i) {
this.i = i;
}
public boolean equals(AnonymousObject that) {
return this.i++ == that.i;
}
}
- .equals(), .toString(), , .toString() , . JS , Java .
.sort(), :
[-2, -7, 0.0000001, 0.0000000006, 6, 10].sort()
// [-2, -7, 10, 1e-7, 6, 6e-10]
:
[-2, -7, 0.0000001, 0.0000000006, 6, 10].sort((a, b) => a - b)
// [-7, -2, 6e-10, 1e-7, 6, 10]
- , < > , . , , . - , ?!
JS. , JavaScript- , - - , — web . , / / . - . , - . nodejs, : comlink, paralleljs, . , . .
, , . - , , . , :
: , , , .
UPD::
1. , , , , . , - , ,
2. , JS , . , . JS, , , - . JS , . ,