ПРИМИТИВНЫЕ ТИПЫ Flashcards
Примитивные типы
string (строка)
boolean (логический)-true or false -два значения .
Number :0.1 20 0 2,1
Null -это я сам ставлю переменой неопределенное значения и иногда это может пригодится
Undefined -неопределенный
Symbol -можно создавать уникальное значение !
Ссылочный тип
Примеры
Object -объект
0X3151>(
A:10
B-True
)
Это объект и в таком случае переменная содержит ссылку на данный объект со свойствами
0x7213> [1,2,3]
Это массив и здесь также переменная содержит массив
Может быть -две разных переменных , которые содержат один и тот же объект
Слова вызывающие переменные
Const -объявление с прививанием
Let - объявление переменной , которую можно в дальнейшем изменять и корректировать
Добавление нового свойства в объект ?
Пример
copy0fA.c= ‘abc’
Точка дает доступ к объекту !
И даже если это свойство отсутствует в объекте -оно будет создано !
Статическая типизация
String a= ‘abc’
int b=10
b=‘xyz’//Error
Это пример статической типизации -когда при указывание переменой также указывается тип этой переменной (string) integer-целое число и это тоже факт !
Динамическая типизация
a= ‘abc’//String
a=10 //Number
Объявлять данную переменную необходимо при помощи let -т.к строку необходимо менять в будущем.
JavaScript динамически типизированный язык , поэтому здесь ярко выражено , что переменная a может меняться .
Динамическая типизация
Функция
function a() {
console.log (Hey there’)
}
a() // ‘Hey there’
a = 10
a() //Uncaught TypeError: a is not a function
Вызов функции благодаря ()
Где a=10 - я изменил переменную и тем самым когда вызвал ее получил ошибку т.к это уже ни функция !
Const -может позволять избежать проблемы связанные с динамической типизацией !
Стрелочная функция
const.log ( ‘Hey there’)
a() // ‘Hey there’
a=10 //TypeError:
Assignment to constant variable
a ()
Объект ?
Объект имеет свойства , а если свойство имеет функцию , то называется метод !
Объект это ссылочный тип и переменную , которую я присваиваю содержит ссылку !
Объект записывается между фигурными скобками !
Между свойствами обязательно запятые .
Лучше объявлять Const , если я собираюсь делать переменную с объектом в значении !
Объект и получение свойств из объекта ?
Const myCity= {
city : ‘New York’,
popular:true,
country: ‘USA’
}
Чтобы получить какое-то свойство из объекта нужно .
console.log (my City.city) -к примеру и интерпретатор даст
// ‘New York’
Также можно получить
console.log (myCity.popular)
// true
Используя точечную запись изменить свойства объекта и даже если const работает
const myCity= {
city: ‘New York’
myCity. city = ‘Las Vegas ‘
console.log (myCity)
// {city: ‘Las Vegas’ }
Const касается переменной , а ни ее свойств!
Добавление новых свойств в объект
const myCity = {
city: ‘New York’
}
myCity.popular=true
console.log (myCity)
Должно вывести true
myCity.country= ‘USA’
console.log (myCity) -после данного вывода я получил три свойства в данном объекте:
Значение переменной ни меняется -именно поэтому обходим const !
//{city:’New York’,popular:true,country:USA}
Удаление свойства из объекта
const myCity= {
city: ‘New York’
popular:true,
country: ‘USA’
}
delete myCity.country
console.log(myCity)
Доступ к значению свойства с использованием скобок !
const myCity = {
city: ‘New York’
}
myCity [popular] = true
console.log (myCity)
// {city: ‘New York’, popular: true}
const countryPropertyName=‘country’
myCity [countryPropertyName]= ‘USA’
console.log(myCity)
// {city: ‘New York’,popular: true,country: ‘USA’}
Добавление свойства через квадратные скобки нужно если значение свойства является значением той-или иной переменной!
Also called : Bracket notation
Во втором примере : country имеется в значении и тем самым когда я объявляю значение тем же словом ,которое является значением другого свойства-надо делать через квадратные скобки !
Также можно совершать удаление через delete !
Объекты -вложенные свойства !?
const myCity= {
city: ‘New York,
info: {
isPopular:true,
country: ‘USA’
}
}
console.log(myCity.info.IsPopular)
//true
delete myCity.info [‘isPopular]
console.log(myCity)
// {city: ‘New York’,info:
{country: ‘USA’}}
В данном примере у объекта myCity есть свойство info, которое имеет в значении объект и этот объект уже имеет своих два свойство
isPopular:true,
country :’ USA’
Здесь иерархия объектов и чтобы дойти до isPopular, надо console.log( myCity.info.isPopular) две точки , чтобы добраться до данного объекта , который находится внутри объекта -как матрешка !
Внимание на запись с квадратными скобками ! И точечную запись .Но здесь квадратные скобки бесполезны т.к их нужно использовать когда в свойствах такое же название как и имя переменной !
Объекты использование переменных
const name = ‘Bogdan’
const postsQty=23
const userProfile= {
name: name,
postsQty: postsQty,
hasSignedAgreement: false-фолс
}
Здесь свойство и переменная имеют одинаковые значения -так вот , это можно не записывать ! Просто ставишь запятую и это считается дублированием .
Дубляж лучше первыми выставлять в объекте , чтобы бы было более понятней !
Глобальные объекты?
Window -присутствует в браузере
Global -такой объект присутствует в node.js
Унифицированный глобальный объект : globalThis- благодаря этой записи я получу из терминала также Глобал объект , а из интернет консоли window !
window.console.log(10) -я могу получать доступ к свойствам глобального объекта window .
Либо просто console.log (10) веб-браузер будет понимать , что я пытаюсь получить доступ к одному из свойств глобального объект window !
Методы
const myCity = {
city: ‘New York’
cityGreeting:function () {
console.log ( Greetings!!’)
}
}
myCity.cityGreeting()
Две скобки после функции -это опциональные скобки и между фигурными скобками находится тело функции!
И если у меня есть объект с таким методом , то вызов на нижней строке с опциональными скобками ☝️
Методы свойства объекта , которые содержат функции !
Вообще можно без ключевого слова function , а просто ставь опциональные скобки !
Запомни вызовы функции и свойств !
myCity.city
myCity.city Greeting()
Метод это тоже свойство -просто свойство с функцией это метод!
JSON ?
Java script object notation
{
“userld”:1,
“Id”:1,
“title”:1,
“title”: Test title”,
“status”: {
“completed”:false
}
}
Это формат обмена данными
Между компьютерами в интернете!
Обычно когда я загружаю любую веб-страницу , эта страница обращается к другим серверам, чтобы получить данные и показать их мне на экране !
Картинки или текст , возможно посты человека !
Чтобы передать такие данные с серверов -используется этот формат !
Двойные кавычки , т.к это формат записи JSON !
Тут вложенный объект !
Передача данных в JSON?
Как происходит ?
Как можно конвертировать в JAVASCRIPT ? Или наоборот ?
{“userId”:1, “id”: 1, “title”: “Test title”, “status”: {“completed”: false}}
JSON -передается в виде строки
Это метод
JSON.parse()
То есть , если я получил код закодированный по методу JSON , я могу передать его как аргумент в вызове метода JSON.parse() и в результате получу JAVASCRIPT объект !
Обратная функция :
JSON.stringify() эта функция способна перевести с JavaScript формат на JSON !
Вызов и конвертация объекта из формата JAVASCRIPT в формат JSON и обратно !
const post = {
title: ‘My post’,
likesQty: 5
}
undefined -это будет
post
title: ‘My post’, likesQty: 5}
JSON-просто вызов данного объект
JSON.stringify(post) -это уже конвертация с языка Java на формат JSON
{ “title”:”My post”,”likesQty”}’
- А это уже что вышло !
Обратная конвертация
const postStringified=JSON.stringify(post)-данная строка -это присвоение название объекту, чтобы дальше его конвертировать !
Будет undefined
JSON.parse(postStringified)-и дальше все вернется в JavaScript формат =>
{title: ‘My post’, likesQty: 5}
likesQty:5
title : “My post”
Мутация в JAVASCRIPT
const a=10
let b=a
b=30
console.log (a) //10
console.log(b)//30
Происходит копирование значения (а) в b
Я ввел в консоли проверку по console.log (b) и выдало 10 как и в переменой (a) до того как присвоил переменной b=30
Значение ссылочного типа ?
const person= {
name: ‘Bob’,
age:21
person.age=22
person.isAdult=true
console.log ( person.age) //22
console.log(person.IsAdult) //true
Снова изменяем значения свойств и здесь объект мутирует !
Мутация объекта на который ссылается переменная person !
Мутирование копий ?
const person = {
name: ‘Bob’,
age: 25
}
const person2=person
person2.age=26
person2.isAdult = true
console .log(person.age) //26
console.log(person.isAdult)//true
После копирования ссылки
объекта person в переменную person 2 -значения также можно изменять-то есть они перенеслись ! И после изменения значения -даже если эта копия, то значение изменяется и в оригинале как это произошло с age в этом случае и через
console.log( person.age) //26
Будет и в копии и в оригинале !
Copy by reference -копирование по ссылке !
Изменяя копию -также изменяется исходный объект,это надо понимать !
Person2 , это всего лишь ссылка и мы переходим по ссылке и дальше изменяем свойства объекта person!