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

JavaScript基础教程

JavaScript 对象

JavaScript 函数

JS HTML DOM

JS 浏览器BOM

AJAX 基础教程

JavaScript 参考手册

السلسلة (String) لـ JavaScript

字符串是一个或多个字符的序列,可以由字母,数字或符号组成。

JavaScript中的字符串是原始数据类型,并且是不可变的,这意味着它们是不变的。

JavaScript字符串

JavaScript字符串是用引号括起来的零个或多个字符。

var x = "JavaScript教程 ";
اختبار لمعرفة < / >

在JavaScript中,您可以选择قوس مزدوجقوسين مزدوجين来包裹字符串。以下两种方法都可以正常工作:

var msg1 = "مرحبا بالعالم"; // 使用双引号
var msg2 = 'مرحبا بالعالم'; // 使用单引号
اختبار لمعرفة < / >

您可以在字符串内使用引号,只要它们与字符串周围的引号不匹配即可:

var str1 = 'هاي她说"هاي"thenleft'; // 单引号中的双引号
var str2 = "She said 'Hey' and left";  // قوس مزدوج يحتوي على قوس مزدوج
var str3 = "Let's have a cup of tea";  // قوس مزدوج يحتوي على قوس مزدوج
var str4 = 'We\'ll never give up'; // استخدام الشرطة العكسية لتجنب قوس المزدوج
اختبار لمعرفة < / >

أحدث طريقة لإنشاء النصوص تُدعى模板常量(template literal).

قيمة النمط (template literal) يستخدم علامة الاستفهام المزدوجة (` `)، ويشتغل بنفس الطريقة كالنصوص العادية:

var x = `هذا النص يستخدم علامة الاستفهام المزدوجة.`;
اختبار لمعرفة < / >

حساب طول النص

lengthالخصائص تعود بالنصوص طول النص. بالنسبة لنص فارغ، طول 0.

var str = 'JavaScript tutorial ';
str.length;// return 15
اختبار لمعرفة < / >

الاحتياط:الفراغ يُعتبر كحرف أيضًا.

التركيب النصي

التركيب يعني دمج اثنين أو أكثر من النصوص لإنشاء نص جديد.

+ عمودي يُستخدم لجمع (التركيب) النصوص.

var str1 = "quick brown fox";
var str2 = "over the lazy dog";
var str3 = "The " + str1 + " jumps " + str2;
اختبار لمعرفة < / >

قيمة النمط(template literal)واحدة من الميزات الخاصة للوظيفة هي القدرة على تضمين تعبيرات ومتغيرات في النص. دون الحاجة إلى توصيلها، يمكننا استخدام بناء ${} لضمان إدراج المتغير.

var str1 = "quick brown fox";
var str2 = "over the lazy dog";
var str3 = `The ${str1} jumps ${str2}.`;
اختبار لمعرفة < / >

في هذه الحالة، قد يكون استخدام قيمة النمط (template literal) أكثر سهولة وسهولة في الكتابة.

السلسلة المتبادلة

بسبب أن النص يجب أن يكون محاطًا بزوج من الأسهم، فإن النص التالي سيكون خاطئًا لأنه سيجعل المتصفح يتشوش حول نهاية النص:

var x = 'We'll never give up';
var y = "She said "Hey" and left";

السلسلة المتبادلة تعني أننا نقوم بتشغيلها لضمان التعرف عليها كنص وليس جزء من الكود.

في JavaScript، نحقق ذلك عن طريق إضافة شرطة عكسية قبل الحرف\().

Codeالنتيجة描述
\''قوس مزدوج
\"قوسين مزدوجين
\\\\الشرطة العكسية

السلسلة\'  إضافة قوس مزدوج في النص:

var x = 'We\'ll never give up';
اختبار لمعرفة < / >

السلسلة "  إضافة قوسين مزدوجين في النص:

var x = "She said \
اختبار لمعرفة < / >

该序列\\  在字符串中插入反斜杠:

var x = "The character \\ is called backslash";
اختبار لمعرفة < / >

JavaScript中还有其他六个转义序列有效:

Code描述
\b退格键
\f换页
\n新队
\r回车
\t水平制表符
\v垂直制表符

对于要使用无法使用键盘键入的字符的情况,转义序列也很有用。

长代码换行

为了获得最佳可读性,应避免代码行超过80个字符。

如果JavaScript语句不适合一行,则打破它的最佳位置是在运算符之后:

document.getElementById("para").innerHTML = "The sum of 20 and 30 is " +
sum;
اختبار لمعرفة < / >

在一行上写一个很长的字符串将很快变得很难阅读和使用。

我们可以使用串联运算符(+)在多行上显示字符串。

var str = "空气污染是化学物质进入 " +
"大气层。 它破坏环境平衡并导致 " +
"几种疾病.";
اختبار لمعرفة < / >

除了使用多个字符串,我们还可以使用\转义符。

var str = "空气污染是化学物质进入 \
大气层。 它破坏环境平衡并导致 \
几种疾病.";
اختبار لمعرفة < / >

الاحتياط:所述的(\)方法是不优选的,因为它可能导致某些浏览器和minifiers问题。

为了使代码更具可读性,我们可以改用模板常量(template literal)字符串。这些消除了对长字符串进行串联或转义的需要。

var str = `空气污染是化学物质进入
大气层。 它破坏环境平衡并导致
几种疾病.`;
اختبار لمعرفة < / >

重要的是要知道创建跨多行的字符串的所有方法,因为不同的代码库可能使用各种标准。

字符串基元和字符串对象

通常,JavaScript字符串是从文字创建的原始值:

var city = "New Delhi";

但是,也可以使用 new 关键字将字符串定义为对象:

var city = new String("New Delhi");

为了测试两者之间的差异,我们将初始化一个字符串基元和一个字符串对象。

var str1 = "New Delhi";
var str2 = new String("New Delhi");
typeof str1 // returns string
typeof str2 // returns object
اختبار لمعرفة < / >

الاحتياط:لا تقم بإنشاء كلمات ككيانات. هذا يمكن أن يقلل من سرعة الأداء ويؤدي إلى بعض النتائج غير المتوقعة.

عند استخدام محتوى ==، الكلمات المتشابهة هي نفسها:

var str1 = "New Delhi";
var str2 = new String("New Delhi");
document.write(str1 == str2); // العودة إلى (true) لأن قيمة str1 و str2 متساوية
اختبار لمعرفة < / >

عند استخدام محتوى ===، فإن الكلمات المختلفة ليست متشابهة، لأن محتوى === يتوقع قيمة ونوع متساويين:

var str1 = "New Delhi";
var str2 = new String("New Delhi");
document.write(str1 === str2); // العودة إلى (false) لأن نوع str1 و str2 مختلفان
اختبار لمعرفة < / >

لا يمكن مقارنة الكيانات:

var str1 = new String("New Delhi");
var str2 = new String("New Delhi");
document.write(str1 == str2); // لأن str1 و str2 هي كيانات مختلفة، سيتم العودة إلى (false)
document.write(str1 === str2); // لأن str1 و str2 هي كيانات مختلفة، سيتم العودة إلى (false)
اختبار لمعرفة < / >

لاحظ الفرق بين (==) و (===). عند مقارنة جداول JavaScript ستعود دائمًا إلى (false).