English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

المعرفة الأساسية التي يجب أن تتعلمها JavaScript كل يوم

المفاهيم الأساسية 

javascript لغة تُفسر، حيث يلعب المتصفح دور المفسر. عند تنفيذ js، يتم التفسير أولاً ثم التنفيذ في نفس نطاق العمل. أثناء التفسير، يتم ترجمة الكلمات المفتاحية function و var لتحديد المتغيرات، ثم يتم تنفيذها من الأعلى إلى الأسفل وتخصيص القيم للمتغيرات. 

التمييز بين الحروف الكبيرة والصغيرة 

يتم التمييز بين الحروف الكبيرة والصغيرة في كل شيء في ECMASCript (بما في ذلك المتغيرات، أسماء الوظائف والرموز الحسابية). 

1. المتغير 

يتم تعيين المتغيرات في ذاكرة التخزين عند استخدامها لأول مرة، مما يسهل استدعاؤها في النصوص اللاحقة. يجب التحقق من تسمية المتغيرات قبل استخدامها. يمكن استخدام كلمة المفتاح var لتسمية المتغيرات.

var count, amount, level; // استخدام كلمة المفتاح var لتحديد بيانات متعددة. 

تسمية المتغيرات 

تتضمن تسمية المتغيرات المتغيرات العالمية، المتغيرات المحلية، المتغيرات الكلاسيكية، معلمات الوظائف وما إلى ذلك، وكلها تعتبر من هذا النوع. 

تكون تسمية المتغيرات من مسبقية النوع + كلمة ذات معنى، ويُستخدم أسلوب التسمية بالحروف الكبيرة لتعزيز قابلية القراءة للمتغيرات والوظائف. على سبيل المثال: sUserName،nCount。
معايير المسبقية:
كل متغير محلي يجب أن يكون له مسبقية نوع، يمكن تصنيفها وفقًا للنوع:
s: يُمثل النص. على سبيل المثال: sName،sHtml;
n: يُمثل الرقم. على سبيل المثال: nPage،nTotal;
b: يُمثل المنطق. على سبيل المثال: bChecked،bHasLogin;
a:表示数组。例如:aList,aGroup;
r:表示正则表达式。例如:rDomain,rEmail;
f:表示函数。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他对象,例如:oButton,oDate;
g:表示全局变量,例如:gUserName,gLoginTime;

JScript 是一种区分大小写的语言。创建合法的变量名称应遵循如下规则: 

注意第一个字符不能是数字。 

后面可以跟任意字母或数字以及下划线,但不能是空格 变量名称一定不能是 保留字。

javascript是一种弱类型语言,JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。 

var是javascript的保留字,表明接下来是变量说明,变量名是用户自定义的标识符,变量之间用逗号分开。 

如果声明了一个变量但没有对其赋值,该变量存在,其值为Jscript 值 undefined。

强制类型转换 

在 Jscript 中,可以对不同类型的值执行运算,不必担心 JScript 解释器产生异常。相反,JScript 解释器自动将数据类型之一改变(强制转换)为另一种数据类型,然后执行运算。例如:

 运算                             结果

数值与字符串相加        将数值强制转换为字符串。
布尔值与字符串相加    将布尔值强制转换为字符串。
数值与布尔值相加        将布尔值强制转换为数值。

لتحويل سلسلة إلى عدد صريح، استخدم دالة parseInt. لتحويل سلسلة إلى عدد، استخدم دالة parseFloat. 

فترة حياة المتغيرات في JavaScript: عند إعلان متغير داخل الدالة، يمكنك الوصول إلى هذا المتغير فقط داخل هذه الدالة. عند مغادرة الدالة، يتم إلغاء هذا المتغير. وتسمى هذه المتغيرات المتغيرات المحلية. يمكنك استخدام نفس الاسم للمتغيرات المحلية في دوال مختلفة، لأن الدالة التي أعلنت المتغير فقط يمكنها التعرف على كل متغير منهم. 

إذا أعلنت متغيرًا خارج الدالة، يمكن لكل الدوال على الصفحة الوصول إلى هذا المتغير. تبدأ فترة حياة هذه العوامل من بداية إعلانها، وتنتهي عند إغلاق الصفحة. 

الخريطة الذهنية للعوامل المتغيرة في js

 

نوع البيانات في 2.js 

