0-قضم ما إذا كان يتم تهيئة المتغيرات والمعلمات
إذا (x) {} // يتم تهيئة المتغير أو أن المتغير غير فارغ أو أن المتغير ليس صفرًالا تتطلب وظيفة 1-Declaration إعلان قيمة الإرجاع أو نوع المعلمة ، ونهاية الجملة لا تتطلب حتى "؛" ؛
وظيفة SUM (i1 ، i2) {return i1+i2}2 يعلن بشكل مختلف وظائف مجهولة للاستخدام على الفور
var f = function (i1 ، i2) {return i1+i2 ؛} ؛ التنبيه (F (1،2)) ؛ // تنبيه الوظيفة العادية المجهولة (الدالة (i1 ، i2) {return i1+i2 ؛} (3،4)) ؛ // إعلان مباشرة ، استخدم على الفور3-JS ليس لديها مفهوم للطبقة ، لذلك تبدو بعض الطرق مثل الفصول
وظيفة الشخص (الاسم ، العمر) {this.name = name ؛ // إضافة سمات ديناميكية ، على غرار الديناميكية A في C#. a = new ExpendOobject () ؛ this.age = العمر ؛ this.sayhello = function () {Alert ('hello ، اسمي هو'+name+'i am'+age+'years.')} ؛} var p1 = شخص جديد ('lorry' ، 21) ؛ p1.sayhello () ؛ // call p1.gender = 'male' مثل الفصل ؛ // إضافة تنبيه سمة "الجنس" بشكل ديناميكي (p1.gender) ؛كائنات 4-Array هي صفائف ، ولا تحتاج إلى التأهيل المسبق لطول الصفيف.
var arr = new array () ؛ arr [0] = 0 ؛ arr [1] = 1 ؛ arr [2] = 2 ؛ for (var i = 0 ؛ i <= arr.length-1 ؛ i ++) {arer (arr [i]) ؛}5-Array هي صفيف ، وأيضًا قاموس ، وأيضًا كومة
var dict = new array () ؛ // as dictionary ، استخدم dict ['i'] = 'wo' ؛ dict ['love'] = 'ai' ؛ dict ['you'] = 'ni' ؛ Alert (dict ['i']) ؛ // Call Alert (dict.love) ؛ // استدعاء مثل سمات الاتصال (خصائص اللغة الديناميكية) لـ (var k in dict) {// travel Alert (k) ؛ // 'i' ، 'love' ، 'you'-> print Out key} لـ (var k of dict) {// travel Alert (k) ؛ // 'wo' ، 'ai' ، 'ni'-> print Out value} var arr = [1،2،3،4،5] ؛6 نقل جميع العناصر التي يمكن استدعاؤها على الصفحة الحالية
var s = null ؛ for (var k في المستند) {// خصائص الكائن هي s+= k+"؛" ؛} التنبيه (s) ؛استخدام 7 عمليات ترجمة مماثلة للمصفوفة للحصول على أحرف في موضع محدد للسلسلة
var s = 'hello ، world!' ؛ s [0] ؛ // 'H's [6] ؛ // '' S [12] ؛ // '!' S [13] ؛ // لن تقوم الفهارس غير المحددة خارج النطاق بالإبلاغ عن خطأ ، لكنها ستعود دائمًا غير محددة. تجدر الإشارة إلى أن السلسلة غير قابلة للتغيير. إذا قمت بتعيين قيمة إلى فهرس معين من السلسلة ، فلن يكون هناك أي أخطاء ، ولكن لا يوجد تأثير: var s = 'test' ؛ s [0] = 'x' ؛ ALERT (s) ؛ // s لا يزال "اختبار"
8 كبسولة صغيرة
var s = 'hello' ؛ s.toupperCase () ؛ // return 'hello' var s = 'hello' ؛ s.toLowerCase () ؛ // العودة "مرحبا"
9-search للموقع الذي تظهر فيه السلسلة المحددة
var s = 'hello ، world' ؛ s.indexof ('World') ؛ // return 7s.indexof ('World') ؛ // لم يتم العثور على فرعية محددة ، إرجاع -110-GET SUNSTRINGS من فاصل الفهرس المحدد السلسلة
var s = 'hello ، world'ssubstring (0 ، 5) ؛ // ابدأ من الفهرس 0 إلى 5 (باستثناء 5) ، إرجاع 'hello's.substring (7) ؛ // ابدأ من الفهرس 7 إلى النهاية ، إرجاع "العالم"
كائن JavaScript 11 هو نوع بيانات جمع غير مرتبة ، يتكون من عدة أزواج ذات قيمة رئيسية.
var Xiaoming = {name: 'xiaoming' ، الولادة: 1990 ، المدرسة: "رقم 1 المدرسة المتوسطة" ، الارتفاع: 1.70 ، الوزن: 65 ، الدرجة: NULL // آخر زوج من القيمة الرئيسية لا يلزم إضافته "، '} ؛ xiaoming.name ؛ // 'xiaoming'xiaoming.birth ؛ // 1990 يتم الوصول إلى السمة من خلال. المشغل ، ولكن هذا يتطلب أن يكون اسم السمة اسم متغير صالح. إذا كان اسم السمة يحتوي على أحرف خاصة ، فيجب إرفاقه بـ []: var xiaohong = {name: 'Xiaohong' ، 'Middle-School': 'No.1 Middle School'} ؛ Xiaohong ['middle-school'] ؛ // 'No.1 School'xiohong [' name '] ؛ // 'xiaohong'xiaohong.name ؛ // 'xiaohong'xiaohong.age ؛ // غير محدد12 لاكتشاف ما إذا كان لدى Xiaoming سمة معينة ، استخدم المشغل في:
"الاسم" في Xiaoming ؛ // true'grad "في Xiaoming ؛ // false *** إذا حددت وجود خاصية ، فقد لا تكون هذه الخاصية Xiaoming ، وقد يتم موروثة بواسطة Xiaoming:" tostring "في Xiaoming ؛ // True *** لتحديد ما إذا كانت خاصية مملوكة من قبل Xiaoming نفسها ، غير الموروثة ، يمكنك استخدام طريقة HasownProperty (): xiaoming.hasownproperty ('name') ؛ // truexiaoming.hasownproperty ('tostring') ؛ // خطأ شنيع13 خريطة
var m = New Map ([['Michael' ، 95] ، ['Bob' ، 75] ، ['Tracy' ، 85]]) ؛ // 2d method method mething m.get ('Michael') ؛ // 95 var m = new map () ؛ // تهيئة mapm.set الفارغة مباشرة ('Adam' ، 67) ؛ // إضافة مفتاح جديد valuem.set ('bob' ، 59) ؛ M.Has ('Adam') ؛ // ما إذا كان المفتاح "آدم": truem.get ('adam') ؛ // 67M.Delete ('Adam') ؛ // حذف المفتاح 'adam'm.get (' adam ') ؛ .طريقة foreach المدمجة القابلة للتأليف 14 ، والتي تتلقى وظيفة وتدعو تلقائيًا إلى كل تكرار.
var a = ['a' ، 'b' ، 'c'] ؛ a.foreach (وظيفة (عنصر ، فهرس ، صفيف) {// العنصر: أشر إلى قيمة العنصر الحالي / / الفهرس: أشر إلى الفهرس الحالي // صفيف: أشر إلى كائن الصفيف نفسه (عنصر) ؛}) ؛ مجموعة مشابهة للمصفوفة ، لكن SET لا تحتوي على فهرس ، وبالتالي فإن وظيفة رد الاتصال لها كحد أقصى لمعلمتين: var s = new set (['a' ، 'b' ، 'c']) ؛ S.Foreach (وظيفة (عنصر ، تعيين) {Alert (element) ؛}) ؛ معلمات وظيفة رد الاتصال الخريطة هي القيمة ، المفتاح والخريطة نفسها: var m = new map ([[1 ، 'x'] ، [2 ، 'y'] ، [3 ، 'z']) ؛ m.foreach (الدالة (القيمة ، المفتاح ، الخريطة) {ALERT (value) ؛}) ؛ var a = ['a' ، 'b' ، 'c'] ؛ a.foreach (function (element) {Alert (element) ؛}) ؛15 استخدام MAP () MAP () ، تمر في وظيفتنا الخاصة ، وستحصل على صفيف جديد كنتيجة:
var arr = [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9] ؛ arr.map (function (x) {return x*x ؛}).استخدام 16 خريطة () لتحويل جميع الأرقام في صفيف إلى سلاسل:
var arr = [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9] ؛ arr.map (سلسلة) ؛ // ['1' ، '2' ، '3' ، '4' ، '5' ، '6' ، '7' ، '8' ، '9']
17 استخدام Array تقليل () للقيام بحسابات تراكمية
var arr = [] ؛ for (var x = 1 ؛ x <= 100 ؛ x ++) {arr.push (x) ؛ // ضع 1 ~ 100 في Array} ALERT (arr.reduce (function (x ، y) {return x+y ؛ // sum cumulative compoes of arr ، return the sum result})) ؛18 استخدام تقليل () لجعل تحويل رائع: تحويل [1 ، 2 ، 5 ، 8 ، 0] إلى عدد صحيح 12580
var arr = [1 ، 2 ، 5 ، 8 ، 0] ؛ ALERT (arr.reduce (function (x ، y) {return x*10+y ؛})) ؛19 استخدام مرشح () لتصفية عناصر معينة من الصفيف
var arr = [0،1،2،3،4،5،6،7،8،9] '] ؛ Alert (arr.filter (function (s) {return s && s.trim () ؛ // note: لا توجد طريقة trim () في الإصدارات أدناه ie9})) ؛ // ['a' ، 'b' ، 'c']تقوم طريقة 20-Array's Sort () بتحويل جميع العناصر إلى سلسلة أولاً ثم تقوم بفرزها ، لذلك ...
[10 ، 20 ، 1 ، 2] .SORT () ؛ // [1 ، 10 ، 2 ، 20] لذلك إذا كنت تريد الفرز حسب حجم الرقم ، يمكنك كتابة هذا: var arr = [] ؛ for (var x = 1 ؛ x <= 10 ؛ x ++) {arr.push (x) ؛} document.write (arr+"<br/>) ؛ document.write (arr.sort (x ، y) لتجاهل تأثير الحروف ، يجب أولاً التحويل إلى أحرف كبيرة أو صغيرة Var arr = ['Google' ، 'Apple' ، 'Microsoft'] ؛ ALERT (ARR.SORT (function (S1 ، S2) {var x1 = s1.touppercase () ؛ var x2 = s2.touppercase () ؛ return x1 <x2 // ['Apple' ، 'Google' ، 'Microsoft']بنية برنامج الـ 21 الإسقاط
① قم بتعيين الوظيفة كقيمة الإرجاع للمعلمة ، اتصل بالمعلمة للحصول على نتيجة حساب var arr = [] ؛ for (var n = 1 ؛ n <101 ؛ n ++) {arr.push (n) ؛} function lazy_sum (arr) {var sum = function () {return arr.dreus (function (x ، y) {return x+y ؛}) ؛ } return sum ؛} var f = lazy_sum (arr) ؛ Alert (f ()) ؛ ② لا يتم تنفيذ الوظيفة التي تم إرجاعها على الفور ، ولكن لا يتم تنفيذها حتى تسمى f () count count () {var arr = [] ؛ لـ (var i = 1 ؛ i <= 3 ؛ i ++) {arr.push (function () {return i * i ؛}) ؛ } return arr ؛} var results = count () ؛ // هناك 3 functionsvar f1 = النتائج [0] ؛ var f2 = النتائج [1] ؛ var f3 = النتائج [2] ؛ F1 () ؛ // 16 تشير الوظيفة التي تم إرجاعها إلى المتغير i ، ولكن لم يتم تنفيذها على الفور. F2 () ؛ // 16 عندما تعود جميع الوظائف الثلاث ، أصبح المتغير الذي أشرت إليه 4 ، f3 () ؛ // 16 لذلك ، فإن النتيجة النهائية هي 16 *** عند إرجاع الإغلاق ، تذكر: لا تشير إلى أي متغيرات حلقة ، أو متغيرات ستتغير في المستقبل! ③ ما إذا كان يجب أن تشير إلى متغيرات الحلقة؟ تتمثل الطريقة في إنشاء وظيفة أخرى واستخدام معلمات الوظيفة لربط القيمة الحالية لمتغير الحلقة. بغض النظر عن كيفية تغيير متغير الحلقة في الوقت اللاحق ، تظل القيمة المرتبطة بمعلمة الوظيفة دون تغيير: عدد الوظائف () {var arr = [] ؛ لـ (var i = 1 ؛ i <= 3 ؛ i ++) {arr.push (function (n) {return function () {return n*n ؛}} (i)) ؛ } return arr ؛} var results = count () ؛ var f1 = النتائج [0] ؛ var f2 = النتائج [1] ؛ var f3 = النتائج [2] ؛ تنبيه (F1 ()) ؛ // 1alert (f2 ()) ؛ // 4alert (f3 ()) ؛ // 9 ④ في اللغات بدون آلية فئة ووظيفة فقط ، بمساعدة الإغلاق ، يمكن تغليف متغير خاص عن الوظيفة Creat_counter (init) {var n = init || 0 ؛ إرجاع {add: function () {n+= 1 ؛ العودة ن ؛ }}} var c = creat_counter () ؛ Alert (c.add ()) ؛ // 1alert (c.add ()) ؛ // 2alert (c.add ()) ؛ // 3 *** في الكائن الذي تم إرجاعه ، يتم تنفيذ إغلاق ، والذي يحمل المتغير المحلي n ، ولا يمكن الوصول إلى المتغير من النهر الخارجي على الإطلاق. بمعنى آخر ، الإغلاق هو وظيفة تحمل الدول ، ويمكن إخفاء حالتها تمامًا عن الخارج. ⑤ استخدم Math.Pow (x ، y) لحساب x^2 أو x^3 //math.pow(x ، y)-> x^yfunction make_pow (y) {return function (x) {return math.pow (x ، y) ؛ }} var pow2 = make_pow (2) var pow3 = make_pow (3) تنبيه (pow2 (3)) // 9alert (pow3 (3)) // 27وظيفة 22-ARROW (حاليًا مدعومة فقط بواسطة Firefox) // المعلمات => جسم الوظيفة
var f = x => x*xxxalert (f (3)) // 27
23 مولد لتوليد تسلسل فيبوناتشي
الدالة* fib (max) {var t ، a = 0 ، b = 1 ، n = 1 ؛ بينما (n <= max) {grivd a ؛ t = a+b ؛ أ = ب ؛ ب = ر ؛ n ++ ؛ } return a ؛} لـ (var x of fib (10)) {// تكرار مستند كائن المولد. write (x+'') ؛ // الإخراج 0 ، 1 ، 1 ، 2 ، 3} استخدم مولد لإنشاء معرف ذاتي (لا يوجد متغير عالمي مطلوب)* next_id () {for (var x = 1 ؛ x <100 ؛ grivd x ++) ؛} var g = next_id () ؛ Alert (G.Next ()ما ورد أعلاه هو المحتوى الكامل لملاحظات جافا سكريبت ذاتية الدراسة (يجب أن تقرأ المقالة) التي قدمها لك المحرر. آمل أن يدعم الجميع wulin.com أكثر ~