جافا سكريبت Nehronical

بعد قراءة هذه الترجمة لمقال يوم كذبة نيسان (أبريل) على جافا سكريبت ، فوجئت بالأشياء الصغيرة التي يمكن أن يجد الناس خطأ فيها. والمشكلة ليست في المقالة نفسها ، ليس في الميمات والنكات حول هذه اللغة ، ولكن في حقيقة أن شخصًا ما يزعم بشكل جدي أن جافا سكريبت هي لغة برمجة سيئة. ولكن ماذا لو حاولت فهمه؟


أجب على السؤال ، إذا كنت تقوم بالتطوير على JS ، فماذا بالضبط؟ ربما كنت تعمل على FrontEnd ، ربما كنت تقوم بتطوير تطبيق BackEnd صغير على nodejs ، أو ربما أنت مطور في بنك حيث يتم كتابة جميع البرامج عليه؟ إذا كانت الحالة الثالثة تتعلق بك ، فمن الأرجح أنك كنت مخطئًا في مكان ما.


المشكلة هي أنه لا يمكن أن تصبح لغة برمجة واحدة حلاً سحريًا لاستخدام PLs المختلفة لتحقيق أهداف معينة. ولكن لسبب ما ، لا يزال شخص ما يعتقد أن بعض اللغات ستحل محل كل اللغات الموجودة ، وستصبح عالمية وتنقذ العالم كله بشكل عام. ولكن عادة ما يتم إنشاء الأدوات لحل مشاكل معينة (على الرغم من أن كلمة "محددة" يمكن أن تشمل مجموعة واسعة من هذه المهام) ، وحتى السكين السويسري لن يحل جميع مشاكلك.


تقوم 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