jscript لديه ثلاثة -> أنواع البيانات الرئيسية، اثنان -> أنواع البيانات المركبة وأثنان -> أنواع البيانات الخاصة. 

نوع البيانات الرئيسي (الأساسي)
السلسلة
العدد
بولي

نوع البيانات المركب (الإشارة)
 الجسم
数组

特殊数据类型
Null

`Undefined`

字符串数据类型:字符串数据类型用来表示 JScript 中的文本。在js中,虽然双引号(”")和单引号(”)均可表示字符串,而且它们几乎没有任何区别。但只使用双引号(“”)来表示字符串被认为是最佳的。 

一个字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、数字和标点符号)。 

什么是Unicode? 

Unicode为每个字符都提供了唯一的数值,不管是什么平台、什么程序或什么语言。开发unicode是为了给处理世界上存在的所有字符提供统一的编码。 

数值数据类型 

我们需要明白一点,JScript 内部将所有的数值表示为浮点值,因此,在 Jscript 中整数和浮点值没有差别。 

Boolean数据类型 

布尔(逻辑)只能有两个值:true 或 false。 

js数组和对象 

详情看我这篇文章->javascript学习总结— —数组和对象部分 

Null 数据类型:可以通过给一个变量赋 null 值来清除变量的内容。 

Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。

 

  
 
 



 

null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。 

Undefined 数据类型: 

如下情况将返回 undefined 值:
对象属性不存在,
声明了变量但从未赋值。

null和undefined的区别

alert(typeof undefined); //output "undefined" 
alert(typeof null); //output "object" 
alert(null == undefined); //output "true" 

يعتقد ECMAScript أن undefined مولد من null، لذا يتم تعريفهما كمساويين.

alert(null === undefined); //output "false" 
alert(typeof null == typeof undefined); //output "false" 

نوع null و undefined مختلف، لذا يتم إرجاع "false". بينما === يمثل المساواة التامة، هنا null === undefined يتم إرجاع "false" 

إضافة إلى ذلك، سأقوم بشرح نوع بيانات مهم جدًا - نوع البيانات الاستدلالية 

نوع البيانات الاستدلالية 

نوع البيانات الاستدلالية في JavaScript يتم تخزينها في ذاكرة الحجم من الأشياء، لا يسمح JavaScript بتنفيذ الوصول إلى المواضع في ذاكرة الحجم وتنفيذ العمليات في ذاكرة الحجم، يمكن تنفيذها فقط من خلال عمليات الأشياء في ذاكرة السلسلة. لذا، يتم تخزين البيانات الاستدلالية في ذاكرة السلسلة عنوان الوصول إلى الأشياء في ذاكرة الحجم. من خلال هذا العنوان يمكن العثور بسرعة على الأشياء المخزنة في ذاكرة الحجم. 

دعونا نوضح عملية تخصيص القيم الاستدلالية

 

بالطبع، إضافة خاصية name إلى obj2 يعني إضافة خاصية name إلى الأشياء في ذاكرة الحجم، obj2 و obj1 يتم تخزينهما في ذاكرة السلسلة فقط عنوان الوصول إلى الأشياء في ذاكرة الحجم، حتى لو تم نسخهما، لكن الأشياء التي يشير إليها هو نفسه. لذا، تغيير obj2 أدى إلى تغيير obj1. 

القيم البسيطة تشير إلى تلك التي يتم تخزينها في ذاكرة السلسلة بيانات بسيطة، بمعنى آخر، القيمة يتم تخزينها بشكل كامل في موضع واحد في الذاكرة.
 والقيم الاستدلالية هي تلك التي يتم تخزينها في ذاكرة الحجم من الأشياء، بمعنى آخر، ما يتم تخزينه في المتغير هو سهم، يشير إلى موضع آخر في الذاكرة، حيث يتم تخزين الأشياء. 

بشكل مختصر، يتم تخزين القيم الاستدلالية في ذاكرة الحجم، وتخزين القيم البسيطة في ذاكرة السلسلة.

 

في ECMAScript، يمكن أن تكون المتغيرات قيمتين من نوعين، وهي القيم البسيطة والقيم الاستدلالية. 

