
كيفية البدء سريعًا باستخدام VUE3.0: أدخل
التوصيات ذات الصلة وتعرف عليها: برنامج JavaScript التعليمي
يتم تشغيلها في متصفح العميل. يحتوي كل متصفح على لغة نصية لمحرك تحليل جافا سكريبت: لا تحتاج إلى تجميع، ويمكن تحليلها وتنفيذها مباشرة بواسطة المتصفح، ويمكنها تحسين عملية التفاعل بين المستخدمين وصفحات HTML، والتحكم في عناصر HTML، وجعل الصفحة ديناميكية تأثير وتعزيز تجربة المستخدم
في عام 1992، طورت Nombase أول لغة برمجة نصية من جانب العميل، والتي تم استخدامها خصيصًا للتحقق من النماذج. اسمه: C--، أعيدت تسميته لاحقًا: ScriptEase
في عام 1995، قامت Netscape بتطوير لغة برمجة نصية من جانب العميل: LiveScript. لاحقًا، تمت دعوة خبراء من SUN لتعديل LiveScript وتسميته JavaScript
في عام 1996، قامت Microsoft بنسخ JavaScript وطوّرت لغة JScript.
في عام 1997، قامت ECMA (الرابطة الأوروبية لمصنعي أجهزة الكمبيوتر) بصياغة معيار للغات البرمجة النصية من جانب العميل: ECMAScript، الذي يوحد طرق التشفير لجميع لغات البرمجة النصية من جانب العميل.
JavaScript = ECMAScript + الأشياء الفريدة الخاصة بـ JavaScript (BOM+DOM)
لغة JavaScript أ
ب. القائم على الكائنات
ج. الحدث مدفوع
د- النوع الضعيف
ه. سلامة عالية
f. عبر الأنظمة الأساسية
إذا كنت بحاجة إلى إدراج JavaScript في صفحة HTML، فيرجى استخدام علامة <script> .
يخبر <script> 和</script> JavaScript أين تبدأ وتنتهي.
تحتوي سطور التعليمات البرمجية بين <script> 和</script> على JavaScript
<script type="text/javascript" src="${request.contextPath}/static/js/homepage.js"></script> window.alert()document.write()innerHTML console.log()
من الاستخدام الشخصي، console.log() أكثر ملاءمة للاستخدام في البرمجة، يمكنك عرض محتوى الإخراج مباشرة من خلال وحدة التحكم F12

// هذا هو الكود: تعليق جملة واحدة، عادةً ما يكون المفتاح ctrl + L في المحرر.
/* هذا هو الكود*/: تعليقات متعددة الأسطر، عادةً ما تكون مفاتيح ctrl + Shift + L في المحرر.






