JavaScript神经病

在阅读了有关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 , . ,


All Articles