🧾 Строгий режим в JavaScript (часть 1)
Директива "use strict"
Директива "use strict" была новой в ECMAScript версии 5.
Это не утверждение, а буквальное выражение, игнорируемое более ранними версиями JavaScript.
Назначение "use strict" - указать, что код должен выполняться в "строгом режиме".
В строгом режиме нельзя, например, использовать необъявленные переменные.
Вы можете использовать строгий режим во всех своих программах. Это помогает писать более чистый код, например, предотвращая использование необъявленных переменных.
"use strict" это просто строка, поэтому IE 9 не выдаст ошибку, даже если он ее не понимает.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Директива "use strict"
Директива "use strict" была новой в ECMAScript версии 5.
Это не утверждение, а буквальное выражение, игнорируемое более ранними версиями JavaScript.
Назначение "use strict" - указать, что код должен выполняться в "строгом режиме".
В строгом режиме нельзя, например, использовать необъявленные переменные.
Вы можете использовать строгий режим во всех своих программах. Это помогает писать более чистый код, например, предотвращая использование необъявленных переменных.
"use strict" это просто строка, поэтому IE 9 не выдаст ошибку, даже если он ее не понимает.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 2)
Объявление строгого режима
Строгий режим объявляется добавлением "use strict"; в начало скрипта или функции.
Объявленный режим в начале скрипта имеет глобальную область видимости (весь код в скрипте будет выполняться в строгом режиме):
Пример:
"use strict";
x = 3.14; // Это вызовет ошибку, потому что x не объявлен
Пример:
"use strict";
myFunction();
function myFunction() {
y = 3.14; // Это также вызовет ошибку, потому что y не объявлен
}
Объявленный режим внутри функции имеет локальную область видимости (только код внутри функции находится в строгом режиме):
x = 3.14; // Это не вызовет ошибки.
myFunction();
function myFunction() {
"use strict";
y = 3.14; // Это вызовет ошибку
}
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Объявление строгого режима
Строгий режим объявляется добавлением "use strict"; в начало скрипта или функции.
Объявленный режим в начале скрипта имеет глобальную область видимости (весь код в скрипте будет выполняться в строгом режиме):
Пример:
"use strict";
x = 3.14; // Это вызовет ошибку, потому что x не объявлен
Пример:
"use strict";
myFunction();
function myFunction() {
y = 3.14; // Это также вызовет ошибку, потому что y не объявлен
}
Объявленный режим внутри функции имеет локальную область видимости (только код внутри функции находится в строгом режиме):
x = 3.14; // Это не вызовет ошибки.
myFunction();
function myFunction() {
"use strict";
y = 3.14; // Это вызовет ошибку
}
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 3)
Синтаксис "use strict";
Синтаксис для
Компиляция числового литерала (4 + 5;) или строкового литерала ("Щипунов Андрей";) в программе JavaScript не имеет побочных эффектов. Он просто компилируется в несуществующую переменную и умирает.
Таким образом, "use strict"; имеет значение только для новых компиляторов, которые "понимают" его значение.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Синтаксис "use strict";
Синтаксис для
объявления строгого режима был разработан для совместимости со старыми версиями JavaScript.Компиляция числового литерала (4 + 5;) или строкового литерала ("Щипунов Андрей";) в программе JavaScript не имеет побочных эффектов. Он просто компилируется в несуществующую переменную и умирает.
Таким образом, "use strict"; имеет значение только для новых компиляторов, которые "понимают" его значение.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 4)
Почему строгий режим?
Строгий режим упрощает написание "безопасного" JavaScript.
Строгий режим изменяет ранее принятый "плохой синтаксис" на реальные ошибки.
Например, в обычном JavaScript неправильный ввод имени переменной создает новую глобальную переменную. В строгом режиме это вызовет ошибку, что сделает невозможным случайное создание глобальной переменной.
В обычном JavaScript разработчик не будет получать никаких сообщений об ошибках, присваивая значения свойствам, недоступным для записи.
В строгом режиме любое присвоение недоступному для записи свойству, только для получения, несуществующему свойству, несуществующей переменной или несуществующему объекту вызовет ошибку.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Почему строгий режим?
Строгий режим упрощает написание "безопасного" JavaScript.
Строгий режим изменяет ранее принятый "плохой синтаксис" на реальные ошибки.
Например, в обычном JavaScript неправильный ввод имени переменной создает новую глобальную переменную. В строгом режиме это вызовет ошибку, что сделает невозможным случайное создание глобальной переменной.
В обычном JavaScript разработчик не будет получать никаких сообщений об ошибках, присваивая значения свойствам, недоступным для записи.
В строгом режиме любое присвоение недоступному для записи свойству, только для получения, несуществующему свойству, несуществующей переменной или несуществующему объекту вызовет ошибку.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 5)
Не разрешено в строгом режиме
Использование переменной без ее объявления не допускается:
"use strict";
x = 3.14; // Это вызовет ошибку
Объекты тоже переменные.
Использование объекта без его объявления не допускается:
"use strict";
x = {p1:10, p2:20}; // Это вызовет ошибку
Удаление переменной (или объекта) не допускается.
"use strict";
var x = 3.14;
delete x; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Не разрешено в строгом режиме
Использование переменной без ее объявления не допускается:
"use strict";
x = 3.14; // Это вызовет ошибку
Объекты тоже переменные.
Использование объекта без его объявления не допускается:
"use strict";
x = {p1:10, p2:20}; // Это вызовет ошибку
Удаление переменной (или объекта) не допускается.
"use strict";
var x = 3.14;
delete x; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 6)
Удаление функции не допускается.
"use strict";
function x(p1, p2) {};
delete x; // Это вызовет ошибку
Дублирование имени параметра не допускается:
"use strict";
function x(p1, p1) {}; // Это вызовет ошибку
Восьмеричные числовые литералы не допускаются:
"use strict";
var x = 010; // Это вызовет ошибку
Восьмеричные escape-символы не допускаются:
"use strict";
var x = "\010"; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Удаление функции не допускается.
"use strict";
function x(p1, p2) {};
delete x; // Это вызовет ошибку
Дублирование имени параметра не допускается:
"use strict";
function x(p1, p1) {}; // Это вызовет ошибку
Восьмеричные числовые литералы не допускаются:
"use strict";
var x = 010; // Это вызовет ошибку
Восьмеричные escape-символы не допускаются:
"use strict";
var x = "\010"; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 7)
Запись в свойство read-only не допускается:
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14; // Это вызовет ошибку
Запись в свойство get-only не допускается:
"use strict";
var obj = {get x() {return 0} };
obj.x = 3.14; // Это вызовет ошибку
Удаление свойства, которое невозможно удалить, не допускается:
"use strict";
delete Object.prototype; // Это вызовет ошибку
Слово eval нельзя использовать в качестве переменной:
"use strict";
var eval = 3.14; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Запись в свойство read-only не допускается:
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14; // Это вызовет ошибку
Запись в свойство get-only не допускается:
"use strict";
var obj = {get x() {return 0} };
obj.x = 3.14; // Это вызовет ошибку
Удаление свойства, которое невозможно удалить, не допускается:
"use strict";
delete Object.prototype; // Это вызовет ошибку
Слово eval нельзя использовать в качестве переменной:
"use strict";
var eval = 3.14; // Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 8)
Слово arguments нельзя использовать в качестве переменной:
"use strict";
var arguments = 3.14; // Это вызовет ошибку
Заявление with не допускается:
"use strict";
with (Math){x = cos(2)}; // Это вызовет ошибку
По соображениям безопасности eval() запрещенно создавать переменные в области, из которой он был вызван:
"use strict";
eval ("var x = 2");
alert (x);// Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Слово arguments нельзя использовать в качестве переменной:
"use strict";
var arguments = 3.14; // Это вызовет ошибку
Заявление with не допускается:
"use strict";
with (Math){x = cos(2)}; // Это вызовет ошибку
По соображениям безопасности eval() запрещенно создавать переменные в области, из которой он был вызван:
"use strict";
eval ("var x = 2");
alert (x);// Это вызовет ошибку
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (часть 9)
Ключевое слово this в функции ведет себя по-разному в строгом режиме.
Ключевое слово this относится к объекту, который вызвал функцию.
Если объект не указан, функции в строгом режиме вернут undefined, а функции в нормальном режиме вернут глобальный объект (окно):
"use strict";
function myFunction() {
alert(this); // выдаст предупреждение "undefined"
}
myFunction();
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Ключевое слово this в функции ведет себя по-разному в строгом режиме.
Ключевое слово this относится к объекту, который вызвал функцию.
Если объект не указан, функции в строгом режиме вернут undefined, а функции в нормальном режиме вернут глобальный объект (окно):
"use strict";
function myFunction() {
alert(this); // выдаст предупреждение "undefined"
}
myFunction();
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Строгий режим в JavaScript (финал)
Ключевые слова, зарезервированные для будущих версий JavaScript, не могут использоваться в качестве имен переменных в строгом режиме.
Такие как эти:
• implements
• interface
• let
• package
• private
• protected
• public
• static
• yield
Пример:
"use strict";
var public = 1500; // Это вызовет ошибку
Директива "use strict" распознается только в начале скрипта или функции.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Ключевые слова, зарезервированные для будущих версий JavaScript, не могут использоваться в качестве имен переменных в строгом режиме.
Такие как эти:
• implements
• interface
• let
• package
• private
• protected
• public
• static
• yield
Пример:
"use strict";
var public = 1500; // Это вызовет ошибку
Директива "use strict" распознается только в начале скрипта или функции.
📋 #JavaScript #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Лямбда в Python (часть 1)
Функция lambda — это небольшая анонимная функция.
Функция lambda может принимать любое количество аргументов, но может иметь только одно выражение.
Синтаксис
lambda аргумент : выражение
Выражение выполняется и возвращается результат.
Пример – добавьте 10 к аргументу , и верните результат:
x = lambda a : a + 10
print(x(5))
Пример – умножьте аргумент a на аргумент b и верните результат:
x = lambda a, b : a * b
print(x(5, 6))
Пример – суммируйте аргументы a, b, и c и верните результат:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Функция lambda — это небольшая анонимная функция.
Функция lambda может принимать любое количество аргументов, но может иметь только одно выражение.
Синтаксис
lambda аргумент : выражение
Выражение выполняется и возвращается результат.
Пример – добавьте 10 к аргументу , и верните результат:
x = lambda a : a + 10
print(x(5))
Пример – умножьте аргумент a на аргумент b и верните результат:
x = lambda a, b : a * b
print(x(5, 6))
Пример – суммируйте аргументы a, b, и c и верните результат:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Лямбда в Python (часть 2)
Зачем использовать лямбда-функции?
Сила лямбда лучше проявляется, когда вы используете их как анонимную функцию внутри другой функции
Скажем, у вас есть определение функции, которое принимает один аргумент, и этот аргумент будет умножен на неизвестное число:
def myfunc(n):
return lambda a : a * n
Используйте это определение функции, чтобы создать функцию, которая всегда удваивает отправляемое вами число:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Зачем использовать лямбда-функции?
Сила лямбда лучше проявляется, когда вы используете их как анонимную функцию внутри другой функции
Скажем, у вас есть определение функции, которое принимает один аргумент, и этот аргумент будет умножен на неизвестное число:
def myfunc(n):
return lambda a : a * n
Используйте это определение функции, чтобы создать функцию, которая всегда удваивает отправляемое вами число:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 1)
Python не имеет встроенной поддержки массивов, но вместо этого можно использовать Python списки.
Массивы
Массивы используются для хранения нескольких значений в одной переменной:
Пример – создайте массив, содержащий названия автомобилей:
cars = ["Ford", "Volvo", "BMW"]
Что такое массив?
Массив — это специальная переменная, которая может содержать более одного значения одновременно.
Если у вас есть список элементов (например, список названий автомобилей), хранение автомобилей в отдельных переменных может выглядеть так:
car1 = "Ford"
car2 = "Volvo"
car3 = "BMW"
Однако, если вы хотите перебрать все машины и найти конкретную? А если бы у вас было не 3 машины, а 300?
Решение представляет собой массив.
Массив может содержать множество значений под одним именем, и вы можете получить доступ к значениям, обратившись к порядковому номеру.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Python не имеет встроенной поддержки массивов, но вместо этого можно использовать Python списки.
Массивы
Массивы используются для хранения нескольких значений в одной переменной:
Пример – создайте массив, содержащий названия автомобилей:
cars = ["Ford", "Volvo", "BMW"]
Что такое массив?
Массив — это специальная переменная, которая может содержать более одного значения одновременно.
Если у вас есть список элементов (например, список названий автомобилей), хранение автомобилей в отдельных переменных может выглядеть так:
car1 = "Ford"
car2 = "Volvo"
car3 = "BMW"
Однако, если вы хотите перебрать все машины и найти конкретную? А если бы у вас было не 3 машины, а 300?
Решение представляет собой массив.
Массив может содержать множество значений под одним именем, и вы можете получить доступ к значениям, обратившись к порядковому номеру.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 2)
Доступ к элементам массива
Вы обращаетесь к элементу массива, обращаясь к номеру индекса.
Пример – получить значение первого элемента массива:
x = cars[0]
Пример – измените значение первого элемента массива:
cars[0] = "Toyota"
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Доступ к элементам массива
Вы обращаетесь к элементу массива, обращаясь к номеру индекса.
Пример – получить значение первого элемента массива:
x = cars[0]
Пример – измените значение первого элемента массива:
cars[0] = "Toyota"
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 3)
Длина массива
Используйте метод len(), чтобы вернуть длину массива (количество элементов в массиве).
Пример – вернуть количество элементов в массиве cars:
x = len(cars)
Длина массива всегда на единицу больше, чем самый высокий индекс массива.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Длина массива
Используйте метод len(), чтобы вернуть длину массива (количество элементов в массиве).
Пример – вернуть количество элементов в массиве cars:
x = len(cars)
Длина массива всегда на единицу больше, чем самый высокий индекс массива.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 4)
Цикл элементов массива
Вы можете использовать цикл for in для перебора всех элементов массива.
Пример – выведите каждый элемент массива cars:
for x in cars:
print(x)
Добавление элементов массива
Вы можете использовать метод append() для добавления элемента в массив.
Пример – добавьте еще один элемент в массив cars:
cars.append("Honda")
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Цикл элементов массива
Вы можете использовать цикл for in для перебора всех элементов массива.
Пример – выведите каждый элемент массива cars:
for x in cars:
print(x)
Добавление элементов массива
Вы можете использовать метод append() для добавления элемента в массив.
Пример – добавьте еще один элемент в массив cars:
cars.append("Honda")
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 5)
Удаление элементов массива
Вы можете использовать метод pop() для удаления элемента из массива.
Пример – удалите второй элемент массива cars:
cars.pop(1)
Вы также можете использовать метод remove() для удаления элемента из массива.
Пример – удалите элемент, который имеет значение «Volvo»:
cars.remove("Volvo")
Метод remove() удаляет только первое вхождение указанного значения.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Удаление элементов массива
Вы можете использовать метод pop() для удаления элемента из массива.
Пример – удалите второй элемент массива cars:
cars.pop(1)
Вы также можете использовать метод remove() для удаления элемента из массива.
Пример – удалите элемент, который имеет значение «Volvo»:
cars.remove("Volvo")
Метод remove() удаляет только первое вхождение указанного значения.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (часть 6)
Методы массива
В Python есть набор встроенных методов, которые вы можете использовать для списков/массивов.
append() – добавляет элемент в конец списка.
clear() – удаляет все элементы из списка.
copy() – возвращает копию списка.
count() – возвращает количество элементов с указанным значением.
extend() – добавляет элементы списка (или любого итерируемого) в конец текущего списка.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Методы массива
В Python есть набор встроенных методов, которые вы можете использовать для списков/массивов.
append() – добавляет элемент в конец списка.
clear() – удаляет все элементы из списка.
copy() – возвращает копию списка.
count() – возвращает количество элементов с указанным значением.
extend() – добавляет элементы списка (или любого итерируемого) в конец текущего списка.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Массивы в Python (финал)
index() – возвращает индекс первого элемента с указанным значением.
insert() – добавляет элемент в указанную позицию.
pop() – удаляет элемент в указанной позиции.
remove() – удаляет первый элемент с указанным значением.
reverse() – меняет порядок списка на обратный.
sort() – сортирует список.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
index() – возвращает индекс первого элемента с указанным значением.
insert() – добавляет элемент в указанную позицию.
pop() – удаляет элемент в указанной позиции.
remove() – удаляет первый элемент с указанным значением.
reverse() – меняет порядок списка на обратный.
sort() – сортирует список.
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Булевые значения в Python (часть 1)
Булевые значения представляют одно из двух значений: True или False.
В программировании вам часто нужно знать, является ли выражение True или False.
Вы можете оценить любое выражение в Python и получить один из двух ответов, True или False.
Когда вы сравниваете два значения, выражение оценивается, и Python возвращает логический ответ.
Пример:
Код
Когда вы запускаете условие "if", Python возвращает: True или False.
Пример – распечатайте сообщение на основе того, является ли условие True или False:
a = 200
b = 33
if b > a:
print("b больше чем a")
else:
print("b меньше чем а a")
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Булевые значения представляют одно из двух значений: True или False.
В программировании вам часто нужно знать, является ли выражение True или False.
Вы можете оценить любое выражение в Python и получить один из двух ответов, True или False.
Когда вы сравниваете два значения, выражение оценивается, и Python возвращает логический ответ.
Пример:
Код
Когда вы запускаете условие "if", Python возвращает: True или False.
Пример – распечатайте сообщение на основе того, является ли условие True или False:
a = 200
b = 33
if b > a:
print("b больше чем a")
else:
print("b меньше чем а a")
📋 #Backend #Python #Совет
▬▬▬▬▬▬▬▬
// How To WebDev