سكريبت
var test;
var age, name, sex;// أعلن عن ثلاثة متغيرات للعمر والاسم والجنس
// أعلن عن المتغيرات في نفس الوقت وقم بتعيين قيم var age = 10, name = "Xiaoqiang", sex = "1 "؛
1. تتكون من حروف وأرقام وشرطات سفلية ورموز. ولا يمكن أن تبدأ برقم.
2. لا يمكن استخدام الكلمات الرئيسية، على سبيل المثال: while
3. المواصفات الحساسة لحالة الأحرف: طريقة الكتابة التقليدية
1. يجب أن تكون أسماء المتغيرات ذات معنى.
2. الامتثال لتسمية حالة الجمل. الحرف الأول من تسمية حالة الجمل صغير، والحرف الأول من الكلمات التالية مكتوب بحرف كبير، مثل اسم المستخدم.
تشمل: Number类型、String类型、Boolean类型、Undefined类型、Null类型、Object类型
النوع الرقمي للرقم: يتضمن الأعداد الصحيحة والكسور العشرية ويمكن التعبير عنه بـ: عشري، ثماني، سداسي عشري،
مثل:
var num = 10; // عشري var num1 = 012; //ثماني var num2 = ox123; //
نطاق القيمة السداسية العشرية:
console.log(Number.MAX_VALUE); //القيمة القصوى هي 5e-324console.log(Number.MIN_VALUE); // الحد الأدنى للقيمة هو 1.7976931348623157e+308 Infinity: Infinity: -
لا يمكن للحكم العددي اللانهائي استخدام الكسور العشرية للتحقق من الكسور العشرية ولا تستخدم NaN للتحقق مما إذا كان NaN (NaN ---- ليس رقمًا) ولكن يمكنك استخدام isNaN — ليس هو نتيجة لعدد NaN؟
مثل:
فار نوم؛ // قم بتعريف متغير غير معين console.log(isNaN(num)); // ليس صحيحا رقم؟ النتيجة صحيحة
حرف الهروب من السلسلة:
| حرف | تسلسل الهروب |
|---|---|
| bbackspace | |
| f | تغذية | الورق
| n | تغذية | السطر
| rcarriage | return |
| علامة التبويب الأفقية (Ctrl-I) | |
| ' | اقتباس مفرد |
| " | علامات الاقتباس المزدوجة |
| خطوط مائلة مزدوجة |
على سبيل المثال:
var str = "أنا مساءً\"console.log(str); // iam apm
سلسلة السلسلة:
var str1 = "Mr.";var str2 = "Hello";console.log(str1+str2); // مرحبًا سيدي،
إذا كانت نتيجة ربط السلاسل والأرقام هي أيضًا تأثير ربط السلسلة كما هو موضح أعلاه
النوع المنطقي Boolean، فإن السمتين true/false
غير محدد غير محدد يعني أن المتغير موجود تم الإعلان عنه بدون تعيين، المتغير عند الإعلان عنه فقط، تكون القيمة الافتراضية غير محددة.
على سبيل المثال:
var num;console.log(num); // غير محدد
يمثل قيمة خالية. إذا كانت قيمة المتغير فارغة، فيجب ضبطها يدويًا
2.2.6.Object
، Number() يمكن تحويل أي قيمة إلى قيمة رقمية إذا كان هناك حرف في السلسلة المراد تحويله وليس قيمة رقمية، فسيتم إرجاع NaN.
على سبيل المثال:
var num1 = Number("10");console.log(num1);
// 10var num2 = Number('10adbdn');console.log(num2);
//NaNvar num3 = Number("10.78");console.log(num3);
//10.78var num4 = Number('10.65dd');console.log(num4);
//NaNvar num5 = Number("a10");console.log(num5);
//NaN (2)، يتم تحويل parseInt() إلى عدد صحيح مثل:
var num1 = parseInt("10");console.log(num1);
// 10var num2 = parseInt('10adbdn');console.log(num2);
//10var num3 = parseInt("10.78");console.log(num3);
//10var num4 = parseInt('10.65dd');console.log(num4);
//10var num5 =parseInt("a10");console.log(num5);
//NaN (3)، قم بتحويل parseFloat() إلى رقم عشري، مثل:
var num1 = parseFloat("10");console.log(num1);
// 10var num2 = parseFloat('10adbdn');console.log(num2);
//10var num3 = parseFloat("10.78");console.log(num3);
//10var num4 = parseFloat('10.65dd');console.log(num4);
//10var num5 = parseFloat("a10");console.log(num5); الفرق بين (4) وNumber() وparseInt() وparseFloat()
Number() أكثر صرامة من parseInt() و parseFloat().
parseInt () يشبه parseFloat ()، سيقوم parseFloat بتحليل الأول عند مواجهة الطرف الثاني أو غير الرقمي
(1)
.
على سبيل المثال:
var num = 10;console.log(num.toString()); // السلسلة 10
(2)، السلسلة ()
على سبيل المثال:
var num1 =5;console.log(String(num1)); // السلسلة 5
(2)، JSON.stringfy()
0، سلسلة فارغة، فارغة، غير محددة، سيتم تحويل NaN إلى خطأ، وسيتم تحويل الآخرين إلى صحيح.
على سبيل المثال:
var num1 = Boolean(0);console.log(num1);
// falsevar num2 = Boolean("");console.log(num2);
// falsevar num3 = Boolean(null);console.log(num3);
/ falsevar num4 = Boolean(undef);console.log(num4);
// falsevar num5 = 10;var num6;console.log(Boolean(num5+num6));
/ خطأ أنواع المعاملات: العوامل الحسابية، العوامل المركبة، العوامل العلائقية، العوامل المنطقية
(1)، العوامل الحسابية: "+" "-" "*" "/" "%"
التعابير الحسابية: التعابير المرتبطة بالعمليات الحسابية
(2).
تعبيرات العمليات المركبة: التعبيرات (3) المتصلة بواسطة العوامل المركبة
، العوامل العلائقية: ">""<"">=""<="" "" =""!=""!== "
تعبيرات العمليات العلائقية: التعبيرات المتصلة بواسطة العوامل العلائقية
تعبير العملية المنطقية:(4)، العوامل المنطقية: "&&" "||" "!"
التعبير 1 والتعبير 2
متصلان بواسطة عوامل تشغيل منطقية
إذا كان أحدهما خطأ، فإن النتيجة بأكملها
خاطئة
فإذا كان أحدهما صحيحاً، فإن النتيجة بأكملها خاطئة
! ونتيجة التعبير التعبيري صحيحة، والنتيجة بأكملها خاطئة.
نتيجة التعبير خاطئة والنتيجة بأكملها صحيحة
من الأعلى إلى الأدنى:
() العامل الأحادي ذو الأولوية القصوى ++ - !
العوامل الحسابية هي * / % ثم + -
العوامل العلائقية > >= < <=
عامل المساواة == != === !==
العوامل المنطقية && متبوعة بـ ||
عامل التعيين
الوظائف في JavaScript هي كائنات. الكائن عبارة عن مجموعة من أزواج الاسم/القيمة وله اتصال مخفي بكائن النموذج الأولي. الكائن الذي يتم إنتاجه بواسطة الكائن الحرفي متصل بـ Object.prototype. ترتبط الكائنات الوظيفية بـ Function.prototype (الذي هو نفسه متصل بـ Object.prototype). سيكون لكل وظيفة سمتان مخفيتان مرفقتان عند إنشائها: سياق الوظيفة والكود الذي ينفذ سلوك الوظيفة
اسم الوظيفة () {هذا هو الكود الذي سيتم تنفيذه} بناء الجملة:
يمكن أن تتضمن الأقواس وسيطات مفصولة بفواصل:
(argument1,argument2,...)
يتم وضع التعليمات البرمجية التي يتم تنفيذها بواسطة الدالة بين قوسين متعرجين: {}
اسم الوظيفة(argument1,argument2,argument3) {
التعليمات البرمجية المطلوب تنفيذها} معلمات الوظيفة هي الأسماء المدرجة في تعريف الوظيفة.
وسيطات الدالة هي القيم الفعلية التي تتلقاها الدالة عند استدعاء الدالة
:
// أنشئ مجموع دالة هنا sum(num1, num2) {
نتيجة فار = num1 + num2;
console.log("num1 +
num2 = " + result);}// مجموع استدعاء الوظيفة (10, 20)
;
// ليس فقط الوظائف، كل المخرجات المتغيرة، وما إلى ذلك. المكتوبة هنا هي عبارة عن تحميل للصفحات وتشغيلها مباشرة ())2.7.
. بناء الجملة: Reg = /pattern/modifiers; يتكون الانتظام الحرفي من شرطتين مائلتين للأمام//، ويتم كتابة القاعدة بعد الشرطة المائلة الأولى: /pattern[يمكن للقواعد كتابة محارف كمية مختلفة | . بعد الشرطة المائلة الثانية، اكتب المعرف /المعدلات [مطابقة عامة |. أنا أتجاهل الحالة |. م مطابقة السطر الجديد |. موضع البداية |.
var Reg = /box/gi;
منشئ. Syntax Reg = new RegExp( pattern , modifiers ); المعدلات هي سلاسل في هذا الوقت. بغض النظر عن كيفية إنشائه، فهو نفسه، قالب النمط، والمحتوى المناسب، والمعدلات.
var Reg = new RegExp("box"، "gi")؛ | في | String |
|---|---|
| String.match(Reg) | يُرجع مصفوفة تحتوي على جميع السلاسل التي تطابقها RegExp أو |
| إرجاع | String.search(Reg) |
| الموضع الذي تظهر فيه سلسلة RegExp المطابقة لأول مرة | |
| String.replace(Reg, newStr) | يستبدل نتيجة مطابقة RegExp بـ newStr ويعيد السلسلة الجديدة |
| String.split(Reg) | يُرجع مصفوفة يتم فيها تقسيم السلسلة وفقًا لمتغير RegExp |
المحدد شارع = 'a1b2c3a4a5'،
reg = /a/g;console.log(str.match(reg)); //["a", "a", "a"]var str = 'a1b2c3a4a5',
reg = /a/;console.log(str.search(reg)); //0var str = 'a1b2c3a4a5',
reg = /a/g;console.log(str.replace(reg,function(){
console.log(arguments);
إرجاع 5555;}));var str = 'a,b,c,d',
reg = /,/g;//console.log(str.split(',')); //["a"، "b"، "c"، "d"]console.log(str.split( reg)) //["a"، "b"، "c"، "d"] | RegExp.exec | ( |
|---|---|
| String) | بإجراء بحث مطابق في السلسلة وإرجاع أول نتيجة مطابقة |
| Array | |
| RegExp.test(String) | باختبار مطابقة النمط في سلسلة ما وإرجاع صحيح أو خطأ |
تسمى المعدلات أيضًا بالمعرفات ويمكنها تحديد أنماط المطابقة المستخدمة لإجراء مطابقة عامة وحساسة لحالة الأحرف.
تجاهل مطابقة الحالة.
يتطابق g عالميًا. بدون g، تتم مطابقة العنصر الأول فقط، ولا يتم إجراء أي مطابقة.
m ينفذ مطابقة متعددة الأسطر
var patt = /pattern/i; // تجاهل مطابقة حالة الأحرف var patt = /pattern/g; // المطابقة العامة var patt = /pattern/m
هي أحرف خاصة لها معنى خاص في التعبيرات العادية.
أحرف الترجمة الخاصة.
حرف واحد، باستثناء السطر الجديد n وعلامة التبويب r حرف الهروب، رموز الهروب ذات المعنى الخاص إلى رموز عادية: .d أرقام [0~9]D غير أرقامs مسافاتS غير مسافاتw أحرف [أحرف|أرقام|شرطة سفلية]W غير- حدود الحرف b للكلمة (باستثناء (الكلمة) الأبجدية الرقمية_ كلها حدود للكلمات) B حدود غير الكلمة
var reg = /./;//match.var reg = /\/;//match var reg = / //;//Match /var str = '\';var reg = /\/g;console.log(reg.test(str)); //true
كائن التاريخ هو كائن متعلق بالتاريخ والوقت. إنها ديناميكية ويجب عليك استخدام الكلمة الأساسية الجديدة لإنشاء مثيل، مثل:
var Mydata=new Date();
لا يوفر كائن التاريخ خصائص الوصول المباشر، بل يوفر فقط طرقًا للحصول على التاريخ وتعيينه، كما هو موضح في الجدول التالي

