JavaScript Notları

Yeni başlayanlar ve bilgilerini tazelemek isteyenler için JavaScript Notları:
1 — Js nedir ?
Js bir betik (script) dilidir. Web sitelerini daha interaktif yapmak için kullanılır.
2 — Js in özellikleri nelerdir ?
Girdi Onaylama: Js, arka yüz (back-end) operasyonları için, sunucuya veri göndermeden önce, kullanıcı girdisini onaylamaya olanak sağlar.
Tarayıcı kontrolü: Js, pencerenin rengini değiştirme, tema ekleme ve ya tarayıcının durum çubuğundaki yazıyı değiştirme gibi bazı kontrolleri sağlar.
Tarayıcıyı ve işletim sistemini tespit etmek: Platforma bağlı olan operasyonları gerçekleştirmek için kullanıcının tarayıcıyısını ve işletim sistemini tespit eder.
Tarih ve saati algılama: Js farklı zaman dilimlerinde olan sunucu ve kullanıcılar ile çalışabilir.
Dinamik olarak html oluşturma: Js dinamik şekilde html oluşturmamıza olanak sağlar.
3 — Js’in avantajları nelerdir ?
Tarayıcıda daha hızlı çalışması: Js istemci tarafında çalıştığı için hızlıdır. Eğer arka-yüz (back-end) verisinin işlenmesi gerekmiyorsa, Js bir ağ’a (network) bağımlı değildir. İstemci tarafında derlenmesi gerekir ve direk web tarayıcısı tarafından yorumlanır.
Birlikte çalışabilirlik: Herhangi bir uzantı olmadan web sayfalarına eklenebilir. Perl ve PHP gibi diller betik içinde kullanılabilir.
Zengin arayüzler: Js’in; charts, drag ve drop, sliders vb gibi bir sürü kütüphanesi bulunur. Web sitenize çekici bir görünüm sağlar.
Sunucu (server) yükünde azalma: İstemci tarafında bir dil olmasından dolayı web site sunucularının yükünü azaltır ve bir çok operasyon bu şekilde gerçekleştirilebilir.
4 — Js’in dezavantajları nelerdir ?
İstemci (client-side) yönünden güvenlik: Js kullanıcının bilgisayarında kod çalıştırdığı için bazı kötü amaçlı durumlar için kullanılabilir.
Tarayıcı desteği: Js bazı tarayıcılarda farklı şekillerde yorumlanabilir.
5 — Javascript ile ECMAScript arasındaki farklar nelerdir ?
ECMAScript web sayfaları için bir standarttır. Js’ten daha kapsamlı bir dil alanını işaret eder. Javascript, Jscript ve ActionScript gibi diller ECMAScript özelliklerini takip eder.
6 — Javascript’i kim geliştirmiştir ?
JavaScript 1995'te Brendan Eich tarafından Netscape Communications zamanında yaratılmıştır. Java, Scheme ve Self gibi dillerden etkilenmiştir.
7 — Js ‘i bir web sayfasına nasıl ekleyebiliriz ?
<script> tag’ini kullanırız.
<script> tag’ini,
head elemanı
body elemanı ya da
dış bir script dosyası olarak (external script file) kullanabiliriz.
Ör.
<script type=”text/javascript”>
</script>
<script src=”external file URL”>
</script>
8 — Js’i dış dosyalar halinde kullanmanın avantajları nelerdir ?
Html ve Js kodunu ayırmak açısından avantaj sağlar.
Kod karmaşıklığı olmadan geliştiriciler daha kolay çalışabilir.
Git vb gibi modern versiyon kontrol sistemleri ile iyi çalışır.
Her bir dosyanın ayrı geçmişi bulunabilir.
Html daha okunabilir olur.
Ayrılmış js dosyaları tarayıcılar tarafından cache edildiği için sayfa yükleme hızını arttırır.
Bu küçük dosyalar daha küçültülüp okunamaz biçimlere getirilebilir (Google closure ve ya YUI Compressor gibi)
Birçok popüler Js kütüphanesi, içerik sağlama ağlarında (cdn — content delivery network) mevcuttur. Onları URL’yi kullanarak src’de basitçe gösterebiliriz. Bu durum bizi, js dosyasını local dizine kopyalamaktan kurtarır.
RequireJS or CommonJS gibi ileri araçlar kullanarak, betikleri mantık ve modüler biçimde yükleyebiliriz.
9 — Js büyük-küçük harf (case sensitive) duyarlı mıdır ?
Evet, değişkenler, fonksiyonlar ve anahtar kelimeler (Variables, functions, keywords) büyük-küçük harf (case sensitive) duyarlı olmalıdır, yoksa Js tarafından algılanamaz ve hata verir.
Ör.
var pratik;
var praTik;
ikiside farklı değişkenler olarak algılanırlar.
10 — Js’te bir ifadenin sonunda ; kullanmak zorunlu mudur ?
Kullanılmasa dahi geçerli bir ifade olarak sayılır. Ancak kullanılmaması, başka sorunlar doğurabilir.
11 — Js’teki farklı veri yapıları nelerdir ?
Primitive veri tipleri:
Number: Rakamsal değerleri temsil eder. Hem tam sayılar hem de noktalı sayılar için.
String: Karakterlerden oluşan bir dizidir.
Boolean: Doğru ve yanlışı temsil eden değerlerdir. true — false.
Undefined: Tanımlanmamış bir değeri temsil eder. (Represent undefined value)
Null: Boş, anlamsız, sıfırlanmış, anlamlarına gelir. (Represent null)
Primitive olmayan veri tipleri:
Object: Daha kompleks bir veri yapısıdır. (Represent more complex data structure)
Array: Bir grup ve onun elemanlarını temsil eder. (Represent group of elements)
RegExp: Genellikle bazı karakterlerden kaçınmak için kullanılan düzenli ifadelerdir. (Represent regular expression)
12 — Yorum/not nasıl eklenir ?
Kod harici not ve ya yazı eklemek içi kullanılan karakterlerdir.
// Tek satır notlar
/* …. */ ise çoklu satır için kullanılır.
13 — Js motoru nedir ?
Js motoru, Js kodunu çalıştırmak için kullanılan bir programdır.
Her tarayıcı sağlayıcısının kendi versiyonu bulunur.
Google Chrome — Chrome V8
Mozilla — SpiderMonkey
Safari — JavaScriptCore
14 — Bilinen bazı Js web çatıları (framework) nelerdir ?
Angular
React
Vue
Node
Ember
Meteor
Backbone
Aurelia
Polymer
Mithril
15 — Js ‘te değişken nedir ?
Değişken, bir veriyi geçici olarak saklamaya yarar. Bir ismi, değeri ve bellek adresi (memory address) vardır. Kullanmadan önce onu deklare etmeniz (belirtmek) gerekir.
Ör.
var variablename;
var variable1, variable2, variable3;
Bir değerin bir değişkene ataması şu şekilde yapılabilir:
var variablename = value;
16 — “var” nedir ?
var, değişkeni belirten bir ifadedir. İngilizcedeki variable’ın kısasıdır.
var varname1 [= value1] [, varname2 [= value2] … [, varnameN [= valueN]]];
17 — “let” nedir ?
“let” ifadenin belirli bir bloğuna odaklı olarak, limitli bir şekilde değişken belirlememize yarar.
let var1 [= value1] [, var2 [= value2]] [, …, varN [= valueN];
18 — “cons” nedir ?
“cons” ise “let” gibi blok-odaklıdır ancak “cons” değeri, tekrar atama yapılarak değiştirilemez. Sabittir ve tekrar deklare edilemez.
19 — “let” ve “var” arasındaki fark nedir ?
“var” ile belirtilen değişken, fonksiyon içinde her yerde bulunur ve fonksiyonun odağındadır.
“let” ise blok-odaklıdır. Kullanım alanı o blokla sınırlıdır.
20 — “let” ve “const” arasındaki fark nedir ?
“let” bir değişkenin değerini istediğimiz kadar değiştirmemize olanak sağlar.
“const”ta ise değerin atamasını bir kez yaptıktan sonra artık değeri tekrar belirlemek ya da değiştirmek mümkün değildir.
21 — Automatic type conversion nedir ?
Js yanlış bir tarih tipinde çalıştığında o değeri doğru tipe çevirmeye çalışacaktır.
22 — Js’te operatörler ne anlama gelir ?
Js’te operatör, belirli bir operasyonu gerçekleştirmek için kullanılan bir sembol ya da kelimedir. Aritmetik, karşılaştırma, mantık ve koşul operatörleri gibi çeşitleri vardır.
(Arithmetic, Assignment, Comparison, Logical, Conditional Operators)
23 — Js’teki farklı operatörler nelerdir ?
Aritmetik operatörü (arithmetic operator)
Değişkenler ve değerler arası aritmetik işlemler yapmak için kullanılır.
Toplama — Addition (+),
Çıkarma — Subtraction (-),
Çarpma — Multiplication (*),
Bölme — Division (/),
Modülüs — Modulus (%),
Arttırma — Increment (++)
Azaltma — Decrement ( — )
Atama operatörü (assignment operator)
Değişkenlere değer ataması yapmak için kullanılır. (=, +=, -=, *=, /=, %= gibi)
Karşılaştırma operatörü (comparison operator)
Değişkenleri ya da değerleri karşılaştırmak için kullanılır.
Eşittir — Equal to (==),
Eşit değer ve tip — equal value and type (===),
Eşit değil — not equal (!=),
Eşit değil ve aynı tip değil — not equal value or type (!==),
Küçüktür — less than (<),
Büyüktür — greater than (>),
Küçük eşit — less than or equal to (<=),
Büyük eşit — greater than or equal to (>=)
Mantık operatörü (logical operator)
Programın, çoklu koşullar mantığına dayanarak, karar vermesine olanak sağlar.
And (&&), or (||), not (!) gibi.
Koşul operatörü (conditional operator) Değerleri değişkenlere belirli koşullar ile atamaya yarar.
(condition) ? value1: value2 gibi.
24 — Js’te control flow statements ne anlama gelir ?
Kontrol akış ifadelerini kullanarak (control flow statements) Js’te ifadelerinin çalışma sıralamasını değiştirebilirsiniz. Bazıları:
Seçme ifadeleri (Selection statements) :
Selection statements, hangi ifadelerin çalıştırılacağını belirlemek için koşulları kullanır.
( if….else, if ve switch gibi)
Döngüler (Loops) :
Döngüler, istenen koşullar sağlanana kadar, belirli ifadelerin tekrar tekrar çalışmasını sağlar. (while, do…while ve for gibi)
Atlama ifadeleri (Jump statements) :
Jump statements bir döngüyü kırmak ya da ondan çıkmak için kullanılır. (break ve continue gibi)
25 — Break statement nedir ?
Break statement bir döngünün çalışmasını tamamen durdurur.
26 — Continue statement nedir ?
Continue statement ise bir döngü içindeki mevcut yinelemenin (iteration) çalışmasını durdurur ve diğer yinelemeye geçer.
27 — “==” and “===” operatorlerini kullanarak karşılaştırma yapmanın farkı nedir ?
‘==’ operatörü soyut bir eşitliği test eder. Soyut kelimesi burada kavramsal olarak kullanılmıştır. Eşitlik karşılaştırmasını yapmadan önce type dönüşümlerini yapar. Eşit olmaları için tamamen aynı olmaları gerekmez.
(A ve a eşittir)
‘===’ operatörü ise daha katı bir eşitliği test eder. Tip çevrimi yapmaz ve eğer iki değer birebir aynı tipte değilse ‘false’ olarak döner.
(A ve a eşit değildir gibi)
28 — typeof operatörü nedir ?
typeof operatörü, kendi işleminin veri tipini almak için kullanılır. İşlem ‘literal’ (harfi harfine) olabilir ya da değişken, fonksiyon ve ya obje gibi bir veri yapısı olabilir.
Ör:
console.log(typeof somevar);
typeof operatörü, ‘string’ şeklinde aşağıdaki değerleri döner:
object, Boolean, function, number, string and undefined.
29 — variable hoisting nedir ?
Js’te, ‘var’ ile yapılan tüm değişken deklarasyonları, eğer bir fonksiyonun içinde yapılmış ise, nerede olursa olsun, kendi fonksiyonel/lokal odaklarına yükseltilir. Eğer fonksiyonun dışında deklare edilmişse kendi global odağının başına yükseltilir. Bu yükseltme işine ‘hoisting’ denir.
Örnek:
bla = 2;
var bla;
// aşağıdaki şekilde algılanır:
var bla;
bla = 2;
30 — undefined ile null arasındaki fark nedir ?
‘undefined’ bir değişkenin belirlendiği ancak ona atanan bir değer olmadığı anlamına gelir.
‘null’ ise ataması yapılmış bir değerdir.
aynı zamanda ‘undefined’ bir ‘type’ iken ‘null’ bir objedir.
Ataması yapılmamış olan değişkenler, Js tarafından default olarak ‘undefined’ bir değer olarak kabul edilir ve ya ‘undefined’, kod ile bir değişkene atanabilir.
Js, ‘null’ için asla bir değer vermez. Bu programlama ile yapılmalıdır.
31 — null == undefined ifadesinin çıktısı nasıl olur ?
null == undefined, true olarak döner.
ancak, null === undefined, ise false olarak döner.
32 — Js’te array nasıl oluşturulur ?
var a = [];
var b = [1, 2, 3];
33 — Kaçınma karakterleri nelerdir ?
Kaçınma karakterleri, (sola yatık çizgi — backslash-\) & işareti, ‘ tek tırnak, ‘’ çift tırnak, ‘ üstten virgül gibi karakterlerden önce kullanılır.
(ampersand, single quotes, double quotes and apostrophes)
Ör:
console.log(‘I\’m Groot’); Doğru syntax.
console.log(‘I’m Groot’); Syntax error’u verir.
34 — Üç boyutlu bir array nasıl oluşturulur ?
var threedimentionalarray = [[[]]];
35 — Js’te variable naming conventions ne anlama gelir ?
Js’te reserved anahtar kelimelerini, bir değişken adı olarak kullanamayız.
Js değişken adları bir sayı ile başlayamaz. (0–9)
Js değişken adları bir harf ya da alt karakter ile başlayabilir.
Js değişken adları büyük-küçük harfe duyarlıdır (case sensitive)
36 — Global değişken kullanmayı neden tercih etmemeliyiz ?
Global değişkenler bir çok geliştirici tarafından oluşturulabileceği için çoklu değişkenler oluşabilmekte ve değişkenlerin üzerine tekrar yazılabilmektedir.
Devamı gelecek…