مشخصات مقاله
آموزش رشته ها (string) در جاوا اسکریپت
رشته ها (string) در جاوا اسکریپت
از رشته (string) به منظور ذخیره سازی و دستکاری نوشته یا متن در جاوا اسکریپت استفاده می شود.
رشته در جاوا اسکریپت اصولا جهت ذخیره ی یک سری کاراکتر بکار می رود، مانند این مثال : "John Doe".
رشته می تواند هر نوشته ی داخل علامت نقل و قول باشد. امکان استفاده از هر دو نوع " " یا ' ' وجود دارد.
نمونه یک
1 2 3 4 5 6 | <script> var carName1 = "Volvo XC60" ; var carName2 = 'Volvo XC60' ; document.getElementById( "demo" ).innerHTML = carName1 + "<br>" + carName2; </script><button></button> |
حتی می توان از علامت بیان شده داخل خود رشته استفاده کرد، مادام اینکه با علامت های نقل و قول اطراف رشته تداخل پیدا نکنند.
مثال:نمونه دو
1 2 3 4 5 | var answer1 = "It's alright" ; var answer2 = "He is called 'Johnny'" ; var answer3 = 'He is called "Johnny"' ; document.getElementById( "demo" ).innerHTML = answer1 + "<br>" + answer2 + "<br>" + answer3;<button></button> |
طول رشته (string length)
جهت بدست آوردن طول یک رشته، کافی است از خاصیت (property) length بهره ببرید.
مثال:نمونه سه
1 2 | var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; document.getElementById( "demo" ).innerHTML = txt.length;<button></button> |
کارکاترهای ویژه ی (Special Characters) جاوا اسکریپت
به این خاطر که رشته باید حتما داخل علامت نقل و قول قرار داده شود، جاوا اسکریپت قادر به درک رشته های مشابه نمونه ی زیر نخواهد بود.
مثال:1 2 | var y = "We are the so-called " Vikings " from the north." <button></button> |
بدین معنا که رشته به صورت زیر کوتاه شده و بقیه ی آن درنظر گرفته نمی شود.
1 2 | "We are the so-called " . <button></button> |
جهت اجتناب از بروز مشکلاتی از این دست، باید از کاراکتر"\ " استفاده کنید.
علامت (\) برای وارد کردن کاراکترهای ویژه مانند: (")، (') و یا رفتن به خط جدید در یک رشته، استفاده می شود.
نمونه چهار
1 2 3 4 5 | var x = 'It\'s alright' ; var y = "We are the so-called \"Vikings\" from the north." ; document.getElementById( "demo" ).innerHTML = x + "<br>" + y; <button></button> |
جدول زیر تمامی کاراکترهایی که امکان درج آن ها در رشته با استفاده از (\) فراهم می آید را فهرست کرده.
شکستن خطِ کدهای طولانی (قرار دادن کد در خط بعدی)
به منظور بهبود خوانایی کد، برنامه نویسان تا حد ممکن از قرار دادن بیش از 80 کاراکتر داخل یک خط اجتناب می کنند.
در صورتی که دستور جاوا اسکریپت داخل یک خط جا نمی گیرد، بهترین مکان برای شکستن آن خط پس از عملگر خواهد بود.
نمونه پنج
1 2 3 4 5 6 7 | <h1>My Web Page</h1> <p> The best place to break a code line is after an operator or a comma. </p> <p id= "demo" > false </p><button></button> |
همچنین می توان یک خط کد را از وسط یک رشته ی متنی (text string) قطع کرد و بقیه ی آن را در خط بعدی قرار داد، این امر با استفاده از کاراکتر" \ " امکان پذیر می شود.
مثال:نمونه شش
1 2 3 4 | <script> document.getElementById( "demo" ).innerHTML = "Hello\ Dolly."; </script><button></button> |
استفاده از کاراکتر مذکور به گونه ی که تشریح شد یک استاندارد ECMAScript (JavaScript) نیست. برخی از مرورگرها فاصله ی قبل از کاراکتر \ را نمی پذیرند.
روش امن تر و پرکاربرد تر، به هم وصل کردن رشته های شکسته شده توسط " + " می باشد.
مثال:نمونه هفت
1 2 3 4 | <script> document.getElementById( "demo" ).innerHTML = "Hello" + "Dolly." ; </script><button></button> |
اجازه ی نصف کردن (شکستن) خط کد با استفاده از کاراکتر \ به شما داده نمی شود.
مثال:نمونه هشت
1 2 3 4 | <script> document.getElementById( "demo" ).innerHTML = \ "Hello Dolly." ; </script><button></button> |
به طور معمول رشته های جاوا اسکریپت مقادیر اولیه ی هستند که از literal ها ساخته می شوند.
1 2 | var firstName = "John" <button></button> |
اما می توان رشته ها را با استفاده از کلید واژه ی new به عنوان شی تعریف کرد.
1 2 | var firstName = new String( "John" ) <button></button> |
نمونه نه
1 2 3 4 5 6 7 | <script> var x = "John" ; // x is a string var y = new String( "John" ); // y is an object document.getElementById( "demo" ).innerHTML = typeof x + "<br>" + typeof y; </script><button></button> |
سعی کنید تا حد ممکن از ایجاد رشته به عنوان اشیا خودداری کنید، زیرا که سرعت اجرا را کاهش داده و باعث بوجود آمدن اثار جانبی ملال آوری زیادی می شود.
اگر از عملگر == استفاده کنید، رشته های (که مقادیر یکسان دارند) یکسان تلقی می گردند.
مثال:نمونه ده
1 2 3 4 5 | <script> var x = "John" ; // x is a string var y = new String( "John" ); // y is an object document.getElementById( "demo" ).innerHTML = (x == y); </script><button></button> |
اما چنانچه از عملگر === استفاده کنید، رشته هایی که فقط مقادیر یکسان دارند دیگر کاملا یکسان محسوب نمی شوند زیرا که عملگر ذکر شده انتظار دارد رشته ها از نظر مقدار و نوع با هم یکی باشند.
مثال:نمونه یازده
1 2 3 4 5 | <script> var x = "John" ; // x is a string var y = new String( "John" ); // y is an object document.getElementById( "demo" ).innerHTML = (x === y); </script><button></button> |
حتی بدتر اشیا هستند که نمی توان آن ها را با هم مقایسه کرد.
مثال:نمونه دوازده
1 2 3 4 5 | <script> var x = new String( "John" ); // x is an object var y = new String( "John" ); // y is an object document.getElementById( "demo" ).innerHTML = (x == y); </script><button></button> |
مهم : اشیا را نمی توان با هم مقایسه کرد.
خصوصیت ها و متدهای رشته
مقادیر اولیه مانند "John Doe" قادر به گرفتن خصوصیت و متد نیستند (زیرا که این مقادیر اولیه شی محسوب نمی شوند).
اما در جاوا اسکریپت این امکان برای مقادیر اولیه وجود دارد که متد و خصوصیت دریافت کنند، زیرا که جاوا اسکریپت هنگام اجرای متدها و خاصیت ها (property) با مقادیر اولیه مانند شی برخورد می کند.