JavaScript Strings используются для хранения и управления текстом или последовательностью символов.

Есть два способа инициализировать строку в JS.

Это как числа и логические значения в JS. У них есть примитивные и объектные версии.

const string1 = "A string primitive";   // first way 
const str = new String("A String object"); // second way
console.log(typeof(string1)) // output : String
console.log(typeof(str)) // output : Object

Примитивы против. Непримитивы.

  1. В JavaScript числа, строки, значения NULL и логические значения называются примитивами.
  2. Массивы, функции и объекты называются непримитивами.
  3. Примитивы неизменяемы, а непримитивные - изменяемые.

Строка неизменна. Это означает, что вы не можете изменить определенную его часть. Вместо этого вам нужно изменить всю строку.

let name = "Anas"
name[0] = “B”
console.log(name) // output : Anas  // no errors. it won't happen anything.
//////
let name = "Anas"
name = "Bnas"
console.log(name) // output : Bnas

Массив изменчив. Это означает, что вы не можете изменить конкретную или любую его часть.

let arr = [0,5,3]
arr[0] = 10
console.log(arr) // [10, 5, 3]

4. Мы можем сравнивать примитивы по их значению, но в непримитивных мы не можем этого сделать.

для примера

// Number
let num1 = 10
let num2 = 20
console.log(num1 === num2) // output : true 
// String
const x = "hi"
const y = "hi"
console.log(x === x) // output : true
-----------
// Functions
function test(){}
function test2(){}
console.log(test === test2) // output : False
---------
// Objects 
var obj = { name : "anas" }
var obj2 = { name: "anas" }
console.log(obj === obj2) // output : False

Строка в javascript может быть заключена в одинарные или двойные кавычки.

let x = 'this is a string'   // single qoute
let y = "this is a string"   // double qoute

нам нужно знать несколько вещей:

  1. одинарная кавычка не может содержать одинарную кавычку.
const myString1 = ' this is 'anas' '; // error
var mystr = '<img src='myimage.png' />' // error

                 --------------------------
const myString2 = 'this is "anas" ' // correct 
var mystr = '<img src="myimage.png" alt="test" />' // correct

2. двойные кавычки не могут содержать двойные кавычки.

const myString1 = " this is "anas" "; // error
var mystr = "<img src="myimage.png" />" // error

                -------------------

const myString2 = "this is 'anas' " // correct
var mystr = "<img src='myimage.png' />" // correct

3. Обратная косая черта игнорирует любые ошибки. это означает, что он может содержать что угодно, или, если строка включает переменные и одинарные или двойные кавычки, заключите ее в. `

Ex1: 
var myStr = ` it's me. my name is "Anas" ` // output : it's me. my name is "anas" 
Ex2:
var name = "Anas"
var myStr = `it's me. my name is ${name}`
console.log(myStr) // output: it's me. my name is "Anas"
Ex3: 
let myImage = `<img src="${myImage}" alt='test' width="500" height="600">` 
// it can contain single or double quotes with no errors.

Иногда ваша строка содержит специальные символы, чтобы этого избежать. Мы можем использовать escape-обозначение

var title = " test \"ok\"  "  // output : test "ok"
var str = 'it\'s me '   // output : it's me
\'         single quote
\"         double quote
\\         backslash quote
\n         newline

Дополнительные обозначения Escape вы найдете здесь.

Конкатенация

это процесс добавления одной строки в конец другой строки. Вы объединяете строки с помощью оператора + или функции Concat ().

var x = “Anas” + “Shahwan”; // output : Anasshahwan // no space
var y= “Anas”+" "+“Shahwan”; // output : Anas shahwan // with space
---------
var title = “Anas”;
title += “Shahwan”  // output : Anasshahwan
---------
var middleName = “this is my middle name”
var fullName = “Anas” + middleName + “ Shahwan”
// output : Anas this is my middle name Shahwan
------------
var firstName= "Anas"
var middleName = “this is my middle name”
var LastName = “Shahwan”
var fullName = firstName
fullName += middleName
fullName += lastName
console.log(fullName) // output : Anas this is my middle name Shahwan

Concat () можно использовать вместо оператора плюс

let text1 = "Java";
let text2 = "Script";
let text3 = text1.concat(" ", text2); // " " means space
console.log(text3) // Java Script

2. строковые функции

1. Длина

Это свойство, которое возвращает длину строки.

let name = "Anas"
console.log(name.length)   // 4

2. Извлекая части строки, у нас есть три функции

  1. slice(start, end) извлечь часть строки и вернуть извлеченную часть в новой строке.
Let name= “Anas Shahwan”
str.slice(0,4) // Anas
str.slice(5) // Shahwan
str.slice(5,9) // Shah
str.slice(-7) // Shahwan

