String՝ Ստրինգ (Տող)
JavaScript-ում String-ը տեքստի տիպ է, որը ներկայացվում է UTF-16 կոդավորմամբ։ Ստրինգը ստեղծվում է՝
- Կրկնակի չակերտներով ("")
- Միայնակ չակերտներով ('')
- Թեք չակերտներով (``) → (Template Literal)
1. Ստրինգ ստեղծելու եղանակներ
Օրինակ՝ տարբեր ձևերով ստեղծված ստրինգեր
const str1 = "Hello"; // Կրկնակի չակերտներ
const str2 = 'World'; // Միայնակ չակերտներ
const str3 = `Welcome, ${str1} ${str2}!`; // Թեք չակերտներ (Template Literal)
Template Literal-ը թույլ է տալիս ներառել փոփոխականներ ${} նշաններով՝
const name = "John";
const message = `Hello, ${name}!`; // Hello, John!
2. Ստրինգի հիմնական հատկություններ
Ինդեքսավորում
- Ստրինգը կարելի է դիտարկել որպես սիմվոլների զանգված (array-like):
- Սկսվում է 0-ից։
const str = 'JavaScript';
console.log(str[0]); // 'J'
console.log(str[4]); // 'S'
console.log(str[str.length - 1]); // 't'
Իմմուտաբելություն (Immutable)
- Ստրինգները իմմուտաբել են՝ դրանք հնարավոր չէ ուղղակիորեն փոխել։
- Փոխելու համար պետք է ստեղծել նոր տող։
let str = 'Hello';
str[0] = 'h'; // Չի աշխատի
str = 'hello'; // Նոր արժեք վերագրելը աշխատում է
3. Հիմնական մեթոդներ (Methods)
JavaScript-ում ստրինգների համար առկա են մի շարք ներկառուցված մեթոդներ․
length → Տողի երկարությունը
const str = 'JavaScript';
console.log(str.length); // 10
charAt(index) → Վերադարձնում է տողի նշված ինդեքսի սիմվոլը
const str = 'JavaScript';
console.log(str.charAt(0)); // 'J'
slice(start, end) → Կտրում է տողի հատվածը
- start → սկսելու ինդեքսը
- end → (պարտադիր չէ) մինչև ուր կտրել (չի ներառվում)
const str = 'JavaScript';
console.log(str.slice(0, 4)); // 'Java'
console.log(str.slice(4)); // 'Script'
console.log(str.slice(-6)); // 'Script'
substring(start, end) → Նույն է, ինչ slice, բայց բացասական արժեքներ չի ընդունում
const str = 'JavaScript';
console.log(str.substring(0, 4)); // 'Java'
console.log(str.substring(4)); // 'Script'
substr(start, length) → Վերադարձնում է տողի հատվածը՝ տրված երկարությամբ
const str = 'JavaScript';
console.log(str.substr(4, 3)); // 'Scr'
toUpperCase() և toLowerCase() → Փոխում է տեքստի ռեգիստրը
const str = 'JavaScript';
console.log(str.toUpperCase()); // 'JAVASCRIPT'
console.log(str.toLowerCase()); // 'javascript'
trim() → Հեռացնում է բացատները սկզբից և վերջից
const str = ' Hello World! ';
console.log(str.trim()); // 'Hello World!'
replace() → Փոխարինում է սիմվոլ կամ ենթատող
const str = 'JavaScript is great';
console.log(str.replace('great', 'awesome')); // 'JavaScript is awesome'
replace()-ը փոխում է միայն առաջին հանդիպած արժեքը։
Եթե ուզում ես փոխել բոլոր հանդիպումները, օգտագործիր regular expression (RegEx)՝
const str = 'JavaScript is great, JavaScript is fun';
console.log(str.replace(/JavaScript/g, 'JS')); // 'JS is great, JS is fun'
split() → Կտրում է տողը զանգվածի՝ նշված բաժանարարով
const str = 'JavaScript is fun';
console.log(str.split(' ')); // ['JavaScript', 'is', 'fun']
includes() → Վերադարձնում է true, եթե ենթատողը կա տողի մեջ
const str = 'JavaScript is fun';
console.log(str.includes('Script')); // true
console.log(str.includes('script')); // false (case-sensitive)
startsWith() և endsWith()
const str = 'JavaScript';
console.log(str.startsWith('Java')); // true
console.log(str.endsWith('Script')); // true
Տողերի համադրում (Concatenation)
Օգտագործելով + օպերատորը
const firstName = 'John';
const lastName = 'Doe';
const fullName = firstName + ' ' + lastName;
console.log(fullName); // 'John Doe'
Օգտագործելով concat() մեթոդը
const firstName = 'John';
const lastName = 'Doe';
const fullName = firstName.concat(' ', lastName);
console.log(fullName); // 'John Doe'
Օգտագործելով Template Literal
const firstName = 'John';
const lastName = 'Doe';
const fullName = `${firstName} ${lastName}`;
console.log(fullName); // 'John Doe'
String vs String Object
String-ը կարող է ստեղծվել նաև որպես օբյեկտ՝ new String() օպերատորով, բայց դա խորհուրդ չի տրվում։
const str1 = 'Hello'; // String type
const str2 = new String('Hello'); // String object
console.log(typeof str1); // 'string'
console.log(typeof str2); // 'object'
console.log(str1 === str2); // false
Լավագույն պրակտիկան է օգտագործել պարզ տողեր՝ օբյեկտների փոխարեն։
Լավ պրակտիկաներ
- Օգտագործիր Template Literals (\``) հնարավորության դեպքում՝ պարզության և ընթեռնելիության համար։
- Խուսափիր Stringօբյեկտից։
- Օգտագործիրincludes()ևstartsWith()՝ որոնումների համար։
- ոխարինման համար օգտագործիր replaceAll()կամRegEx`։