Nodejs REPL(Read-Eval-Print-Loop)
REPL nedir?
Terminalden interaktif bir şekilde JavaScript çalıştırarak sonuçlarını görmeye yarar. Debug, test ya da bir şeyler denemek için kullanılabilir.
Hızlıca bazı kodları denemek istiyorsanız her defasında npm init
ile bir proje yaratıp, bir index.js üzerinden çalışmaktansa terminalden sadece node
yazarak Repl’e giriş yapmış oluyoruz.
Matematik işlemleri
λ node
> 6 * 2
12
> 2 + 2
4
Değişken tanımları
> var arr = [null, undefined, false]
undefined
> arr
// sonuç:
[ null, undefined, false ]
> arr.forEach(function(val) {
... console.log(val)
... });
// sonuç:
null
undefined
false
REPL özellikleri
_ altçizgi: en son çalıştırdığınız sorguyu işler
// değişkeni tanımladık
width = 3 + 5;
// altçizgi çıktı olarak işlemin sonucunu verdi
_
8
// sadece altçizgi yazarak işmele devam ediyoruz
> _ * 2
16
> a = [1,2,3]
[ 1, 2, 3 ]
> _.length
3
Multiline çalışmak
Yazıma başladığınızda göreceksinizki enter yaptığınızda yazdığınız kodu işleme alacaktır.
console.warn = function( e ) { process.stdout.write( e ) }
[Function]
Eğer yazacağınız fonksiyon fazla satır tutacaksa süslü parantezden sonra enter yaparsanız bir alt satıra geçecektir. Süslü parantezi kapadıktan sonra enter yaparsanız kodu işleme alacaktır.
var chalk = require('chalk');
undefined
console.warn = function( e ) {
...process.stdout.write( chalk.red(e) )
...process.exit(1)
...};
Not: Eğer multiline fonksiyon yazarken hatalı bir işlem yaparsanız kntrl+c
yaparsanız çıkış yapacaktır. .clear
ya da .break
yazarak da çıkış yapabilirsiniz.
REPL komutları
.help
komutları unuttuysanız hızlıca göz atabilirsiniz.
> .help
break Sometimes you get stuck, this gets you out
clear Alias for .break
exit Exit the repl
help Show repl options
load Load JS from a file into the REPL session
save Save all evaluated commands in this REPL session to a file
.break, .clear
Multiline yazımda satırdan çıkmak ve işlemi iptal etmek için kullanılır.
.exit
REPL’den çıkış yapar.
.save main.js
REPL’den girmiş olduğunuz verileri saklamak isterseniz kullanabilirsiniz. main.js kaydedeceğimiz dosyanın ismi. İstediğiniz isimde kaydedebilirsiniz.
.load main.js
Path belirtilerek REPL dosyasını tekrar çağırabilir ve kaldığınız yerden devam edebilirsiniz.
kntrl + c
.break ile aynı işlemi yapar, içinde bulunulan fonksiyondan çıkış yapar.
kntrl + c (iki kere)
REPL’den çıkmaya yarar.
tab
Yazdığınız fonksiyon ve değişkenleri, global fonksiyonları görebilirsiniz. History olarak da tanımlayabiliriz.
tab çıktı örneği
Map Promise
Set Symbol
Uint16Array Uint32Array
Uint8Array Uint8ClampedArray
WeakMap WeakSet
dir a
assert b
buffer child_process
clearImmediate clearInterval
Faydalı şeyler
REPL içindeyken ekranı temizlemek isterseniz kntrl + cmd + L
yaparsanız ekranınız mis gibi olur yazmaya devam edebilirsiniz. clear
komutuyla aynı işe yarar farkı REPL içerisinde clear ya da tanımlı herhangi bir Alias yazarsanız hata alırsınız. Bunun yerine kısayol ile hızlıca temizlik yapabilirsiniz ;)