ملخص
لقد فكرت للتو في ثلاث طرق في الوقت الحالي. إذا فكر القراء في طرق جيدة أخرى ، فيمكنهم أيضًا التواصل.
Parseint
مشغل بت
Math.Floor Math.Ceil
وصف
1. parseint
1. مثال
Parseint ("13Nash") ؛ // 13Parseint ("") // nanparseint ("0xa") // 10 (hexadecimal) parseint ("13")2. قواعد التحويل:
(1). وفقًا للمثال (1) ، سيتم تحليل Parseint حتى يتوقف عند عدم وجود رقم
(2). وفقًا للمثال (2) ، فهو نان عند تحليل سلسلة فارغة ، بدلاً من 0
(3). وفقًا للمثال (3) ، يمكن لـ Parseint تحويل الأرقام السداسية إلى عشرية
(4). وفقًا للمثال (4) ، يتجاهل Parseint مسافات السلسلة
3. العيوب:
(1). وفقًا للمثال (5) ، يمكننا أن نعرف أن Parseint غير متوافق عند تحويل المصفوفات الثمانية. سوف يعتبر ES3 070 كقيمة ثماني ، لكن ES5 ستعتبر 070 على أنها عشرية.
(2). وفقًا للمثال (6) (7) ، يمكننا أن نعرف أنه عند تنفيذ Parseint ، سيتم أولاً تحويل المعلمة إلى سلسلة ثم تنفيذها في عدد صحيح
4. التفسير: لماذا (5) (6) عمليات الإعدام تحويل 070 إلى أعداد صحيحة ، لكن النتائج مختلفة؟ هذه هي أيضا النقطة الثانية في كيفية حل أوجه القصور.
لأنه عند قراءة الوثائق الرسمية التي رأيتها إذا كانت السلسلة ليست سلسلة ، يتم تحويلها إلى واحدة. هذا المقطع. وهذا يعني ، إذا كانت المعلمة ليست سلسلة ، فسيتم تحويلها أولاً إلى سلسلة ثم إلى عدد صحيح. على سبيل المثال ، يحول Parseint (070) في المثال (6) فعليًا 070 إلى سلسلة أولاً. يمكنك تجربة 070+ "" أو String (070) وتعرف أنه سيتم تحويل 070 إلى "56" لأن 070 هو نظام ثماني. ثم يصبح parseint ("56") ، والكثير النهائي هو 56. سواء كنت في ES3 أو ES5 ، هو 56
2. مشغل بت
1. مثال
console.log (0 | "123.45") // 123Console.log (0 | 123.45) // 123Console.log (0 ^ 123.45) // 123Console.log (~~ 123.45) // 123
2. المبدأ: لا يحتوي JavaScript على مفهوم الأعداد الصحيحة ، وجميع الأنواع العددية هي أرقام عائمة داعمة. عند استخدام عوامل البتات ، سيتم تحويل المعامل أولاً إلى عدد صحيح ، وهو مناسب للتشغيل. 0 ولن يغير القيم الأخرى قيمة العملية
3. Math.Floor و Math.Ceil
1. مثال
console.log (Math.Floor (2.3) // 2console.log (Math.Floor (-2.3) //-3Console.log (Math.ceil (2.3) // 3console.log (Math.ceil (-2.3) //-2
2. الاثنان غير كافيين: Math.floor يحصل على الحد الأدنى من عدد صحيح من الرقم ؛ بينما Math.Ceil يحصل على الحد الأقصى عدد صحيح. لذا ، إذا قمنا بتجميع -2.3 ، فسوف نحصل على -2 ، ولكن إذا استخدمنا Math.floor ، فسوف نحصل على -3. 2.3 يستخدم Math.ceil للحصول على 3 ، لكننا نحتاج فقط 2.
3. حل:
// تحديد وظيفة دالة بنفسك getint (val) {return val> 0؟ Math.Floor (Val): Math.ceil (Val) ؛}