How To WebDev
2.41K subscribers
8 photos
1 video
325 links
Заявки принимаются моментально!

Обучаем фронтентду и бекенду просто и понятно!

Сотрудничество: @me_Smith

Ссылка на канал: @HowTo_WebDev
Download Telegram
🧾 Строки в JavaScript

В JavaScript любые текстовые данные являются строками. Не существует отдельного типа «символ», который есть в ряде других языков. Внутренний формат для строк — всё время UTF-16, вне зависимости от кодировки страницы.

Кавычки.

В JavaScript существуют различные типы кавычек.

Строку можно создать с помощью одинарных, двойных либо обратных кавычек:

let single = 'single-quoted';
let double = "double-quoted";

let backticks = `backticks`;

Одинарные
и двойные кавычки работают одинаково, а если использовать обратные кавычки, то в такую строку мы сможем вставлять произвольные выражения, обернув их в ${…}:

let guestList = `Guests:
* John
* Pete
* Mary
`;

alert(guestList); // список гостей, состоящий из нескольких строк

📋
#Код
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строки в JavaScript (часть 2)

В прошлый раз мы говорили о строках и кавычках в JavaScript. Теперь поговорим про спецсимволы.

Многострочные строки также можно создавать с помощью одинарных и двойных кавычек, используя так называемый «символ перевода строки», который записывается как \n:

let guestList = "Guests:\n * John\n * Pete\n * Mary";

alert(guestList); // список гостей, состоящий из нескольких строк

Эти две строки эквивалентны, просто записаны по-разному:

// перевод строки добавлен с помощью символа перевода строки
let str1 = "Hello\nWorld";

// многострочная строка, созданная с использованием обратных кавычек
let str2 =
Hello
World
;

alert(str1 == str2); // true

📋 #Код
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строки в JavaScript (финал)

Продолжение
прошлой части про спецсимвовы. Сейчас мы рассмотрим другие, реже используемые спецсимволы:

\nперевод строки.

\r – в текстовых файлах Windows для перевода строки используется комбинация символов \r\n, а на других ОС это просто \n.

\', \"кавычки.

\\обратный слеш.

\tзнак табуляции.

\b, \f, \vBackspace, Form Feed и Vertical Tab оставлены для обратной совместимости, на данный момент не используются.

\xXX – символ с шестнадцатеричным Юникодным кодом XX.

\uXXXX – символ в кодировке UTF-16 с шестнадцатеричным кодом XXXX.

\u{X…XXXXXX} (от 1 до 6 шестнадцатеричных цифр) – символ в кодировке UTF-32 с шестнадцатеричным кодом от U+0000 до U+10FFFF. Некоторые редкие символы кодируются двумя 16-битными словами и занимают 4 байта. Так можно вставлять символы с длинным кодом.

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Операция in в Python

С помощью in можно проверить наличие элемента в списке, строке и любой другой итерируемой переменной.

Приведём пример:

fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
if 'Apple' in fruits:
print('В списке есть элемент Apple')

>>> В списке есть элемент Apple

fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
if 'Lemon' in fruits:
print('В списке есть элемент Lemon')
else:'
print('В списке НЕТ элемента Lemon')

>>> В списке НЕТ элемента Lemon

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод append в Python

Данный метод добавляет элемент в конец списка:

# Создаем список, состоящий из четных чисел от 0 до 8 включительно
numbers = list(range(0,10,2))
# Добавляем число 200 в конец списка
numbers.append(200)
numbers.append(1)
numbers.append(2)
numbers.append(3)
print(numbers)

>>> [0, 2, 4, 6, 8, 200, 1, 2, 3]

Методу append можно передавать абсолютно любые значения:

all_types = [10, 3.14, 'Python', ['I', 'am', 'list']]
all_types.append(1024)
all_types.append('Hello world!')
all_types.append([1, 2, 3])
print(all_types)

>>> [10, 3.14, 'Python', ['I', 'am', 'list'], 1024, 'Hello world!', [1, 2, 3]]

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод insert в Python