كائن السلسلة هو كائن معالجة سلسلة يتم توفيره بواسطة JavaScript، ولا يمكن الرجوع إليه إلا بعد إنشاء نسخة كائن، وهو يوفر خصائص وطرق لمعالجة السلاسل (مشابهة لـ Java).
طول الخاصية - يُرجع عدد الأحرف في السلسلة.
ملحوظة: الحرف الصيني هو أيضًا حرف! !

: 
طرق كائن الرياضيات:
الدوال المثلثية (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) تُرجع القيم بالراديان. يمكنك تحويل الراديان إلى درجات عن طريق قسمة Math.PI / 180، أو بطرق أخرى.
| الطريقة | الوصف |
|---|---|
| تقوم Math.abs(x) | بإرجاع القيمة المطلقة لـ x. |
| تقوم Math.acos(x) | بإرجاع جيب التمام العكسي لـ x. |
| تُرجع | Math.acosh |
| (x) | جيب التمام الزائدي العكسي لـ x |
| قوس جيب x. | |
| Math.asinh(x) | يُرجع الجيب الزائدي العكسي لـ x. |
| ( | |
| x) | يُرجع قوس الزاوية لـ x كرقم بين -PI/2 وPI/2 راديان. |
| تقوم بإرجاع الظل الزائدي العكسي لـ x. | |
| تقوم Math.atan2(x, y) | بإرجاع ظل الزاوية لـ y/x. |
| تقوم Math.cbrt(x) | بإرجاع الجذر التكعيبي لـ x. |
| تقوم Math.ceil(x) | بإرجاع قيمة x مقربة لأعلى Math.clz32 |
| (x) | تُرجع عدد الأصفار البادئة لعدد صحيح 32 بت. |
| Math.cos(x) | جيب تمام x. |
| Math.cosh(x) | القيمة الزائدية لقيمة x |
| Math.exp (x) | تُرجع Ex، عندما تكون x وسيطة وE هو ثابت أويلر (2.718...)، فإن أساس اللوغاريتمات الطبيعية |
| Math.expm1(x) | قيمة exp(x)-1 |
| Math .floor(x). | إرجاع أكبر عدد صحيح أقل من x. |
| Math.fround(x) | تُرجع أقرب تمثيل عائم دقيق لرقم. |
| Math.hypot | |
| ([x[,y[,…]]]) | تُرجع الجذر التربيعي لمجموع مربعات الوسائط الخاصة به. |
| x) | إرجاع نتيجة ضرب عدد صحيح 32 بت. |
| Math.log(x) | إرجاع اللوغاريتم الطبيعي (السجل، وكذلك ln) لرقم. |
| Math.log1p(x) | إرجاع اللوغاريتم الطبيعي لـ 1 + x (السجل، أيضًا ln) لرقم. |
| Math.log10(x) | يُرجع اللوغاريتم ذو الأساس 10 لـ x. |
| x | |
| ) | يُرجع اللوغاريتم ذو الأساس 2 لـ x. |
| ) | تقوم بإرجاع الحد الأقصى للقيمة من 0 إلى قيم متعددة. |
| تقوم | Math.min |
| ([x[,y[,…]]]) | بإرجاع الحد الأدنى للقيمة من 0 إلى قيم متعددة |
| y power تقوم | |
| الدالة Math.random() | بإرجاع رقم شبه عشوائي بين 0 و1. وقد يكون مساويًا للصفر، ولكن يجب أن يكون أقل من 1. |
| تقوم الدالة Math.round(x) | بإرجاع عدد صحيح مستدير ولكن قيمة Math .round(-4.40) هو -4 |
| Math.sign(x) | تُرجع دالة الإشارة لـ x، والتي تحدد ما إذا كانت x موجبة أم سالبة أم 0. |
| x | |
| ) | قيمة الجيب. |
| تُرجع قيمة الجيب الزائدية لـ x. | |
| Math.sqrt (x) | الجذر التربيعي لـ x. | تُرجع
| Math.tan(x) | ظل الزاوية لـ x. |
| Math.tanh(x) | ظل الزاوية الزائدية لـ x |
| . |
تقوم
| بإرجاع | السلسلة " |
| Math | " |
. ، الأعلى) {
return min + Math.random() * (max - min);} المثال 2: اكتب دالة لإنشاء سلسلة عشوائية بطول n. يتضمن نطاق قيمة أحرف السلسلة من 0 إلى 9، ومن a إلى z، ومن A إلى Z
دالة getRandomInt(min, max) {
return min + Math.floor(Math.random() * (max - min + 1));}function RandomStr(n){
var dict = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
فار str = '';
ل(i = 0; i < n;i++){
str += dict[getRandomInt(0,62)];
}
return str;}var str = getRandStr(10);console.log(str); 2.8.4 تصنيف
1. المصفوفة ثنائية الأبعاد جوهر المصفوفة ثنائية الأبعاد هو أن العناصر الموجودة في المصفوفة هي أيضًا مصفوفات.
2
من العمود 2 والصف 1 من
المصفوفة المتفرقة تحتوي على قيم بدءًا من 0 مؤشر البداية غير المتجاور للمصفوفة. في المصفوفات المتفرقة، تكون قيمة سمة الطول بشكل عام أكبر من العدد الفعلي للعناصر (غير شائع)
مثال
var a=["a",,"b",,,,,c,,];
سمة كائن المصفوفة
| وظيفة | السمة | |
|---|---|---|
| تمثل سمة الطول | طول المصفوفة، أي عدد العناصر الموجودة | |
| فيها | تُرجعسمة النموذج الأولي | مرجعًا إلى النموذج الأولي لنوع الكائن. |
| سمة المُنشئ | الوظيفة التي تُنشئ الكائن |
1.length attribute:
تنبيه (arr. length)؛ // عرض طول المصفوفة 10arr.length=15; / زيادة طول المصفوفة، سمة الطول متغيرة تنبيه (arr. length )؛ // يظهر أن طول المصفوفة أصبح 15
2. سمة
النموذج الأولي ترجع سمة النموذج الأولي مرجعًا إلى النموذج الأولي لنوع الكائن. خاصية النموذج الأولي شائعة في الكائنات.
اسم الكائن.prototype
المعلمة objectName هي اسم كائن الكائن.
الوصف: استخدم سمة النموذج الأولي لتوفير مجموعة من الوظائف الأساسية لفئة الكائن. "ترث" المثيلات الجديدة للكائن العمليات المخصصة للنموذج الأولي للكائن.
بالنسبة لكائنات الصفيف، استخدم المثال التالي لتوضيح استخدام سمة النموذج الأولي.
أضف أسلوبًا إلى كائن الصفيف الذي يُرجع الحد الأقصى لقيمة العنصر في الصفيف. لإنجاز ذلك، قم بإعلان دالة، وأضفها إلى Array.prototype، واستخدمها.
الدالة array_max () {
var i,max = this[0];
لـ (i = 1; i < this.length; i++){
إذا (الحد الأقصى <هذا[i])
الحد الأقصى = هذا[i];
}
return max;}Array.prototype.max = array_max;var x = new Array(1, 2, 3, 4, 5, 6);var y = x.max( ); سمة
المُنشئ تمثل سمة المُنشئ ما تم إنشاؤه وظيفة الكائن.
object.constructor //object هو اسم الكائن أو الوظيفة.
الوصف: سمة المنشئ هي عضو في جميع الكائنات ذات النموذج الأولي. وهي تتضمن كافة كائنات JScript الأصلية باستثناء الكائنات العامة وكائنات Math. تحتوي سمة المُنشئ على إشارة إلى الوظيفة التي تقوم بإنشاء مثيل كائن محدد.
على سبيل المثال:
x = new String("Hi");if (x.constructor == String) // العملية (الشرط صحيح). // أو وظيفة MyFunc {// نص الوظيفة. }y = new MyFunc;if (y.constructor == MyFunc) // العملية (الشرط صحيح). طريقة كائن المصفوفة <br/> الوصف: جزء منها عبارة عن ميزة جديدة لـ ECMAScript5 (غير مدعومة بواسطة IE678). تعمل
| وظيفة | الطريقة |
|---|---|
| concat() | على توصيل صفيفين أو أكثر وإرجاع النتيجة |
| التي | تجمع بين عناصر المصفوفة في سلسلة، |
| pop() | بحذف العنصر الأخير في المصفوفة وإرجاعه، |
| Push() | عنصرًا واحدًا أو أكثر إلى نهاية المصفوفة ويعيد الطول الجديد |
| ، ويعكس | ترتيب العناصر في المصفوفة |
| Shift() | ويحذف و إرجاع العنصر الأول من شريحة المصفوفة |
| () | يبدأ من مصفوفة موجودة ترجع العناصر المحددة |
| فرز () | فرز عناصر المصفوفة |
| لصق () | حذف العناصر وإضافة عناصر جديدة إلى المصفوفة |
| toSource () | إرجاع الكود المصدري للكائن |
| إلى سلسلة ( ) | يحول المصفوفة إلى سلسلة ويعيد النتيجة |
| إلىLocalString () | يحول المصفوفة إلى عناصر محلية ويعيد النتيجة |
| unshift | عنصرًا واحدًا أو أكثر إلى بداية المصفوفة ويعيد |
| قيمة الطول الجديدة of () | ويعيد القيمة الأصلية للمصفوفة |
| كائن | |
| forEach () | كائن الصفيف |
| Map () | يقرن المصفوفة، قم بإجراء بعض عمليات التصفية |
| () | لتصفية |
| كل () | تحقق وحكم على |
| بعض () | تحقق وحكم على |
| تقليل () | إجراء عمليات معينة في أزواج، |
| تقليل () | من اليمين إلى اليسار |
| IndexOf() | للعثور على عنصر معين |
| Array.isArray ([] ) | تحديد ما إذا كان مصفوفة |
يفسر بشكل أساسي بعض الميزات الجديدة
المتزامنة
وظيفة concat هي لصق المصفوفات. تجدر الإشارة إلى أنه يمكن أيضًا استخدام عنصر المصفوفة كعنصر مقسم لكن لن يتم تسطيحه مرتين ولا يقوم concat بتعديل المصفوفة الأصلية.
على سبيل المثال:
var arr=[1,2,3,4,5];arr.concat([10,11],13);//[1,2,3,4,5,10,11,13] arr .concat([1,[2,3]]);//[1,2,3,4,5,1,[1,3]]
شريحة
الشريحة (أ، ب) يمكن أن تأخذ أ و ب أرقامًا سالبة، مما يعني أنه يتم اعتراض المصفوفة من الموضع أ إلى الموضع ب، وهي فاصل زمني مغلق على اليسار ومفتوح على اليمين أرقام إذا كان سالبًا، فهذا يعني آخر عناصر a/b
var arr=[1,2,3,4,5];arr.slice(1,3);//[2,3]arr. شريحة(1);//[2,3,4, 5]arr.slice(1,-1);//[2,3,4]arr.slice(-4,-3);//[2 ]
لصق
يقوم splice بإزالة العناصر وإضافة عناصر جديدة إلى المصفوفة
object.splice(a) يحذف العناصر من اليسار
object.splice(a, b) يعترض عناصر b بدءًا من الموضع a
object.splice(a, b, c, d) يعترض عناصر b بدءًا من الموضع a، ويدرج عناصر c وd أو أكثر في المصفوفة الأصلية. تجدر الإشارة إلى أن splice سيعدل المصفوفة الأصلية
var arr=[1, 2 ,3,4,5];arr.splice(2);//[3,4,5]arr;//[1,2];تم تعديل المصفوفة الأصلية var arr=[1,2,3 ,4 ,5];arr.splice(2,2);//[3,4]arr;//[1,2,5];var arr=[1,2,3,4,5];arr.splice (1,1,'a','b');//[2]
arr
;//[1"،a"،"b"،3,4,5];
تعبر الدالة foreach() المصفوفة من البداية إلى النهاية. هناك ثلاث معلمات: عناصر المصفوفة، وفهرس العناصر، والمصفوفة نفسها
var arr = [1, 2, 3, 4, 5]; arr.forEach(function(x, Index, a){// Corresponding to: array العناصر، فهرس العنصر، المصفوفة نفسها console.log(x + '|' + Index + '|' + (a === arr));});// 1|0|true// 2| 1|صحيح/ / 3|2|صحيح// 4|3|صحيح// 5|4|صحيح تقليل()
يطبق التخفيض () الخاص بالمصفوفة دالة على [x1، x2، x3...] من هذا المصفوفة. يجب أن تتلقى هذه الوظيفة معلمتين. يستمر التخفيض () في النتيجة ويجري عملية حسابية تراكمية مع العنصر التالي في التسلسل هو:
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
var arr = [1, 2, 3];var sum = arr.reduce (وظيفة (س، ص) {
return x + y}, 0); // المعلمة 0 اختيارية إذا كانت المعلمة 0 مكتوبة، فإن القيمتين اللتين تم تمريرهما لأول مرة هما 0 و1. وإذا لم يكن الأمر كذلك، فإن القيمتين الأوليين تم تمرير أول قيمتين من قيمة المصفوفة، ونتيجة الحساب هي 6arr //[1, 2, 3]arr = [3, 9, 6];var max = arr. تقليل (وظيفة (س، ص) {
console.log(x + "|" + y);
return x > y ? x : y;});// 3|9// 9|6max ;
| المصفوفات والكائنات العامة | ||
|---|---|---|
| بنفس | الطريقة | . ليس من الضروري أن يكون الكائن مصفوفة، ولكن يمكن معاملته ككائن لإضافة سمات.|
| الفهرس | أسرع بكثير من الوصول إلى الكائن العام صفات.ترث كائنات المصفوفة عددًا كبيرًا من أساليب تشغيل المصفوفة في Array.prototype |
مقارنة المصفوفات والسلاسل
| المصفوفات والسلاسل | |
|---|---|
| هو | نوع من |
| الاختلاف | بين المصفوفات.السلاسل هي مصفوفات غير قابلة للتغيير. |
2.9.JSON
يستخدم لتسلسل كائنات js إلى سلاسل JSON
={name:"xiaoming"،age:12}var json=JSON.stringify(person); //{"name":"xiaoming":age":12} بالإضافة إلى قبول الكائنات، يمكنك استخدام stringify() قبول أيضًا معلمتين. المعلمة الأولى عبارة عن مرشح، والذي يمكن أن يكون عبارة عن مجموعة مصفوفة من خصائص الكائن أو وظيفة؛ المعلمة الثانية هي خيار يشير إلى ما إذا كان سيتم الاحتفاظ
بمرشح المصفوفة ذات المسافة البادئة في سلسلة JSON:
json=JSON.stringify( person,['name']); //{"name": "xiaoming"} مرشح الوظيفة:
json=JSON.stringify(person,function(key,value){
التبديل (مفتاح) {
حالة "الاسم":
قيمة الإرجاع+"،وانغ"؛
حالة "العمر":
عودة غير محددة؛
تقصير:
قيمة الإرجاع؛
}});//{"name": "xiaoming,wang"} لاحظ أنه إذا أعادت الوظيفة غير محددة، فسيتم تجاهل
المسافة البادئة للسلسلة:
json=JSON.stringify(person,null,4);
"الاسم": "شياومينغ"،
"age": 12} أضف طريقة toJSON() إلى الكائن:
var person={
الاسم: "شياومينغ"،
العمر: 12،
إلىJSON: وظيفة () {
إرجاع this.name+" هو "+this.age;
}}json=JSON.stringify(person);console.log(json); //"xiaoming هو 12" بالإضافة إلى قبول سلسلة json، يمكن أن يقبل parse() أيضًا معلمة دالة. تقبل هذه الدالة قيمتين، مفتاح وقيمة؛
var person=JSON.parse('{"name": "xiaoming"، "age": 12}')؛ var person=JSON.parse('{"name " :"شياومينغ"،"العمر":12}',function(key,value){
إذا (مفتاح = = "العمر") {
قيمة الإرجاع+10؛
}
آخر{
قيمة الإرجاع؛
}}); 1. قم بإنشاء كائن XMLHttpRequest غير متزامن
2. قم بتعيين طريقة الطلب وعنوان الطلب
3. بعد ذلك، استخدم إرسال لإرسال الطلب
4. مراقبة تغيرات الحالة
5. أخيرًا، احصل على البيانات التي تم إرجاعها
مثال:
const xhr = new XMLHttpRequest()xhr.open('GET', './data/test.json', true)xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
إذا (xhr.status === 200) {
console.log(JSON.parse(xhr.responseText))
} آخر {
console.log('حالات أخرى...')
}
}}xhr.send() $.ajax({
النوع: "post"، // عنوان URL لطريقة الطلب: "a.php"، // عنوان رابط الخادم نوع البيانات: "json"، // تنسيق إرسال واستقبال بيانات البيانات:{
اسم المستخدم:"جيمس"،
كلمة المرور:"123456"
},
النجاح: الوظيفة (البيانات) {// يتم استدعاء الدالة console.log (البيانات) عند تلقي البيانات بنجاح؛ // البيانات هي البيانات التي يتم إرجاعها بواسطة الخادم},
خطأ: وظيفة (طلب) {// الوظيفة التي يتم استدعاؤها عند فشل طلب البيانات تنبيه ("حدث خطأ:"+request.status)؛
}}); 2.10.3.بنية
$.get(url, [data], [callback], [type])
شرح المعلمة: 
// الخطوة 1: إنشاء كائن غير متزامن var ajax = new XMLHttpRequest(); // الخطوة 2: تعيين معلمات عنوان url للطلب. المعلمة الأولى هي نوع الطلب، والمعلمة الثانية هي urlajax.open( "get"، " users.json");// الخطوة 3: إرسال طلب ajax.send();// الخطوة 4: تسجيل الحدث عند تغيير الحالة، ajax.onreadystatechange = function () {.
إذا (ajax.readyState == 4 && ajax.status == 200) {
// الخطوة 5: إذا تمكنت من إدخال هذا الحكم، فهذا يعني أن البيانات قد عادت بشكل مثالي، وأن الصفحة المطلوبة موجودة console.log(ajax.responseText); // أدخل محتوى الاستجابة}} لها نفس البنية والاستخدام مثل طريقة $.get()، ولكن لا تزال هناك بعض الاختلافات بينهما
2.10.5
سيتم ربط معلمات الطلب بالجزء الخلفي من عنوان URL، ويكون الأمان منخفضًا عند الطلب في وضع النشر، سيتم تغليف معلمات الطلب في نص الطلب، وهو أكثر أمانًا.
2. الاختلاف في الكمية: كمية البيانات المرسلة بواسطة طريقة get صغيرة ولا يمكن أن تتجاوز 2 كيلو بايت، في حين أن كمية البيانات المطلوبة بواسطة طريقة النشر كبيرة ولا يوجد حد لها.
3. سرعة النقل: سرعة نقل الحصول أعلى من سرعة الإرسال
نظرًا لأن طريقة الاستخدام هي نفسها، طالما تم تغيير وظيفة jQuery، يمكن تبديل البرنامج بين طلبات GET وطلبات POST
getCookie(c_name){ if (document.cookie length>0){ // تحقق أولاً مما إذا كان ملف تعريف الارتباط فارغًا أم لا، فارجع "" c_start=document.cookie.indexOf(c_name + "=") // تحقق مما إذا كان ملف تعريف الارتباط موجودًا من خلال IndexOf(). لكائن السلسلة. إذا لم يكن موجودًا، فهو -1 if (c_start!=-1){ c_start=c_start + c_name.length+1 // يمثل +1 الأخير في الواقع الرقم "="، وبالتالي يتم الحصول على موضع البداية لقيمة ملف تعريف الارتباط c_end= document.cookie.indexOf(";",c_start) // في الواقع، شعرت بالدوار قليلاً عندما رأيت المعلمة الثانية لـ IndexOf () لأول مرة موضع الفهرس...هذه الجملة للحصول على قيمة موضع النهاية. نظرًا لأنك بحاجة إلى التفكير فيما إذا كان هذا هو العنصر الأخير، يمكنك الحكم على ما إذا كانت علامة ";" موجودة أم لا إذا كان (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end)) // يتم الحصول على القيمة من خلال السلسلة الفرعية (). إذا كنت تريد فهم unescape()، فيجب عليك أولاً أن تعرف ما يفعله escape() وهو أساس مهم جدًا. إذا كنت تريد معرفة المزيد، فيمكنك أيضًا البحث في تفاصيل تشفير ملفات تعريف الارتباط في النهاية المقالة } } return "" } $.cookie("groupCode",222) ملف تعريف الارتباط document.cookie = "name=value;expires=date"
document.cookie = "username=zhangsan";document.cookie = "username=lisi";var cookies = document.cookie;console.log(cookies);
= "username=zhangsan ";document.cookie = "username=; تنتهي صلاحيته=الخميس، 01 يناير 1970 00:00:00 بتوقيت جرينتش";var cookies = document.cookie;console.log(cookies);
for is الحلقة الأكثر استخدامًا، والتي تستخدم بشكل أساسي لتكرار المصفوفات
Let arr = [1,2,3];for (let i=0; i<arr.length; i++){
console.log(i,arr[i])}// 0 1// 1 2// 2 3 بناء الجملة: arr.forEach(callback(currentValue [, index [, array]])[, thisArg]);
رد الاتصال هو دالة يتم تنفيذها لكل عنصر في المصفوفة. تتلقى الدالة ثلاث معلمات: القيمة الحالية (العنصر الحالي الذي تتم معالجته في المصفوفة)، والفهرس (فهرس العنصر الحالي الذي تتم معالجته في المصفوفة). )، array (المصفوفة التي تعمل عليها طريقة forEach())
thisArg هي القيمة المستخدمة عند تنفيذ رد اتصال وظيفة رد الاتصال.
Let arr = [1, 2, , 3]let arrCopy1 = []arr.map((item, Index, arr) => {
arrCopy1.push(item * 2)})console.log(arrCopy1)// [2, 4, 6] forEach() ينفذ وظيفة رد الاتصال مرة واحدة لكل عنصر من عناصر المصفوفة، وسيتم تخطي العناصر المحذوفة أو غير المهيأة (على سبيل المثال، في المصفوفات المتفرقة )
على عكس Map() وreduce()، لا تحتوي على قيمة إرجاع وترجع دائمًا غير مكتشفة.
ليس لدى ForEach() طريقة لإحباط حلقة forEach() أو الخروج منها بخلاف طرح استثناء.
يمكن أن تتكرر عبارة while لتنفيذ جزء محدد من التعليمات البرمجية تحت فرضية أن تعبيرًا شرطيًا معينًا صحيح، حتى تنتهي الحلقة عندما يكون هذا التعبير غير صحيح.
مثال:
Let n = 0 while (n < 3) {
n++;}console.log(n);// الإخراج المتوقع: 3ملاحظة : استخدم عبارة Break لإيقاف الحلقة قبل أن تكون نتيجة تقييم الحالة صحيحة
تقوم عبارة do...while بإنشاء حلقة يتم تنفيذها العبارة المحددة حتى تصبح قيمة الشرط خاطئة. كشف الشرط بعد تنفيذ العبارة، لذلك يتم تنفيذ العبارة المحددة مرة واحدة على الأقل
مثال:
const list = ['a', 'b', 'c']let i = 0do {
console.log(list[i]) //القيمة
console.log(i) //index
i = i + 1} while (i < list.length) يمكن استخدام حلقة for...in لاجتياز قائمة السمات القابلة للإحصاء للكائن (بما في ذلك سلسلة [[النموذج الأولي]])
وهي تستخدم بشكل أساسي لاجتياز الكائن
. console.log (خاصية) // اسم الخاصية Console.log (كائن [خاصية]) // قيمة الخصائص}
التوصيات ذات الصلة: تعليمي التعلم JavaScript
ما سبق هو ملخص مفصل لنقاط التعلم JavaScript.
