JavaScript Nehronikal

Setelah membaca terjemahan artikel April Mop di JavaScript ini, saya terkejut dengan hal-hal kecil apa saja yang bisa ditemukan orang. Dan masalahnya bukan pada artikel itu sendiri, bukan dalam meme dan lelucon tentang bahasa ini, tetapi pada kenyataan bahwa seseorang secara neironik mengklaim bahwa JavaScript adalah bahasa pemrograman yang buruk. Tetapi bagaimana jika Anda mencoba memahaminya?


Jawab pertanyaannya, jika Anda mengembangkan JS, lalu apa sebenarnya? Mungkin Anda bekerja di FrontEnd, mungkin Anda sedang mengembangkan aplikasi BackEnd kecil di nodejs, atau mungkin Anda adalah pengembang di bank tempat semua perangkat lunak ditulis di atasnya? Jika kasus ketiga adalah tentang Anda, maka kemungkinan besar Anda keliru di suatu tempat.


Masalahnya adalah bahwa tidak satu bahasa pemrograman tunggal dapat menjadi obat mujarab untuk menggunakan PL yang berbeda untuk mencapai tujuan tertentu. Tetapi untuk beberapa alasan, seseorang masih percaya bahwa beberapa bahasa akan menggantikan semua yang ada, menjadi universal dan umumnya menyelamatkan seluruh dunia. Tetapi biasanya alat diciptakan untuk memecahkan masalah khusus (meskipun kata "spesifik" dapat mencakup berbagai tugas yang sangat luas ini), dan bahkan pisau Swiss tidak akan menyelesaikan semua masalah Anda.


JavaScript melakukan pekerjaan dengan baik untuk tugas-tugas yang paling sering digunakan. Dan sebagian besar kasus longgar yang dianggap dalam artikel di atas adalah kuda bulat dalam ruang hampa dan tidak akan digunakan dalam pengembangan nyata.


Pertama-tama, saya ingin memberikan potongan kode berikut sebagai contoh:


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