NO1. بناء الجملة والنوع
1. تعريف الإعلان
النوع المتغير: var ، تحديد المتغير ؛ دع ، تحديد المتغيرات المحلية في مجال الكتلة (النطاق) ؛ const ، حدد الثوابت القراءة فقط.
تنسيق متغير: ابدأ بحرف ، يمنع "_" أو رمز $ ، حساس للحالة.
التخصيص المتغير: لا يتم تحديد قيمة المتغير المعلن ولكن غير المعين عند استخدامه. باستخدام المتغير غير المعلن مباشرة سوف يرمي استثناء.
يتم حساب المتغير غير المعين: النتيجة هي NAN. على سبيل المثال:
var x ، y = 1 ؛
console.log (x + y) ؛ // النتيجة هي NAN ، لأن X ليس له أي مهمة.
2. النطاق
النطاق المتغير: لا يوجد حقل إعلان كتلة قبل ES6 ، والمتغيرات تعمل على كتل الوظائف أو عالميًا. على سبيل المثال ، يدخل الرمز التالي x كـ 5.
if (true) {var x = 5 ؛} console.log (x) ؛ // 5نطاق متغير ES6: يدعم ES6 نطاق الكتلة ، ولكنه يتطلب استخدام LET لإعلان المتغيرات. الرمز التالي يخرج الاستثناء.
if (true) {let y = 5 ؛} console.log (y) ؛ // ReferenceRor: y غير محدد 1234تعويم متغير: في طريقة أو رمز عالمي ، عندما نستخدم المتغيرات قبل متغيرات الحياة ، فإننا لا نلقي استثناءات ، ولكننا نرجع غير محدد. وذلك لأن JavaScript يطفو تلقائيًا على إعلان المتغيرات إلى مقدمة الوظيفة أو العالمية. كما هو موضح في الكود التالي:
/*** Global Variable Float*/console.log (x === undefined) ؛ // سجلات "true" var x = 3 ؛/*** طريقة متغير عطف*/var myvar = "قيمتي" ؛ // طباعة النتيجة myvar هي: undefined (function () {console.log (myvar) ؛ // undefinedvar myvar = "القيمة المحلية" ؛}) () ؛ الرمز أعلاه يعادل الكود التالي: /*** Global Float* /var x ؛ console.log (x === undefined) ؛ // سجلات "true" x = 3 ؛/*** طريقة متغير عطف*/var myvar = "قيمتي" ؛ (function () {var myvar ؛ console.log (myvar) ؛ // undefinedmyvar = "local value" ؛}) () ؛المتغيرات العالمية: في الصفحة ، الكائن العالمي هو نافذة ، حتى نتمكن من الوصول إلى المتغير العالمي من خلال window.varable. على سبيل المثال:
الإصدار = "1.0.0" ؛ console.log (window.version) ؛ // الإخراج 1.0.0
NO2. بنية البيانات والنوع
1. نوع البيانات
6 الأنواع الأساسية: منطقية (صواب أو خطأ) ، فارغة (JS Case حساسة ، مختلفة عن الفارغ والخار
نوع كائن: كائن.
الكائن والوظيفة: كائن كحاوية للقيم ودالة كعملية تطبيق.
2. تحويل البيانات
الوظيفة: يمكن استخدام أساليب Parseint و Parsefloat لتحويل سلسلة إلى رقم.
Parseint: توقيع الوظيفة هو Parseint (سلسلة ، Radix) ، Radix هو عدد 2-36 الذي يمثل القاعدة العددية ، مثل العشرية أو السداسية. نتيجة الإرجاع هي عدد صحيح أو نان ، على سبيل المثال ، نتائج الإخراج التالية كلها 15.
Parseint ("0xf" ، 16) ؛ Parseint ("F" ، 16) ؛ Parseint ("17" ، 8) ؛ Parseint (021 ، 8) ؛ Parseint ("015" ، 10) ؛ Parseint (15.99 ، 10) ؛ Arseint ("15،123" ، 10) ؛ 2) ؛ parseint ("15*3" ، 10) ؛ parseint ("15e2" ، 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛ 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛ parseint ("15px" ، 10) ؛parsefloat: توقيع الوظيفة هو parsefloat (سلسلة) ، والنتيجة هي رقم أو نان. على سبيل المثال:
parsefloat ("3.14") ؛ // إرجاع الرقم parsefloat ("314e-2") ؛ // إرجاع الرقم parsefloat ("المزيد من الأحرف غير الرقمية") ؛ // إرجاع الرقم NAN3. نوع البيانات النصية
أنواع محكم: صفيف ، منطقية ، نقطة عائمة ، أعداد صحيحة ، كائن ، regexp ، سلسلة.
حالات فاصلة إضافية في Array: ["Lion" ، ، "Angel"] ، الطول 3 ، قيمة [1] هي غير صديق. ["الصفحة الرئيسية" ، "المدرسة" ،] ، تم حذف الفاصلة الأخيرة بحيث يكون الطول 3. [، "Home" ، "School"] ، طول 4.
عدد صحيح عدد صحيح: يمكن التعبير عن الأعداد الصحيحة على أنها عشرية ، أوكتال ، وسداسي عشرية ، وثنائية. على سبيل المثال:
0 ، 117 و -345 // Decimal 015 ، 0001 and -0O77 // Octal 0x1123 ، 0x00111 و -0xf1a7 // hex 0b11 ، 0b0011 و -0b11 1234 // binary floating jote: [(+| -)] [. على سبيل المثال: 3.1415926 ، -123456789 ، -3.1e+12 (3100000000000) ، .1e -23 (1E -24)
الكائن: يمكن الحصول على قيمة اكتساب الخصائص لكائن من خلال ". السمة" أو "[اسم السمة]". على سبيل المثال:
var car = {manyCars: {a: "saab" ، "b": "Jeep"} ، 7: "mazda"} ؛ console.log (car.manycars.b) ؛ // jeepconsole.log (سيارة [7]) ؛ // مازداسمة الكائن: يمكن أن يكون اسم السمة أي سلسلة أو سلسلة فارغة ، ويمكن تضمين أسماء غير صالحة في عروض الأسعار. لا يمكن الحصول على أسماء معقدة من خلال. ، ولكن يمكن الحصول عليها من خلال []. على سبيل المثال:
var unitalPropertyNames = {"": "سلسلة فارغة" ، "!": "bang!"} console.log (unitalPropertyNames. "") ؛ // syntaxerror: stringConsole.log غير متوقع (غير عتياني للأسماء [""]) ؛ // stringConsole.log فارغة (unitalpropertynames.!) ؛ // syntaxerror: رمز غير متوقع! console.log (unitalPropertyNames ["!"]) ؛ // انفجار!أحرف التحويل: تحتوي نتائج إخراج السلسلة التالية على علامات اقتباس مزدوجة لأنه يتم استخدام رمز التحويل "/" ".
var quote = "He Read/" The Cremation of Sam McGee/"by RW Service.
طريقة كسر خط السلسلة: إضافة "/" مباشرة في نهاية السلسلة ، كما هو موضح في الكود التالي:
var str = "هذه السلسلة /مكسورة /عبر خطوط متعددة." console.log (str) ؛ // يتم كسر هذه السلسلة عبر الخطوط المتعددة.
رقم 3. التحكم في التدفق ومعالجة الأخطاء
1. كتلة التعبير
الوظيفة: تُستخدم تعبيرات الكتلة عمومًا للتحكم في التدفقات ، مثل IF ، FOR ، و Why. في الكود التالي ، {x ++ ؛} هو إعلان كتلة.
بينما (x <10) {x ++ ؛}لم يكن هناك نطاق مجال كتلة قبل ES6: قبل ES6 ، تم تضمين المتغيرات المحددة في الكتل فعليًا في الأساليب أو عالميًا ، وتجاوز تأثير المتغيرات نطاق نطاق الكتلة. على سبيل المثال ، تكون نتيجة التنفيذ النهائية للرمز التالي 2 ، لأن المتغيرات المعلنة في الكتلة ACT على الطريقة.
var x = 1 ؛ {var x = 2 ؛} console.log (x) ؛ // مخرجات 2بعد ES6 ، يوجد نطاق مجال كتلة: في ES6 ، يمكننا تغيير إعلان مجال الكتلة VAR للسماح به ، بحيث ينطوي المتغير فقط على نطاق الكتلة.
2. الحكم المنطقي
القيم الخاصة التي تم الحكم عليها على أنها خاطئة: خطأ ، غير محدد ، لاغية ، 0 ، نان ، "".
أنواع منطقية بسيطة من منطقية والكائن: هناك فرق بين كاذبة وصحيح لأنواع منطقية بسيطة وخطأ وصحيح لأنواع Boolean الكائن ، والاثنان ليسا متساوين. كما في المثال التالي:
var b = new boolean (false) ؛ if (b) // return trueif (b == true) // return false
رقم 4. معالجة الاستثناء
1. exception نوع
استثناء بناء الجملة: يمكن أن يكون رمي الاستثناء من أي نوع. كما هو موضح أدناه.
رمي "خطأ 2" ؛ // نوع سلسلة رمي 42 ؛ // نوع الرقم رمي صحيح. // type type throw {toString: function () {return "أنا كائن!" ؛ }} ؛ // نوع الكائناستثناء مخصص:
// إنشاء نوع كائن userexceptionfunction userexception (message) {this.message = message ؛ this.name = "userexception" ؛} // أعد كتابة طريقة toString للحصول على معلومات مفيدة مباشرة عند إلقاء استثناء userexception.prototype.toString = function () {return this.name + ': رمي userexception جديد ("القيمة عالية جدا") ؛2. بناء الجملة
الكلمات الرئيسية: استخدم TREE {} catch (e) {} أخيرًا {} بناء جملة ، على غرار بناء الجملة C#.
أخيرًا قيمة الإرجاع: إذا أضاف أخيرًا عبارة إرجاع ، بغض النظر عن إرجاع Try.Catch بالكامل ، يتم إرجاع قيمة الإرجاع أخيرًا. كما هو موضح أدناه:
الدالة f () {try {console.log (0) ؛ رمي "الزائفة" ؛ } catch (e) {console.log (1) ؛ العودة صحيح. // يتم إيقاف بيان الإرجاع حتى يتم الانتهاء من التنفيذ في النهاية Console.log (2) ؛ // الكود الذي لن يتم تنفيذه} أخيرًا {console.log (3) ؛ العودة كاذبة // الكتابة فوق Console.log (4) ؛ // الكود الذي لن يتم تنفيذه} // "return false" يتم تنفيذ Console.log (5) ؛ // لا يمكن الوصول إليها} f () ؛ // الإخراج 0 ، 1 ، 3 ؛ العودة كاذبةأخيرًا استثناء البلع: إذا كان هناك أخيرًا عودة وهناك استثناء رمي في الصيد. لن يتم القبض على استثناء الرمي لأنه تمت تغطيته من خلال العودة أخيرًا. الرمز التالي يشبه:
وظيفة f () {try {throw "bogus" ؛ } catch (e) {console.log ('تم اكتشافه الداخلي "الزوار") ؛ رمي ه ؛ // يتم إيقاف بيان الرمي حتى يتم الانتهاء من التنفيذ أخيرًا} أخيرًا {return false ؛ // اكتب بيان الرمي في try.catch} // "return false"} try {f () ؛} catch (e) {// لن يتم تنفيذها هنا لأن الرمي في الصيد قد تم تكوينه بشكل مفرط من خلال بيان الإرجاع في console.log أخيرًا ('bogus ".كائن خطأ النظام: يمكننا استخدام خطأ {name ، message} ، على سبيل المثال: رمي (خطأ جديد ('الرسالة')) ؛
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.