2. substring(start, end) похож на slice, но разница в том, что substring () не может принимать отрицательные индексы.

Let name= “Anas Shahwan”
str.substring(0,4) // Anas
str.substring(5) // Shahwan
str.substring(5,9) // Shah

3. substr(start, length) похож на slice(). Разница в том, что второй параметр указывает длину извлеченной части. Если первый параметр отрицательный, позиция отсчитывается от конца строки.

Let name= “Anas Shahwan”
str.substr(2)  // as Shahwan
// by default length will slice out the rest of the string
str.substr(2,7) //  as Shah

3. заменить ()

он заменяет указанное значение другим значением в строке.

let str = “Love JavaScript”
let newStr = str.replace(“JavaScript”,”JS”); 
console.log(newStr) // Love JS

По умолчанию метод replace () чувствителен к регистру. Чтобы заменить нечувствительность к регистру, используйте регулярное выражение с флагом /i

var str = “Love JavaScript JavaScript”
var newStr = str.replace(/JavaScript/i,”JS”); 
console.log(newStr) // Love JS JavaScript

Чтобы заменить все совпадения, используйте регулярное выражение на /g

var str = “Love JavaScript JavaScript”
var newStr = str.replace(/JavaScript/g,”JS”);
var all = str.replace(/JAVASCRipt/ig,”JS”); // RG combine i + g 
console.log(newStr) // Love JS JS

4. Преобразование в верхний регистр () и в нижний регистр ()

toLowerCase() возвращает строку, преобразованную в нижний регистр.

var title = "JavaScript"
console.log(title.toLowerCase()); // javascript

toUpperCase() Возвращает строку, преобразованную в верхний регистр.

var title = "JavaScript"
console.log(title.toUpperCase()); // JAVASCRIPT

5. включает (searchWord, позиция)

он определяет, существует ли строка в другой строке. Он возвращает true, если искомая строка или слово найдено, или false, если нет.

const myStr = 'I love javascript';
const myWord = "love";
const sentence = "Do you love JS?"
console.log(myStr.includes("javascript")); // output: true
console.log(myStr.includes(myWord)); // output: true
console.log(sentence.includes("?")); // output: true

Это чувствительно к регистру. Слово должно совпадать.

const myStr = 'I love javascript';
console.log(myStr.includes("javaScript")); // output: false 

position По умолчанию 0. Но вы можете выбрать, по какому индексу начать поиск.

const myStr = 'I love javascript';
console.log(myStr.includes("javascript",8)); // output: false
why?? becasue it starts from position number 8 'avascript' == 'javascript' 
                         ---------
const myStr = 'I love javascript';
console.log(myStr.includes("javascript",7)); // output: true
why?? becasue it starts from position number 7 'javascript' == 'javascript' 

6. Удаление пробелов из строки

Метод trim() удаляет пробелы с обеих сторон строки:

let text = "   Love JS!  "; text.trim().                    
// output:  "Love JS!"

используйте trimStart(). если вы хотите обрезать пробелы в начале строки,

let text = "       Love JS!        "; 
text.trimStart() // output:  "Love JS!        "

используйте trimEnd(). если вы хотите обрезать пробелы в конце строки,

let text = "       Love JS!        "; 
text.trimEnd() // output:  "      Love JS!"

7. Извлечение строковых символов

Есть 3 метода извлечения строковых символов:

  1. charAt(position)

он возвращает символ по указанному индексу (позиции) в строке:

let text = "JavaScript";
console.log(text.charAt(0))     return first letter // J
console.log(text.charAt(text.length-1))    return last letter // t

2. charCodeAt(position)

он возвращает Unicode символа по указанному индексу в строке.

let text = "JavaScript"
text.charCodeAt(0)       // Returns 74

3. Property access[]

var name = "Anas"
console.log(name[0]) // return first letter A
console.log(name[name.length - 1]) // return last letter S

8. преобразование строки в массив

  1. строка может быть преобразована в массив с помощью метода split()
var name = "Anas Sh"
console.log(name.split(""))  // ["A", "n", "a", "s", " ", "S", "h"]
console.log(name.split(" "))  // ["Anas", "Sh"]
var str = "I,Love,JavaScript"
console.log(str.split(","))  // ["I", "Love", "JavaScript"]

2. Array.from(string)

var title = "JS"
console.log(Array.from(title)) // ["J", "S"]

3. Object.assign([], string)

var title = "JS"
console.log(Object.assign([], title)) // ["J", "S"]

Чтобы узнать больше о методах String, здесь.

Наконец, мы рассмотрели все, что касается струн.

Любые отзывы, пожалуйста, не стесняйтесь обращаться ко мне.

Спасибо за чтение.