القيم البسيطة يتم تخزينها في السلسلة (السلسلة) بيانات بسيطة، بمعنى آخر، القيم مباشرة يتم تخزينها في موضع الوصول إلى المتغير. القيم الاستدلالية يتم تخزينها في الحجم (الحجم) من الأشياء، بمعنى آخر، القيمة المخزنة في المتغير هو سهم (السهم)، يشير إلى موضع التخزين للأشياء في ذاكرة.

 <script type="text/javascript”>
var box = new Object(); // إنشاء نوع استدلالي
var box = "lee";  // القيم الأساسية هي الأنواع المحددة
box.age = 23;  // الحالة الأساسية القيم إضافة الخاصية غريب، لأن فقط الأشياء يمكن إضافة الخاصية.
alert(box.age); //不是引用类型,无法输出;
 

3.JScript 的运算符 

优先级:指运算符的运算顺序,通俗的说就是先计算哪一部分。
结合性:同一优先级运算符的计算顺序,通俗的说就是从哪个方向算起,是左到右还是右到左。 

数据类型转换和基本包装类型 

String() 转换为字符串类型
Number() 转换为数字类型
Boolean() 转换为布尔类型 

parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt(“hi”)返回的值是:NaN。
 parseFloat:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

 eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。
基本包装类型 

每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能调用一些方法来操作这些数据。基本包装类型包括Boolean、Number和String

 var box = 'trigkit4'; //字面量
box.name = 'mike';  //无效属性
box.age = function () { //无效方法
  return 22;
};
//new运算符写法
var box = new String('trigkit4');//new 运算符
box.name = 'mike';  //有效属性
box.age = function () { //有效方法
  return 22;
}; 

String类型包含了三个属性和大量的可用内置方法
 属性     描述
length : تعود طول النص
Constructor : تعود دالة لإنشاء كائن النصوص
prototype : من خلال إضافة الخصائص والأساليب توسيع تعريف النصوص

4.js تحكم في العملية 

لجمل التحكم في عملية JavaScript، سأقوم بشرح بعضها التي تعتبر صعبة الفهم. لن أتحدث عن الباقي. سأرفق رسمًا ذهنيًا لاحقًا. 

1. جملة for...in تنطبق على كل عنصر في الجسم أو كل عنصر في القائمة، وتنفيذ جملة واحدة أو أكثر.
 for (متغير في [جسم | قائمة])
الجمل

المعاملات: 
المتغير: إلزامي. يجب أن يكون متغيرًا، يمكن أن يكون خصيصة للجسم أو عنصرًا في القائمة.
 الجسم، القائمة: اختيارية. يجب استخدامهما في الجسم أو القائمة الذي سيتم استخدامهما.
 jملة: اختيارية. يجب تنفيذ جملة واحدة أو أكثر لكل خصائص الجسم أو كل عنصر في القائمة. 

على الرغم من أن جمل التحكم بالشرط (مثل جملة if) تتطلب استخدام جملة الكود (تبدأ بفتحة CURLY { وتنتهي بفتحة CURLY }) فقط عند تنفيذ عدة جمل، إلا أن أفضل الممارسات هي استخدام جملة الكود دائمًا.

 if(args)
  alert(args); // سهلة النسيان
if(args){
  alert(args); // يُنصح باستخدامها
}

 5.js الدالة 

الدالة هي قطعة من الكود القابلة لإعادة الاستخدام التي يمكن تشغيلها بفضل الحدث أو عند تسميتها. 

يدعم Jscript نوعين من الدوال: واحد هو الدوال المدمجة في اللغة، والآخر هو الذي أنشأته.
تسمح الدوال في JavaScript بعدم وجود أي معاملات (لكن يجب ألا يتم تجاهل الأقواس الصغيرة الموجودة حول المعاملات)، ويمكن أيضًا إرسال معاملات إلى الدالة لتستخدمها. 

لمعرفة المزيد عن الدوال، يرجى زيارة مقالتي الآخرى: تلخيص دراسة JavaScript (الجزء الرابع) - جزء الدوال function 

مكونات الجسم
الطرق - الدوال: العملية، الديناميكية
الصفات - المتغيرات: الحالة، الثابتة

في النهاية، سأرفق لكم رسمًا ذهنيًا جمعته من قبل السابقين:

هذا هو نهاية محتوى هذا المقال، آمل أن يكون قد ساعدكم في التعلم، وأتمنى أن تشجعوا دائمًا تعليمات النفخ.

التي قد تهمك