Herhangi bir programlama dilinin kısaltılmış kodlama teknikleri, daha temiz ve optimize edilmiş kod yazmamıza yardımcı olur ve hedefimize daha az kodlama ile ulaşmamızı sağlar.
1. Değişken Bildirimi (Declaring variables)
1 2 3 4 5 6 7 8 |
// longhand let x; let y = 20; // Shorthand let x, y = 20; |
2. Birden çok değişkene değer atama
destructuring özelliği ile bir satırda birden çok değişkene değer atayabiliriz.
1 2 3 4 5 6 7 8 9 10 11 |
//Longhand let a, b, c; a = 5; b = 8; c = 12; //Shorthand let [a, b, c] = [5, 8, 12]; |
3. Ternary operator
Ternary operator ile 5 satırlık kodu tek satıra düşürebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//Longhand let marks = 26; let result; if(marks >= 30) { result = 'Pass'; } else { result = 'Fail'; } //Shorthand let result = marks >= 30 ? 'Pass' : 'Fail'; |
4. Varsayılan değer atama
Beklenen değerin olmaması durumunda bir değişkene varsayılan bir değer atamak için OR (||) operatörünü kullanabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Longhand let imagePath; let path = getImagePath(); if(path !== null && path !== undefined && path !== '') { imagePath = path; } else { imagePath = 'default.jpg'; } //Shorthand let imagePath = getImagePath() || 'default.jpg'; |
5. AND(&&) operatörü kullanımı
Bir değişkenin true olup olmadığını kontrol ediyorsanız, alternatif olarak AND (&&) operatörünü kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 |
//Longhand if (isLoggedin) { goToHomepage(); } //Shorthand isLoggedin && goToHomepage(); |
6. İki değişkeni değiştirme (Swap two variables)
İki değişkenin değerlerini destructing yardımı ile kolayca değiştirebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
let x = 'Hello', y = 55; //Longhand const temp = x; x = y; y = temp; //Shorthand [x, y] = [y, x]; // Çıktı: // x: 55 // y: Hello |
7. Arrow Function
1 2 3 4 5 6 7 8 9 |
//Longhand function add(num1, num2) { return num1 + num2; } //Shorthand const add = (num1, num2) => num1 + num2; |
8. Template Literals
String değerlerini değişkenlerle birleştirmek için normalde + operatörünü kullanırız. ES6 Template Literals ile bunu daha basit bir şekilde yapabiliriz.
1 2 3 4 5 6 7 |
//Longhand console.log('You got a missed call from ' + number + ' at ' + time); //Shorthand console.log(`You got a missed call from ${number} at ${time}`); |
9. Çok Satırlı Dizeler (Multi-line String)
Çok satırlı dize için normalde + operatörünü yeni satıra geçiş \n operatörü ile birlikte kullanırız. Yeni dize tanımlama backsticks
ile bunu daha kolay bir şekilde yapabiliriz.
1 2 3 4 5 6 7 8 |
//Longhand console.log('JavaScript, often abbreviated as JS, is a\n' + 'programming language that conforms to the \n' + 'ECMAScript specification. JavaScript is high-level,\n' + 'often just-in-time compiled, and multi-paradigm.'); //Shorthand console.log(`JavaScript, often abbreviated as JS, is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm.`); |
10. Çoklu koşul kontrolü (Multiple condition checking)
Çoklu değer eşleştirme için tüm değerleri diziye koyabilir ve indexOf () yöntemini kullanabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//Longhand if (value === 1 || value === 'one' || value === 2 || value === 'two') { // Execute some code } // Shorthand 1 if ([1, 'one', 2, 'two'].indexOf(value) >= 0) { // Execute some code } // Shorthand 2 if ([1, 'one', 2, 'two'].includes(value)) { // Execute some code } |
11. Nesneye değer atama (Object Property Assignment)
Değişken adı ve nesne özellik adı aynıysa, nesne değişkenlerinde hem özellik hem de değer yerine sadece değişken adını belirtebiliriz. JavaScript, nesne özelliğini otomatik olarak değişken adıyla aynı şekilde ayarlayacak ve değeri değişkenin değeri olarak atayacaktır.
1 2 3 4 5 6 7 8 9 10 |
let firstname = 'John'; let lastname = 'Mark'; //Longhand let obj = {firstname: firstname, lastname: lastname}; //Shorthand let obj = {firstname, lastname}; |
12. Dizeleri sayılara dönüştürme
Bir dizeyi sayıya dönüştürmek için parseInt ve parseFloat gibi yöntemler vardır. Bunu, dize değerinin önüne (+) koyarak da yapabiliriz.
1 2 3 4 5 6 7 8 9 |
//Longhand let total = parseInt('453'); let average = parseFloat('42.6'); //Shorthand let total = +'453'; let average = +'42.6'; |
13. Bir dizeyi birkaç kez tekrarlama
Bir dizeyi belirli bir süre boyunca tekrarlamak için bir for döngüsü kullanabilirsiniz. Ancak repeat() yöntemini kullanarak bunu tek bir satırda yapabiliriz.
1 2 3 4 5 6 7 8 9 10 11 |
//Longhand let str = ''; for(let i = 0; i < 5; i ++) { str += 'Hello '; } console.log(str); // Hello Hello Hello Hello Hello // Shorthand 'Hello '.repeat(5); |
14. Üs Alma
Bir sayının üssünü bulmak için Math.pow () yöntemini kullanabiliriz. Bir başka yöntem de çift yıldız operatörünü (**) kullanmak.
1 2 3 4 5 6 7 |
//Longhand const power = Math.pow(4, 3); // 64 // Shorthand const power = 4**3; // 64 |
15. Sayıları aşağıya yuvarlama
Sayıları aşağıya yuvarlamak için Math.floor yöntemini kullanırız. (~~) operatörü ile de aynı işlem yapılabiliyor.
1 2 3 4 5 6 7 |
//Longhand const floor = Math.floor(6.8); // 6 // Shorthand const floor = ~~6.8; // 6 |
Not: Math.floor() yöntemi sayı ne olursa olsun aşağı yuvarlar.
16. Dizideki maksimum ve minimum sayıları bulmak
Dizilerdeki maksimum ve minimum değerleri bulmak için genelde döngü yapabilir ya da Array.reduce () yöntemini kullanabiliriz.
Fakat, Spread operatörünü kullanarak bunu tek bir satırda yapabiliyoruz.
1 2 3 4 5 6 |
// Shorthand const arr = [2, 8, 15, 4]; Math.max(...arr); // 15 Math.min(...arr); // 2 |
17. For loop
JS’de farklı farklı döngü yöntemleri bulunmakta, bir dizide döngü yapmak için genellikle for döngüsünü kullanırız. Diziler arasında yineleme yapmak için for… of döngüsünü de kullanabiliriz. Her değerin dizinine erişmek için ise for… in döngüsünü kullanabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
let arr = [10, 20, 30, 40]; //Longhand for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } //Shorthand //for of loop for (const val of arr) { console.log(val); } //for in loop for (const index in arr) { console.log(arr[index]); } |
Ayrıca for… in döngüsünü kullanarak nesne özelliklerinde döngü yapabiliriz.
1 2 3 4 5 6 7 |
let obj = {x: 20, y: 50}; for (const key in obj) { console.log(obj[key]); } |
18. Dizilerin birleştirilmesi
1 2 3 4 5 6 7 8 9 |
let arr1 = [20, 30]; //Longhand let arr2 = arr1.concat([60, 80]); // [20, 30, 60, 80] //Shorthand let arr2 = [...arr1, 60, 80]; // [20, 30, 60, 80] |
19. Dizeden karakter alma
1 2 3 4 5 6 7 8 9 |
let str = 'jscurious.com'; //Longhand str.charAt(2); // c //Shorthand str[2]; // c |
20. Dinamik nesne
ES6 ile birlikte, daha önce tanımladığımız değişkeni köşeli parantezler içerisine alarak nesne içerisinde dinamik olacak şekilde kullanabiliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
const dynamic = "email"; const user = { name : 'John', lastname : 'Doe', [dynamic] : 'john@example.com', }; console.log(user); // { // name: "John", // lastname: "Doe", // email: "john@example.com" // } |
Bu yazıda olmayan diğer bazı faydalı yöntemlere buradan ulaşabilirsiniz.
Kaynaklar:https://jscurious.com/20-javascript-shorthand-techniques-that-will-save-your-time/