Files
WebBurBurBur/lec/4.md
2025-10-16 18:50:36 +03:00

3.1 KiB
Raw Blame History

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

Функции

function someFunc(x, y, z){
    if (x === undefined){
        x = 1;
    }
    y = y || 555;
    var a = 25;
    return x * y + z / a;
}

или

var someFunc = function(x) {return x * x;}

или

var f = function fact(n){
    return n > 1
    ? n * fact(n-1)
    : 1;
};

или

var arr = [1,2,3];

arr.sort(function(left, right) {
    return right - left;
});

или если хочется взлома жопы

var square = new Function("x", "return x * x;");

Объекты

Создание

var obj1 = new Object()
var obj = {};
var obj3 = {a: 100;};

Свойства

  • Ключ-строка
  • Значение - любой тип данных, включая объект
  • Флаги: writable, enumerable, configurable

Удаление объекта

delete obj.prop1;

Проверка существования свойства

if ('prop1' in obj){}
if (obj.prop1 === undefined){}
if (obj.hasOwnProperty('prop1')){}

Доступ к свойствам

obj.prop1
obj['prop-2']
obj[p]

Перебор свойств объекта

for (var key in obj) {};
Object.keys(obj);

Массивы

Создание массива

var a = new Array(1.2, "text", true, {x:1});

var b = new Array(10); // массив из undefined

var c = [];
c[0] = 1;

Fun work

var arr = [];
arr[10]= 'hi';
console.log(arr.length); // 11

Методы массивов

  • Добавление/удаление
    • pop/push (конец)
    • shift/unshift (начало)
  • Преобразование из строки в массив
    • split
    • join
  • slice
  • splice
  • sort