كائن JavaScript العالمي

تفاصيل الكائن العام في JavaScript

يوفر JavaScript ملفكائن عالميالذي يحتوي على مجموعة من الخصائص والوظائف والكائنات التي يتم الوصول إليها عالميًا ، بدون مساحة اسم.

الخصائص هي:

  • Infinity
  • NaN
  • undefined

الوظائف هي:

  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()
  • eval()
  • isFinite()
  • isNaN()
  • parseFloat()
  • parseInt()

هذه هي الأشياء:

والأخطاء:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

أصف الأخطاء في هذامرجع أخطاء JavaScriptبريد.

دعنا الآن نصف هنا الخصائص والوظائف العامة.

Infinity

Infinityفي JavaScript هي القيمة التي تمثلهاما لا نهاية.

اللانهاية الإيجابية. للحصول على اللانهاية السالبة ، استخدمالمشغل أو العامل:-Infinity.

تلك تعادلNumber.POSITIVE_INFINITYوNumber.NEGATIVE_INFINITY.

إضافة أي رقم إلىInfinityأو الضربInfinityلأي رقم ، لا يزال يعطيInfinity.

NaN

العالميةNaNvalue هي اختصار لـNot a Number. يتم إرجاعها بواسطة عمليات مثل صفر مقسومًا على صفر أو عمليات parseInt () غير صالحة أو عمليات أخرى.

parseInt()    //NaN
parseInt('a') //NaN
0/0           //NaN

الشيء الخاص الذي يجب مراعاته هو أن ملفNaNالقيمة لا تساوي أبدًا أخرىNaNالقيمة. يجب عليك استخدام ملفisNaN()دالة global للتحقق مما إذا كانت القيمة يتم تقييمهاNaN:

NaN === NaN //false
0/0 === NaN //false
isNaN(0/0)  //true

undefined

العالميةundefinedالملكية تحمل القيمة البدائيةundefined.

تشغيل دالة لا تحدد إرجاع القيمةundefined:

const test = () => {}
test() //undefined

على عكسNaN، يمكننا مقارنة ملفundefinedقيمة معundefined، وتحقق:

undefined === undefined

من الشائع استخدام ملفtypeofعامل لتحديد ما إذا كان المتغير غير معرف:

if (typeof dog === 'undefined') {

}

decodeURI()

ينفذ العملية المعاكسة لـencodeURI()

decodeURIComponent()

ينفذ العملية المعاكسة لـencodeURIComponent()

encodeURI()

تُستخدم هذه الوظيفة لتشفير عنوان URL كامل. يقوم بتشفير جميع الأحرف إلى كيانات HTML الخاصة بهم باستثناء تلك التي لها معنى خاص في بنية URI ، بما في ذلك جميع الأحرف والأرقام ، بالإضافة إلى تلك الأحرف الخاصة:

[email protected]#{{content}}amp;*()=:/,;?+-_.

مثال:

encodeURI("http://flaviocopes.com/ hey!/")
//"http://flaviocopes.com/%20hey!/"

encodeURIComponent()

مشابه لencodeURI()وencodeURIComponent()من المفترض أن يكون لديك وظيفة مختلفة.

بدلاً من استخدامه لتشفير URI بالكامل ، يقوم بتشفير جزء من URI.

يقوم بتشفير جميع الأحرف إلى كيانات HTML الخاصة بهم باستثناء تلك التي لها معنى خاص في بنية URI ، بما في ذلك جميع الأحرف والأرقام ، بالإضافة إلى تلك الأحرف الخاصة:

-_.!~*'()

مثال:

encodeURIComponent("http://www.example.org/a file with spaces.html")
// "http%3A%2F%2Fwww.example.org%2Fa%20file%20with%20spaces.html"

eval()

هذه وظيفة خاصة تأخذ سلسلة تحتوي على كود JavaScript ، وتقوم بتقييمها / تشغيلها.

نادرًا ما يتم استخدام هذه الوظيفة ولسبب: يمكن أن تكون خطيرة.

أوصي بالقراءةهذه المقالةحول هذا الموضوع.

isFinite()

إرجاع صحيح إذا كانت القيمة التي تم تمريرها كمعامل محدودة.

isFinite(1)                        //true
isFinite(Number.POSITIVE_INFINITY) //false
isFinite(Infinity)                 //false

isNaN()

إرجاع صحيح إذا تم تمرير القيمة كمعلمة يتم تقييمهاNaN.

isNaN(NaN)        //true
isNaN(Number.NaN) //true
isNaN('x')        //true
isNaN(2)          //false
isNaN(undefined)  //true

هذه الوظيفة مفيدة للغاية لأن ملفNaNالقيمة لا تساوي أبدًا أخرىNaNالقيمة. يجب عليك استخدام ملفisNaN()دالة global للتحقق مما إذا كانت القيمة يتم تقييمهاNaN:

0/0 === NaN //false
isNaN(0/0)  //true

parseFloat()

يحبparseInt()وparseFloat()يستخدم لتحويل قيمة سلسلة إلى رقم ، لكنه يحتفظ بالجزء العشري:

parseFloat('10,000', 10) //10     ❌
parseFloat('10.00', 10)  //10     ✅ (considered decimals, cut)
parseFloat('10.000', 10) //10     ✅ (considered decimals, cut)
parseFloat('10.20', 10)  //10.2   ✅ (considered decimals)
parseFloat('10.81', 10)  //10.81  ✅ (considered decimals)
parseFloat('10000', 10)  //10000  ✅

parseInt()

تُستخدم هذه الوظيفة لتحويل قيمة سلسلة إلى رقم.

حل جيد آخر للأعداد الصحيحة هو استدعاءparseInt()وظيفة:

const count = parseInt('1234', 10) //1234

لا تنسَ المعلمة الثانية ، وهي الجذر ، دائمًا 10 للأرقام العشرية ، أو قد يحاول التحويل تخمين الجذر وإعطاء نتائج غير متوقعة.

parseInt()يحاول الحصول على رقم من سلسلة لا تحتوي فقط على رقم:

parseInt('10 lions', 10) //10

ولكن إذا لم تبدأ السلسلة برقم ، فستحصل علىNaN(ليس رقمًا):

parseInt("I'm 10", 10) //NaN

أيضًا ، تمامًا مثل الرقم ، لا يمكن الاعتماد عليه مع وجود فواصل بين الأرقام:

parseInt('10,000', 10) //10     ❌
parseInt('10.00', 10)  //10     ✅ (considered decimals, cut)
parseInt('10.000', 10) //10     ✅ (considered decimals, cut)
parseInt('10.20', 10)  //10     ✅ (considered decimals, cut)
parseInt('10.81', 10)  //10     ✅ (considered decimals, cut)
parseInt('10000', 10)  //10000  ✅

المزيد من دروس js: