Compare commits

..

2 Commits

Author SHA1 Message Date
cf48b0ca1b Lecture 4 2025-10-16 18:50:36 +03:00
ff4059c187 Lab1: edit css file 2025-10-16 16:08:51 +03:00
2 changed files with 159 additions and 5 deletions

View File

@@ -167,7 +167,6 @@ body {
& > .task__text {
flex: 1;
text-align: left;
transition: padding-right 0.3s ease;
overflow: hidden;
text-overflow: ellipsis;
}
@@ -176,6 +175,7 @@ body {
flex-direction: column;
align-items: center;
gap: 4px;
opacity: 60%;
& > .icon-row {
display: flex;
@@ -185,11 +185,10 @@ body {
.icon {
width: clamp(16px, 1.3vw, 22px);
height: auto;
opacity: 60%;
}
&:hover{
opacity: 100%;
}
&:hover{
opacity: 100%;
}
}
}

155
lec/4.md Normal file
View File

@@ -0,0 +1,155 @@
# LEC 4. Java-bruh-script
## History
При разработке отталкивался от языков:
- Self - диалект Small Talk (первый ООП-подобный язык)
- Scheme - функциональное программирование
## Особенности
- Мультпарадигменность
- Динамическая типизация
- Автоматическая работа с памятью и сборка мусора
## Лексическая структура
- Unicode
- Чувствительность к регистру
- Комментарии в C++ style
- Необязательность к ;
## Типы данных
Простейшие типы:
- number (8 byte)
- string
- boolean
Тривиальные типы:
- null
- undefined
Составные типы:
- object
- array (type of object)
Специальные типы:
- functions
- Стандартные классы
- Date
- RegExp
- Error
- Math
## Проверка на равенство и идентичности в JS
=== - идентичность - максимально строгое сравнение
== - равенство - допустимо приведение типов
- null and undefined - равны
- string -> number
## Преобразование типов
- string (String, toString, toFixed, toExponential, toPrecision)
- number (Number, parseInt, parseFloat)
- default
## Функции
```js
function someFunc(x, y, z){
if (x === undefined){
x = 1;
}
y = y || 555;
var a = 25;
return x * y + z / a;
}
```
или
```js
var someFunc = function(x) {return x * x;}
```
или
```js
var f = function fact(n){
return n > 1
? n * fact(n-1)
: 1;
};
```
или
```js
var arr = [1,2,3];
arr.sort(function(left, right) {
return right - left;
});
```
или если хочется взлома ~~жопы~~
```js
var square = new Function("x", "return x * x;");
```
## Объекты
### Создание
```js
var obj1 = new Object()
var obj = {};
var obj3 = {a: 100;};
```
### Свойства
- Ключ-строка
- Значение - любой тип данных, включая объект
- Флаги: writable, enumerable, configurable
### Удаление объекта
```js
delete obj.prop1;
```
### Проверка существования свойства
```js
if ('prop1' in obj){}
if (obj.prop1 === undefined){}
if (obj.hasOwnProperty('prop1')){}
```
### Доступ к свойствам
```js
obj.prop1
obj['prop-2']
obj[p]
```
### Перебор свойств объекта
```js
for (var key in obj) {};
Object.keys(obj);
```
## Массивы
### Создание массива
```js
var a = new Array(1.2, "text", true, {x:1});
var b = new Array(10); // массив из undefined
var c = [];
c[0] = 1;
```
### Fun work
```js
var arr = [];
arr[10]= 'hi';
console.log(arr.length); // 11
```
### Методы массивов
- Добавление/удаление
- pop/push (конец)
- shift/unshift (начало)
- Преобразование из строки в массив
- split
- join
- slice
- splice
- sort