Этот метод добавляет элемент в список на произ­вольную позицию. Insert принимает в качестве первого аргу­мента позицию, на которую нужно вставить элемент, а вторымсам элемент.

Приведём пример:

# Создадим список чисел от 0 до 9
numbers = list(range(10))
# Добавление элемента 999 на позицию с индексом 0
numbers.insert(0, 999)
print(numbers) # первый print
numbers.insert(2, 1024)
print(numbers) # второй print
numbers.insert(5, 'Засланная строка-шпион')
print(numbers) # третий print

>>> [999, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # первый print
>>> [999, 0, 1024, 1, 2, 3, 4, 5, 6, 7, 8, 9] # второй print
>>> [999, 0, 1024, 1, 2, 'Засланная строка-шпион', 3, 4, 5, 6, 7, 8, 9] # третий print

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в JavaScript

Javascript поддерживает два вида структуры "массив":

1. Ассоциативный массив (хеш), где данные хранятся по произвольному ключу.

2. Числовой массив Array, где данные хранятся по номерам.

Javascript - очень гибкий язык, поэтому технически в Array можно хранить произвольные ключи, как в Object. Но желательно использовать типы по назначению.

Для хранения данных по номеру предназначен тип Array. В типе Array есть специальные методы, ориентированные именно на работу с числовыми ключами.

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Создание и изменение массива в JavaScript

Есть два способа создания массива:

var a = new Array()
var a = []

Или же сразу со значениями:

var a = new Array("a", 1, true)
var a = ["a", 1, true]

Эти способы работают одинаково, кроме объявления вида new Array(10), когда у конструктора есть единственный аргумент-число.

Такое объявление создаст пустой массив (все элементы undefined) длиной 10. По возможности, не надо использовать new Array.

Отсчет элементов начинается с нуля:

alert(a[0]) // => "a"

Массив хранит данные по численным ключам, но внутри он использует точно такой же хэш (ту же структуру данных), как и обычный объект, поэтому можно сделать так:

var a = []
a[1] = 1
a[999999] = 2

И массив будет занимать память, нужную для хранения этих двух соответствий.

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Методы pop/push, shift/unshift в JavaScript

Очередь
– один из самых распространённых вариантов применения массива. В области компьютерных наук так называется упорядоченная коллекция элементов, поддерживающая два вида операций:

Push добавляет элемент в конец.

Shift удаляет элемент в начале, сдвигая очередь, так что второй элемент становится первым.

Массивы поддерживают обе операции. На практике необходимость в этом возникает очень часто. Например, очередь сообщений, которые надо показать на экране.

Существует и другой вариант применения для массивовструктура данных, называемая стек.

Она поддерживает два вида операций:

Push добавляет элемент в конец.

Pop удаляет последний элемент.

Таким образом, новые элементы всегда добавляются или удаляются из «конца». Массивы в JavaScript могут работать и как очередь, и как стек. Можно добавлять/удалять элементы как в начало, так и в конец массива.

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Методы, работающие с концом массива

С концом массива работает метод pop и push. Он удаляет последний элемент из массива и возвращает его:

let fruits = ["Яблоко", "Апельсин", "Груша"];

alert( fruits.pop() ); // удаляем "Груша" и выводим его

alert( fruits ); // Яблоко, Апельсин

И fruits.pop() и fruits.at(-1) возвращают последний элемент массива, но fruits.pop() также изменяет массив, удаляя его.

Метод push добавляет элемент в конец массива:

let fruits = ["Яблоко", "Апельсин"];

fruits.push("Груша");

alert( fruits ); // Яблоко, Апельсин, Груша

Вызов fruits.push(...) равнозначен fruits[fruits.length] = ....

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод pop в Python

Данный метод удаляет элемент из списка по его индексу.

Приведëм пример:

numbers = list(range(10))
print(numbers) # 1
# Удаляем первый элемент
numbers.pop(0)
print(numbers) # 2
numbers.pop(0)
print(numbers) # 3
numbers.pop(2)
print(numbers) # 4
# Чтобы удалить последний элемент, вызовем метод pop без аргументов
numbers.pop()
print(numbers) # 5
numbers.pop()
print(numbers) # 6

>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 1
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9] # 2
>>> [2, 3, 4, 5, 6, 7, 8, 9] # 3
>>> [2, 3, 5, 6, 7, 8, 9] # 4
>>> [2, 3, 5, 6, 7, 8] # 5
>>> [2, 3, 5, 6, 7] # 6

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод remove в Python

Метод remove удаляет пер­вый найденный по значению элемент в списке.

Рассмотрим пример использования:

all_types = [10, 'Python', 10, 3.14, 'Python', ['I', 'am', 'list']]
all_types.remove(3.14)
print(all_types) # 1
all_types.remove(10)
print(all_types) # 2
all_types.remove('Python')
print(all_types) # 3

>>> [10, 'Python', 10, 'Python', ['I', 'am', 'list']] # 1
>>> ['Python', 10, 'Python', ['I', 'am', 'list']] # 2
>>> [10, 'Python', ['I', 'am', 'list']] # 3

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод count в Python

Метод count считает элементы списка.

Пример использования:

numbers = [100, 100, 100, 200, 200, 500, 500, 500, 500, 500, 999]
print(numbers.count(100)) # 1
print(numbers.count(200)) # 2
print(numbers.count(500)) # 3
print(numbers.count(999)) # 4

>>> 3 # 1
>>> 2 # 2
>>> 5 # 3
>>> 1 # 4


📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод sort в Python

Метод sort сортирует список по возрастанию значений его элементов.

Рассмотрим пример:

numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.sort()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 2

>>> [2, 3, 9, 11, 78, 100, 567, 1024] # 1
>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 2


📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Методы, работающие с началом массива в JavaScript

С началом массива работают методы shift и unshift.

Shift удаляет из массива первый элемент и возвращает его:

let fruits = ["Яблоко", "Апельсин", "Груша"];

alert( fruits.shift() ); // удаляем Яблоко и выводим его

alert( fruits ); // Апельсин, Груша

Unshift добавляет элемент в начало массива:

let fruits = ["Апельсин", "Груша"];

fruits.unshift('Яблоко');

alert( fruits ); // Яблоко, Апельсин, Груша


📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Внутреннее устройство массива (часть 1)

Массив – это особый подвид объектов. Квадратные скобки, используемые для того, чтобы получить доступ к свойству arr[0] – это по сути обычный синтаксис доступа по ключу, как obj[key], где в роли obj у нас arr, а в качестве ключачисловой индекс.

Массивы расширяют объекты, так как предусматривают специальные методы для работы с упорядоченными коллекциями данных, а также свойство length. Но в основе всё равно лежит объект.

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод reverse в Python (часть 1)

Параметр reverse используется для изменения порядка сортировки. По умол­чанию этот параметр равен False.

Рассмотрим пример:

fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 1
fruits.sort(reverse=True)
print(fruits) # 2

>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 1
>>> ['Peach', 'Orange', 'Grape', 'Banan', 'Apple'] # 2

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод reverse в Python (часть 2)

Также метод reverse используют для переворота списка.

Пример использования:

numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.reverse()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.reverse()
print(fruits) # 2

>>> [78, 567, 1024, 3, 9, 11, 2, 100] # 1
>>> ['Apple', 'Banan', 'Peach', 'Grape', 'Orange'] # 2

📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод extend в Python

Для объединения двух списков в Python есть полез­ный метод extend.

Этот метод вызы­вается для одного списка, а в качестве аргу­мента ему пере­дается другой список, extend запи­сывает в конец первого из них начало вто­рого:

fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.extend(vegetables)
print(fruits)

>>> ['Banana', 'Apple', 'Grape', 'Tomato', 'Cucumber', 'Potato', 'Carrot']

📋
#Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод clear в Python

В Python для очистки списков используется специальный метод clear.

fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.clear()
vegetables.clear()
print(fruits)
print(vegetables)

>>> [ ]
>>> [ ]

📋
#Совет
▬▬▬▬▬▬▬▬
// How To WebDev