ميزات جافا سكريبت --تحبها ام تكرهها

console.log(8 * null)
// → 0
console.log("5" - 1)
// → 4
console.log("5" + 1)
// → 51
console.log("five" * 2)
// → NaN

كمطور برمجيات عمل على لغة السي شارب لسنوات

استغربت حقا عندما رايت كود جافا سكريبت هذا

اي منطق من ضرب ثمانية ب"لا تعيين " واعتباره صفر

او طرح الرقم 1 من عبارة "5"

شخصيا لا اجد ان هذا الامر نوع من المرونة ولا اجده يسهل تعلم البرمجة للمبتدئين

ما الغاية من جعل لغة الجافا سكريبت مهلهلة جدا من ناحية اكتشاف وتحديد الاخطاء البرمجية المنطقية وثم اعتبار ذلك ميزة فيها؟!


عندما تفهم الطريقة التي تعمل بها جافا اسكربت ستدرك ان هذة المخرجات منطقية .

جافا اسكربت تقوم بعملية تسمى type coercion و هي عملية تحول النوع إلى نوع آخر. و هي عملية تقوم بها اسكربت تلقائيا.

مثلا: في المثال الأول تقوم جافا تسكربت بتحويل الnull إلى نوع رقمي و هو ال0 و حاصل ضرب 0 على اي رقم هو ال 0