Uygar Aydin
Uygar Aydin — Full Stack Developer | JavaScript | Vue.js | Django
uygar.dev | Full Stack Developer
JavaScript ● Vue.js ● Django
Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz
Part one of the series can be found here
Before we begin, I suggest reading this series’s first and second parts for better comprehension. Now, let’s get started.
Object TypesUntil now, we have discussed various types, including number, string, boolean, literal, and union types derived from these types. In addition, we can also define an object type and specify that an object created must provide the object structure defined as this type.
Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz.
Part one of the series can be found here
Before starting, if you didn’t read the first part of the series for introduction, I advise you to read it for a better understanding. Then let’s get started.
Literal Types (Unit Types)First, let’s define what a literal type is. Literal means mold, immutable, and complete, but literal types are subtypes obtained by limiting collective types such as number, string, and boolean.
Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz.
In this article, I will talk about hoisting, one of the most confusing concepts in Js. Hoisting puts declarations at the beginning of the code when the Engine runs our Js code. Two essential elements that affect the hosting behavior are the type of value and how it is defined.
Hoisting in VariablesFirst, let’s talk about the mechanics of variable definition.
Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz.
When we execute a JS code we have written, every variable we declare has a value in the javascript value universe, whether assigned a value or not. These values are “uygar”, 46, true, “saygin”, undefined, null, { name: ‘saygin’, field: ‘Physical Education’ }, (a,b) => a-b… and all possible values. When all these possible values are grouped according to their common properties, each decomposed group becomes a set containing its possible values.
Codebase büyüdüğünde ve kod yapısı derinleştiğinde .ts dosyalarında yaptığımız import’ların relative path’leri uzamaya başlar.
import { MicrosoftRightAdapter } from "../../../../../adapters/right/infrastructure/api/microsoft/right.adapter.microsoft"; Bu durum kod okunabilirliğini zorlaştırmanın yanında kodu dosya sistemi yapısına bağlı hale getirir. Ayrıca relative path’ler dosya sistemi üzerinden arama yapılmasına sebep olduğu için büyük code base’lerde performans sorunu yaratabilir.
Relative path yerine path alias kullandığımızda import’umuz aşağıdaki şekilde olacaktır.
import { MicrosoftRightAdapter } from "@/adapters/right/infrastructure/api/microsoft/right.adapter.microsoft"; Hem typescript’te hem de /dist klasöründe bulunan compile edilmiş js dosyalarındaki @ ile başlayan path’lerin çözümlenebilmesi için ufak bir iki işlem yapmamız yeterli olacak.
Javascript, çoğunlukla adı karıştırılan bir programlama dili. Java ile bağının olup olmadığı genelde akıllara gelen bir soru. Ayrıca bir de ECMAScript var. Şimdi gelin bu kavramlara bir açıklık getirelim.
Brendan Eic bu dili ilk tasarladığında kod adı Mocha’ydı. Sonrasında dil Netscape markasına dahil olarak LiveScript adını aldı. Resmi olarak açıklandığında ise JavaScript adı tercih edildi. Çünkü dilin hedef kitlesi Java programcılarıydı. Script kelimesi ise bu zamanlarda “lightweight” programları ifade etmesi açısından popülerdi.
Read this post in English here.
Yazdığımız bir JS kodunu çalıştırdığımızda deklare ettiğimiz her değişken değer atanmış olsun veya olmasın javascript değer evreninde bir değere sahip olur. Bu değerler “uygar”, 46, true, “saygin”, undefined, null, { adi: “saygin”, brans: “Beden Eğitimi” }, (a,b) => a-b… gibi olası tüm değerler olabilir. Tüm bu olası değerler ortak özelliklerine göre gruplandığında her ayrışan grup kendi içerisinde, olası değerlerini içeren bir küme halini alır.
Read this post in English here
Bu yazıda Js’de en çok kafa karıştıran konseptlerden biri olan Hoisting kavramından bahsedeceğim. Hoisting Js kodlarımız Engine tarafından çalıştırıldığında deklerasyonların kodun en başına alınması işlemidir. Hosting davranışını etkileyen iki önemli unsur değer (value) türü ve tanımlanma şeklidir.
Değişkenlerde HoistingÖncelikle değişken tanımlama mekaniğinden bahsedelim. Değişken tanımlama iki aşamadan oluşur. Deklerasyon (Declaration) ve Initialization. Bu işlemleri iki ayrı satırda yapabileceğimiz gibi aynı satırda da yapabiliriz. Örneğin: