LearnJsadalah upaya untuk menggambarkan bagian -bagian terbaik dari JavaScript yang cukup sulit dan sulit ditemukan. Perlu dicatat bahwa ini bukan buku/panduan dalam bentuk apa pun, tetapi jemaat praktik terbaik, konstruksi bahasa, dan cuplikan sederhana namun efektif lainnya yang memberi kita esensi tentang bagaimana kita dapat memanfaatkan yang terbaik dari bahasa ini.
1.1 Declarations :
// bad
var arr = new Array ( ) ;
var str = new String ( ) ;
var num = new Number ( ) ;
var boo = new Boolean ( ) ;
var obj = new Object ( ) ;
var reg = new RegExp ( ) ;
var fun = new function ( ) ;
// good
var arr = [ ] ,
str = "" ,
num = 0 ,
boo = false ,
obj = { } ,
reg = / () / ,
fun = function ( ) { } ; Kita harus memahami fakta bahwa dalam JavaScript semuanya adalah objek, jadi untuk anggap jika kita mendeklarasikan string menggunakan objek String dan membandingkannya dengan var a = "" maka hasil perbandingan akan salah. Ini hanya karena jika kita mendeklarasikan string menggunakan cara bad dan membandingkannya dengan string yang dinyatakan menggunakan cara good maka pada dasarnya kita membandingkan string dengan objek (string).
Semicolons :
// Snippet one
var foo = { }
foo . code = "this is javascript empire"
foo . engine = "node 0.12.7"
foo . author = "akhil pandey"
foo . version = 0.1
// Snippet two
var bar = { } ;
bar . name = "akhil pandey" ;
bar . url = "www.akhilhector.com" ;
bar . github = "AkhilHector" ;
bar . age = 20 ;
if ( typeof ( bar ) == typeof ( foo ) ) {
console . log ( "Semicolons donot matter at all" )
}Cuplikan kode satu dan dua adalah sama. Tetapi perbedaan mendasar antara kedua sampel kode adalah bahwa yang satu menggunakan titik koma di semantik lang -uage tetapi sedangkan yang lain tidak. Pada dasarnya kita diajarkan untuk menggunakan titik koma dalam bahasa seperti c, c ++, java dll karena baris kode diakhiri menggunakan ';' Tetapi dalam JavaScript seluruh skenario berbeda. Sama sekali tidak ada perbedaan dalam pelaksanaan kode dengan atau tanpa titik koma.
Metode Bagian dari Objek Peta JavaScript:
2.1 peta .set ():
let m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . set ( "name" , "akhil pandey" ) //Map { { id: 1 } => 'foo', { id: 2 } => 'bar', 'name' => 'akhil pandey' } Peta .set () adalah metode yang digunakan untuk menambah atau memperbarui elemen dengan kunci dan nilai tertentu dalam peta. Di sini argumen pertama adalah kuncinya sementara argumen kedua adalah nilainya. Kunci dapat dari jenis apa pun tetapi lebih baik menggunakan objects sebagai kunci daripada strings karena jika kita menggunakan strings sebagai kunci tidak akan ada perbedaan yang signifikan antara Maps dan Objects .
2.2 peta .get ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . get ( x ) ; //returns 'foo' Peta .get () adalah metode yang digunakan untuk mengambil elemen dari objek Map dengan kunci tertentu. Jadi kunci dilewatkan sebagai argumen dan elemen yang terkait dengan kunci itu dikembalikan. Jika tidak ada kunci yang dilewati sebagai argumen maka metode ini kembali dengan undefined .
2.3 peta .has ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . has ( x ) // returns true
m1 . has ( "akhil" ) // retuqrns false Peta .has () adalah metode yang menunjukkan apakah elemen dengan kunci yang diminta ada di peta atau tidak. Metode hanya membutuhkan satu argumen yang merupakan kunci dan mengembalikan true jika elemen ada atau false jika elemen tidak ada.
2.4 peta .Size:
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . size ; Peta .Size adalah properti aksesor yang mengembalikan jumlah elemen yang ada dalam objek Map . Karena ini adalah properti aksesor, kita tidak boleh memanggil/menggunakan ini seperti metode, jadi jika m1.size() dipanggil maka itu melempar typeError yang mengatakan m1.size bukan fungsi. Oleh karena itu panggilan yang valid ke properti itu adalah m1.size .
2.5 peta .clear ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . has ( x ) ; // returns true
m1 . clear ( ) ;
m1 . has ( x ) ; // returns false Peta .clear () adalah metode yang menghapus/menghapus semua elemen yang ada di objek Map . Metode ini tidak mengambil argumen apa pun tetapi melempar undefined sebagai imbalan.
2.6 peta .delete ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . has ( x ) ; // returns true
m1 . delete ( x ) ; // returns true
m1 . delete ( "something" ) ; // returns false
m1 . has ( x ) ; // returns false Peta .delete () adalah metode yang digunakan untuk menghapus elemen tertentu dari objek Map . Metode ini hanya membutuhkan satu argumen yang merupakan kunci dan jika kunci ada di Map itu menghapus elemen dan mengembalikan yang true , tetapi jika kunci tidak ada di Map maka ia melempar false .
2.7 peta .keys ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . keys ( ) ; // MapIterator { { id: 1 }, { id: 2 } }
let iterator = m1 . keys ( ) ;
console . log ( iterator . next ( ) . value ) ; // { id: 1 }
console . log ( iterator . next ( ) . value ) ; // { id: 2 }
console . log ( iterator . next ( ) . value ) ; // undefined Peta .keys () adalah metode yang digunakan untuk mengembalikan kunci yang ada di objek Map untuk setiap elemen. Metode ini mengembalikan objek peta iterator yang dapat digunakan untuk mengetahui kunci yang ada di Map . Dalam contoh di atas diuraikan bagaimana mengulangi peta .keys () menggunakan next() . Perlu dicatat bahwa ketika next() digunakan pada objek iterator baik value atau done harus digunakan karena penggunaan lurus ke depan dari next() menghasilkan Object . iterator.next().value mengembalikan nilai kunci yang ada dalam objek iterator sementara iterator.next().done mengembalikan boolean mengatakan false jika ada lebih banyak kunci yang ada dalam objek iterator dan true jika tidak ada lagi kunci yang ada.
2.8 peta .values ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . values ( ) ; // MapIterator { 'foo', 'bar' }
let iterator = m1 . values ( ) ;
console . log ( iterator . next ( ) . value ) ; // foo
console . log ( iterator . next ( ) . value ) ; // bar
console . log ( iterator . next ( ) . value ) ; // undefined Peta .values () adalah metode yang digunakan untuk mengembalikan nilai yang ada dalam objek Map untuk setiap elemen. Metode ini mengembalikan objek iterator yang dapat digunakan untuk mengetahui nilai -nilai yang ada di Map . Dalam contoh di atas diuraikan bagaimana mengulangi peta .values () menggunakan next() . Perlu dicatat bahwa ketika next() digunakan pada objek iterator baik value atau done harus digunakan karena penggunaan lurus ke depan dari next() menghasilkan Object . iterator.next().value mengembalikan nilai elemen tertentu yang ada dalam objek iterator sementara iterator.next().done mengembalikan boolean yang mengatakan false jika ada lebih banyak nilai yang ada dalam objek iterator dan true jika tidak ada nilai lagi yang ada.
2.9 peta .entries ():
var m1 = new Map ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // Map { { id: 1 } => 'foo' }
m1 . set ( y , "bar" ) ; // Map { { id: 1 } => 'foo', { id: 2 } => 'bar' }
m1 . entries ( ) ; // MapIterator { [ { id: 1 }, 'foo' ], [ { id: 2 }, 'bar' ] }
let iterator = m1 . values ( ) ;
console . log ( iterator . next ( ) . value ) ; // [ { id: 1 }, 'foo' ]
console . log ( iterator . next ( ) . value ) ; // [ { id: 2 }, 'bar' ]
console . log ( iterator . next ( ) . value ) ; // undefined MAP .EnTries () adalah metode yang digugat untuk mengembalikan kunci dan nilai yang ada dalam objek Map untuk setiap elemen. Metode ini sangat mirip dengan peta .values () untuk fakta bahwa ia mengembalikan objek iterator yang dapat digunakan untuk mengetahui kunci dan nilai yang ada dalam Map . Dalam contoh di atas dipamerkan tentang cara mengulangi peta .entries () menggunakan next() . Kemampuan metode dan cara operasinya sangat mirip dengan peta .values () kecuali untuk fakta bahwa kunci juga dikembalikan bersama dengan nilai -nilai saat kami mengulangi objek Iterator . Mirip dengan objek iterator apa pun setelah mencapai ujung pesawatnya yang akan dilemparkan dan undefined . Juga, perlu dicatat bahwa metode lain yang berlaku untuk objek Iterator dapat digunakan dengan ini karena itu adalah satu dan sama.
MISC[Maps] : Lemah dapat dianggap sebagai peta dengan perbedaan dalam metodologi koleksi sampah yang terjadi di bawah kap mesin. Untuk menempatkannya dalam terminologi yang lebih sederhana dan sederhana harus ada sedikit pelajaran konseptual yang diceritakan untuk membawa perspektif. Dalam JavaScript secara luas semuanya adalah objek karena itu saat Anda membuat satu dan memori dialokasikan untuk hal yang sama dan sampai V8 secara otomatis GC (kependekan dari sampah mengumpulkan) objek tetap sebagai simpul dalam grafik. Perlu dicatat bahwa sampai tidak ada referensi ke objek yang dibuat dalam memori itu tidak akan menjadi GC, jadi semua objek dipegang tightly atau strongly . Jadi pada dasarnya, perbedaan yang dibawa dengan pap lemah adalah bahwa kunci -kunci objek dipegang weakly untuk selanjutnya, jika objek tersebut GC akan oleh V8 atau oleh Anda maka entri akan dihapus dari kelemahan tetapi tidak adalah nilai. Tidak ada perbedaan yang mencolok antara cara peta dan kelemahan beroperasi meskipun, lemah hanya menerima objek sebagai kunci (ketat). Mari kita lihat di bawah ini untuk melihat bagaimana mereka diinisialisasi:
var m1 = new WeakMap ( ) ;
let x = { id : 1 } ,
y = { id : 2 } ;
m1 . set ( x , "foo" ) ; // WeakMap {}
m1 . set ( y , "bar" ) ; // WeakMap {}
m1 . get ( x ) ; // 'foo'
m1 . get ( y ) ; // 'bar'm1. Perlu dicatat bahwa meskipun cara lemah API berinteraksi dengan kita dengan cara yang sama seperti objek peta , ada keterbatasan operasi yang disediakan oleh API lemah . Itu mendukung metode get() , set() , has() dan delete() sampai sekarang.
MISC[Maps] : Penggunaan ... Operator
Metode Bagian dari Objek Set JavaScript:
3.1 Set .Add ():
var s1 = new Set ( )
s1 . add ( 'akhil' )
s1 . add ( 123 )
s1 . add ( 456.789 )
s1 . add ( true )
s1 . add ( { id : 123456 } )
s1 . add ( NaN )
s1 . add ( null )
console . log ( s1 ) // Set { 'akhil', 123, 456.789, true, { id: 123456 }, NaN, null} Set .add () adalah metode mutator untuk menambahkan nilai ke set. Prosedur untuk mencapai ini sangat mudah. Kami memanggil metode add() ke objek Set yang sudah dibuat dan memberikan nilai yang kami inginkan ke dalam set sebagai argumen. Ketika lebih dari satu argumen diteruskan ke metode add() itu hanya mengabaikan argumen yang tersisa dan hanya mempertimbangkan argumen pertama. Perlu dicatat bahwa objek Set tidak memiliki batasan terhadap jenis nilai yang dilewati juga tidak menegakkan batasan apa pun ketika kita membuat heterogen Set . NaN , null juga bisa menjadi bagian dari satu Set . Meskipun, tidak pernah dianjurkan untuk mengisi Set dengan nilai -nilai seperti ini.
3.2 Set .has ():
var s1 = new Set ( )
s1 . add ( 123 )
s1 . add ( 456 )
s1 . add ( 789 )
s1 . add ( "akhil" )
s1 . add ( null )
s1 . has ( 123 ) // returns true
s1 . has ( NaN ) // returns false
s1 . has ( "akhil" ) // returns true
s1 . has ( 456.12 ) // returns false
s1 . has ( 123.0000000000000009123 ) // returns true Set .has () adalah metode yang membantu dalam menentukan apakah suatu elemen ada di Set atau tidak. Metode mengembalikan baik true jika nilainya ada dan false jika nilainya tidak ada. Jika kita mengamati contoh di atas, ada perbedaan kecil antara sifat yang diharapkan dari metode ini dan realitas dasarnya. s1.add(123.0000000000000009123) adalah salah satu contoh yang memberi beberapa cahaya pada persaingan panjang dekade antara nilai JavaScript dan floating point. Ini bisa dihindari hanya dengan menggunakan angka .toprecision (). Juga, dalam JavaScript selalu didorong untuk menangani titik mengambang dengan hati -hati.
3.3 Set .SIZE:
var s1 = new Set ( [ 1 , 23 , 456 , 78910 ] )
var s2 = new Set ( )
s2 . add ( "akhil" )
s2 . add ( "chandu" )
s2 . add ( "adheeth" )
console . log ( s1 . size ) // returns 4
console . log ( s2 . size ) // returns 3 Set .Size bukan metode tetapi merupakan properti dari objek set yang berguna untuk menentukan ukuran Set . Seperti yang dapat Anda amati dari cuplikan kode di atas, itu hanya disebut seperti metode aksesor. Jika kami mencoba memanggil properti menggunakan size() maka ia melempar Set.size typeError .
3.4 Set .Clear ():
var s1 = new Set ( )
s1 . add ( "akhil" )
s1 . add ( "krishna" )
s1 . add ( "pardhu" )
console . log ( s1 . has ( "akhil" ) ) // returns true
console . log ( s1 . has ( "krishna" ) ) // returns true
s1 . clear ( "pardhu" )
s1 . clear ( )
console . log ( s1 . has ( "akhil" ) ) // returns false
console . log ( s1 . has ( "pardhu" ) ) // returns false Set .clear () adalah metode yang menghapus semua elemen yang ada dalam set. Ini menghasilkan pengosongan Set . Jika kita mengamati dalam cuplikan kode di atas ada upaya untuk meneruskan argumen ke metode set .clear () dan terlepas dari argumen apa yang diteruskan ke metode yang hanya mengabaikan dan melakukan operasi clear() pada Set . Juga, tidak ada batasan selama berapa kali operasi dilakukan.
3.5 Set .Delete ():
var s1 = new Set ( )
s1 . add ( "akhil" )
s1 . add ( "dusi" )
s1 . add ( "om" )
s1 . add ( "siddu" )
console . log ( s1 . has ( "akhil" ) )
console . log ( s1 . delete ( "akhil" ) )
console . log ( s1 . delete ( "foo" ) )
console . log ( s1 . has ( "akhil" ) )
for ( let item of s1 ) {
console . log ( item )
} Set .delete () adalah metode yang digunakan untuk menghapus elemen dari set. Metode ini hanya menerima satu argumen dan mengembalikan nilai boolean true atau false . Jika lebih dari satu argumen diteruskan ke delete() maka itu hanya mengabaikan argumen yang tersisa dan mempertimbangkan hanya argumen pertama.
3.6 Set .values ():
var s1 = new Set ( )
var s2 = new Set ( )
s1 . add ( "foo" )
s1 . add ( "bar" )
s1 . add ( "foobar" )
s1 . add ( "barfoo" )
for ( let items of s1 . values ( ) ) {
s2 . add ( items )
}
console . log ( s1 . values ( ) ) // returns SetIterator { 'foo', 'bar', 'foobar', 'barfoo' }
console . log ( s2 . values ( ) ) // returns SetIterator { 'foo', 'bar', 'foobar', 'barfoo' }
console . log ( s1 . has ( "foo" ) ) // returns true
console . log ( s2 . has ( "foo" ) ) // returns true Set .values () adalah metode yang mengembalikan nilai yang ada dalam Set . Jika kita menggunakan s1.values() dalam loop seperti yang ditunjukkan pada cuplikan kode di atas maka semua yang kita dapatkan kembali adalah nilai karena kita mengulangi Set . Juga, ini mungkin terdengar mirip dengan metode dalam Map , tetapi ada perbedaan kecil, yang merupakan peta .values () hanya akan mengembalikan nilai yang ada di Map dan peta .keys () hanya akan mengembalikan kunci yang terkait dengan setiap nilai/elemen. Sekarang, karena suatu Set memiliki kunci dan nilai sebagai elemen yang sama tidak ada banyak perbedaan antara set .values () dan set .keys (). Kami akan dikembalikan dengan objek iterable yang sama tanpa perbedaan sama sekali.
3.7 Set .EnTries ():
var s1 = new Set ( )
s1 . add ( "foo" )
s1 . add ( "goo" )
s1 . add ( "bar" )
s1 . add ( "gar" )
// the keys are
for ( let pairs of s1 . entries ( ) ) {
console . log ( "key[" + pairs [ 0 ] + "] => " + pairs [ 1 ] )
} Set .entries () adalah metode yang mengembalikan array nilai untuk nilai yang ada dalam Set . Kita harus memahami bahwa dalam satu Set kunci dan nilainya tetap sama, jadi ketika kita memanggil set .EnTries () yang kita dapatkan hanyalah array nilai NX2 di mana n [0] dan n [1] berisi nilai yang sama. Kami juga dapat menetapkan s1.entries() ke variabel atau konstan dan dalam hal ini kami akan mendapatkan objek iterator sebagai imbalan yang dapat diputar di sekitar menggunakan next() .
MISC[Sets] : Lemahnya
MISC[Sets] : Penggunaan ... operator
Metode Bagian dari Objek Array JavaScript:
4.1 array .push ():
var arr1 = [ 1 , 2 , 3 , 4 , 5 ] ;
arr1 . push ( 6 ) ;
console . log ( arr1 ) ; // it prints [1,2,3,4,5,6]Array .push () hanyalah fungsi mutator untuk menambahkan elemen ke array. Jadi kita dapat menyebutkan elemen sebagai argumen ke array fungsi.push () dan elemen yang disebutkan akan ditambahkan sebagai elemen terakhir dalam array.
4.2 array .pop ()
var arr1 = [ 1 , 2 , 3 , 4 , 5 ] ;
arr1 . pop ( ) ; // removes last element from the array
arr1 . pop ( 23 ) ; // removes last element despite giving the number as argument
arr1 . pop ( "lol" ) ; // removes last element despite giving the string as argument
console . log ( arr1 ) ; // it prints [1,2,3,4]Array .pop () hanyalah fungsi mutator sederhana untuk menghapus elemen terakhir dari array. Jadi metode ini tidak mengambil argumen, meskipun jika kita mencoba untuk lulus argumen itu tidak akan mengambilnya. Ini hanya melakukan operasi dasar untuk menghapus elemen terakhir dari array.
4.3 array .indexof ()
var arr1 = [ "akhil" , "chandu" , "adheeth" , "varma" ] ;
var arr2 = [ "akhil" , "chandu" , "adheeth" , "varma" , "akhil" , "shankar" , "akhil" ] ;
arr1 . indexOf ( "akhil" ) ; // returns 0 since akhil is present at index 0
arr1 . indexOf ( "adheeth" ) ; // returns 2 since adheeth is present at index 2
arr2 . indexOf ( "akhil" ) ; // returns 0 because it is the first occurrence of akhilArray .indexOf () adalah fungsi aksesor yang dapat digunakan untuk menemukan indeks elemen tertentu dalam suatu array. Argumen yang akan diteruskan ke ini adalah nilai elemen dalam array. Juga, perlu dicatat bahwa ketika ada beberapa kejadian dari elemen yang sama dalam data maka kemunculan pertama elemen dalam array ditampilkan.
4.4 Array .LastIndexOf ()
var arr1 = [ "akhil" , "chandu" , "adheeth" , "varma" , "akhil" , "shankar" , "akhil" ] ;
arr1 . lastIndexOf ( "akhil" ) ; // returns 6 since akhil last occurred at index 6
arr1 . lastIndexOf ( "adheeth" ) ; // returns 2 since adheeth last occurred at index 2 Array .lastIndexOf () adalah fungsi aksesor, sangat mirip dalam perilaku dengan fungsi indexOf . Meskipun, perbedaannya adalah lastIndexOf mengembalikan indeks kejadian terakhir elemen dalam array.
4.5 array .concat ()
var arr1 = [ "akhil" , "chandu" ] ;
var arr2 = [ "adheeth" , "varma" , "kp" ]
var arr3 = [ ]
arr1 . concat ( arr2 ) ; // returns [ 'akhil', 'chandu', 'adheeth', 'varma', 'kp' ]
arr2 . concat ( arr1 ) ; // returns [ 'adheeth', 'varma', 'kp', 'akhil', 'chandu' ]
arr3 = arr1 . concat ( arr2 )
console . log ( arr3 ) // returns [ 'akhil', 'chandu', 'adheeth', 'varma', 'kp' ] Array .concat () adalah fungsi aksesor yang digunakan untuk membuat array baru dari array yang ada. Dibutuhkan array sebagai argumen dan setelah fungsi dieksekusi array dalam argumen akan digabungkan ke array yang memanggil concat() .
4.6 array .splice ():
// case 1 :
var arr1 = [ 1 , 2 , 3 , 4 , 5 ] ;
nums = [ 6 , 7 , 8 , 9 , 10 ]
arr1 . splice ( 5 , 0 , nums )
console . log ( arr1 ) ; // it prints [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]
// case 2 :
var arr2 = [ 'one' ] ;
arr2 . splice ( 1 , 0 , 'two' , 'three' , 'four' , 'five' ) ;
console . log ( arr2 ) ; // it prints ['one', 'two', 'three', 'four', 'five']
// case 3 :
var arr3 = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] ;
arr3 . splice ( 5 , 5 ) ;
console . log ( arr3 ) ; // it prints [1, 2, 3, 4, 5]Array .splice () memiliki beragam operasi yang dapat dilakukan. Jika kami mengamati kasus 1 kami menambahkan elemen ke array ARR1 dari indeks kelima. Juga jika kita mengamati dalam kasus 2, kita dapat melihat bahwa tanpa menetapkan variabel elemen apa yang akan ditambahkan dilewatkan sebagai argumen kontinu. Perlu dicatat bahwa sambungan tidak hanya dapat melakukan tindakan menambahkan elemen tetapi juga melakukan tindakan menghilangkan elemen. Dalam fungsi splice (), jika kita memilih nilai argumen kedua menjadi '0' maka elemen hanya akan ditambahkan dari indeks yang ditentukan, meskipun jika nilainya tidak '0' maka angka yang ditentukan akan menjadi jumlah elemen yang akan dihapus.
4.7 array .shift ():
var arr1 = [ 1 , 2 , 3 , 4 , 5 , "akhil" , "chandu" , "varma" , "kp" , "adheeth" ] ;
arr1 . shift ( ) ;
arr1 . shift ( 123 ) ;
arr1 . shift ( "lolagain" ) ;
console . log ( arr1 ) ; // it prints [4,5,6,"akhil","chandu","varma","kp","adheeth"]Array .shift () tidak berbeda dari metode yang disebutkan di atas.pop (), meskipun perbedaan utama datang mengenai indeks elemen yang harus dihapus. Ini menghilangkan elemen pertama dari array. Mirip dengan array.pop () Metode ini juga tidak menarik argumen dan meskipun argumen disahkan, ia terus melakukan operasinya.
4.8 Array .unshift ():
var arr1 = [ 1 , 2 , 3 , 4 , 5 ] ;
str = "akhil pandey" ;
arr1 . unshift ( str ) ;
console . log ( arr1 ) ; // it prints ["akhil pandey", 1, 2, 3, 4, 5];Array .unshift () termasuk dalam kategori yang sama dengan array.push (), karena keduanya digunakan sebagai fungsi mutator untuk menambahkan elemen ke dalam array. Satu -satunya perbedaan antara kedua metode ini adalah bahwa jika kita meneruskan argumen ke array.unshift () maka elemen akan ditambahkan sebagai elemen pertama dari array. Jika kita mengamati cuplikan di atas, kita dapat melihat bahwa indeks elemen '1' digeser ke tempat berikutnya dan "Akhil Pandey" ditambahkan sebagai elemen pertama dari array. Jadi tidak seperti array.push () metode ini tidak boleh disalahpahami hanya untuk menambahkan elemen karena menambahkan elemen pada awal array.
4.9 array .reverse ():
var arr1 = [ 1 , 'akhil' , 'varma' , 'chandu' , 'adheeth' ] ;
arr1 . reverse ( ) ;
console . log ( arr1 ) ; // it prints ['adheeth', 'chandu', 'varma', 'akhil', 1]Array .reverse () hanyalah fungsi mutator yang digunakan untuk membalikkan urutan elemen dalam array.
4.10 array .sort ():
var arr1 = [ 'varma' , 'chandu' , 'akhil' , 'adheeth' ] ;
var arr2 = [ 5 , 6 , 2 , 9 , 23 ] ;
arr1 . sort ( ) ;
arr2 . sort ( ) ;
console . log ( arr1 ) ; // it prints ['adheeth', 'akhil', 'chandu', 'varma']
console . log ( arr2 ) ; // it prints [2, 5, 6, 9, 23]Array .sort () juga merupakan fungsi mutator lain yang digunakan untuk menempatkan elemen pada rangka. Baik string dan angka dapat diurutkan menggunakan metode array.sort (). Penyortiran terjadi dalam urutan naik, jadi jika string atau karakter adalah elemen maka tergantung pada skala abjad, penyortiran berlangsung.
4.11 array .map ():
function add ( arr ) {
return arr = "My name is " + arr ;
}
var arr1 = [ "akhil" , "varma" , "chandu" , "adheeth" , "kp" ] ;
var combine = arr1 . map ( add ) ;
console . log ( combine ) ;
/* it prints
[ 'My name is akhil',
'My name is varma',
'My name is chandu',
'My name is adheeth',
'My name is kp' ]
*/Array .map () adalah metode yang lebih seperti fungsi iterator, tetapi perbedaan mendasar antara ini dan array.foreach () adalah array.map () mengembalikan array baru dengan hasilnya, sedangkan array.foreach () tidak mengembalikan array baru dengan hasil fungsi.
Catatan: array.map () adalah metode yang sangat kuat dan dapat diterapkan pada aplikasi yang beragam. Meskipun karena metode ini mengulangi setiap elemen menggunakan array.map () harus dilihat dengan cermat dan tidak boleh digunakan jika tujuannya berulang pada beberapa elemen.
4.14 array .reduce ():
function combine ( prev , curr ) {
return prev + curr ;
}
var arr1 = [ 1 , 2 , 3 , 4 , 5 ] ;
var arr2 = [ "one " , "two " , "three " , "four " , "five " ] ;
var numsum = arr1 . reduce ( combine ) ;
var worsum = arr2 . reduce ( combine ) ;
console . log ( numsum ) ; // it prints 15
console . log ( worsum ) ; // it prints "one two three four five "Array .reduce () adalah metode yang dapat digunakan dengan array dengan mengambil fungsi sebagai argumen, sehingga membuat fungsi untuk mengulangi elemen array. Array.reduce () mengulangi elemen array dan dengan demikian setelah mencapai akhir array menghasilkan nilai tunggal.
Catatan: array.reduceright () lebih mirip dengan array.reduce (), tetapi ia berulang di atas elemen array dari elemen paling kanan ke elemen paling kiri, alih -alih berjalan dengan cara yang biasa.
TIPS[Arrays] :
MISC[Arrays] :
Memanipulasi objek array dengan menulis metode Anda sendiri :
var boo = [ ]
Array . prototype . foo = function ( ) {
console . log ( "We write our method inside this block" )
}
boo . foo ( ) // returns whatever is included inside the above mentioned code blockMenambahkan metode ke array. Prototipe pada dasarnya berarti bahwa kami menambahkan metode ke objek array global. Jadi array.prototype sebenarnya akan berarti bahwa menambahkan prototipe baru ke objek array yang ada. Jadi analogi yang lebih baik dapat dijelaskan dengan cuplikan kode di bawah ini.
Array . prototype . union = function ( bar ) {
var l = this . length ;
var n = bar . length ;
for ( i = 0 ; i < n ; ++ i ) {
this [ l ] = bar [ i ] ;
l ++ ;
}
console . log ( this ) ;
}
var a = [ "one" , "two" ] ;
var b = [ "three" , "four" , "five" , "six" , "seven" ] ;
var c = [ 1 , 2 ] ;
var d = [ 3 , 4 , 5 , 6 , 7 ] ;
a . union ( b ) ;
c . union ( d ) ;Mengamati prototipe array di atas jika kita dapat dengan hati -hati mengamati itu tidak lain adalah replika yang berfungsi tentang bagaimana array array array.prototype.concat () berfungsi. Jadi dalam metode concat () Array lain disahkan sebagai argumen untuk metode dan array primer Concat dan memperluas array.
Hal -hal yang harus dicari dalam contoh di atas adalah bagaimana metode khusus dapat ditulis agar sesuai dengan tujuan spesifik untuk tidak hanya prototipe array tetapi juga semua objek yang dikenali Javscript seperti string, angka, regexp atau objek itu sendiri.
Array asosiatif :
Lebih disukai ini adalah bagian bahasa yang bagus meskipun ini telah menjadi bagian integral dari banyak bahasa pemrograman seperti PHP dan Python, ada sedikit perubahan pada apa yang ditawarkannya dalam bahasa pemrograman lain untuk ini.
[Catatan]: Dalam Python tidak disebut atau disebut sebagai array asosiatif tetapi dilengkapi dengan kamus nama.
var a = [ ] ;
var b = [ ] ;
a [ "one" ] = "boo this is my first item" ;
a [ "two" ] = "foo this is my second item" ;
a [ "three" ] = "alas this is final item" ;
b [ 0 ] = "oh not again the first item" ;
b [ 1 ] = "cant help with the second item" ;
b [ 3 ] = "finally got rid with the third item" ;
console . log ( a ) ; // would display the contents of the array 'a'
console . log ( b ) ; // would display the contents of the array 'b'
var len1 = a . length ;
var len2 = b . length ;
var len3 = Object . keys ( a ) . length ;
console . log ( len1 ) ; // would display undefined
console . log ( len2 ) ; // would display 3
console . log ( len3 ) ; // would display 3Cuplikan di atas adalah implementasi kasus klasik array dengan indeks bernama atau array asosiatif. Implementasi dapat dilakukan seperti yang disebutkan di atas dan hampir semua oping array kecuali beberapa dapat dilakukan dengan sangat lancar dengan indeks yang disebutkan. Masalahnya muncul ketika array dengan indeks bernama diminta panjangnya. Ketika metode 'array.prototype.length ()' dirujuk, ia hanya mengembalikan panjang array yang memiliki indeks numberD, jika kita menggunakan indeks bernama maka itu tidak baik karena indeksnya adalah string tetapi bukan lagi angka.
Dalam kasus seperti itu jika kita perlu mengembalikan panjang array yang diindeks yang disebutkan kemudian objek.keys (arrayname) .length akan memberikan panjang array. Hal yang sama dijelaskan dengan mengambil tiga variabel 'len1', 'len2', 'len3' di mana keduanya 'len1', len3 'menyimpan panjang len1' len1.
Metode yang merupakan bagian dari objek string JavaScript:
5.1 string .charat ():
var str1 = "akhil" ;
str1 . charAt ( - 1 ) ; // returns '' or empty string
str1 . charAt ( 3 ) ; // returns 'i' as it is located at position 3
str1 . charAt ( 7 ) ; // returns '' or empty string String .charat () adalah metode yang dapat digunakan untuk menentukan karakter yang ada pada indeks tertentu dari string yang diberikan. Fungsi hanya membutuhkan satu argumen dan mengembalikan karakter sebagai output. Perlu dicatat bahwa ketika indeks diberikan sebagai input jika lebih dari atau lebih kecil dari panjang string maka fungsi hanya mengembalikan '' atau string kosong sebagai output.
5.2 String .concat ():
var str1 = "akhil" ;
var str2 = "pandey" ;
str1 . concat ( str2 ) ; // returns the string 'akhilpandey'
str1 . concat ( 1234 ) ; // returns the string 'akhil1234'
str1 . concat ( true ) ; // returns the string 'akhiltrue'
str1 . concat ( null ) ; // returns the string 'akhilnull'
str1 . concat ( undefined ) ; // returns the string 'akhilundefined'
str1 . concat ( [ 1 , 2 , 3 , 4 , 5 ] ) ; // returns the string 'akhil1,2,3,4,5'
str1 . concat ( " " , 12 , 34 , 56 , 78 ) ; // returns the string 'akhil 12345678'
str1 . concat ( { a : "123" , b : "456" } ) ; // returns the string 'akhil[object Object]' String .concat () adalah metode yang digunakan untuk menggabungkan dua atau lebih string untuk mengembalikan string baru. Pada dasarnya metode ini digunakan untuk operasi string, tetapi jika string biasanya digabungkan dengan jenis lain maka hasilnya akan menjadi string. Jika kita mengamati contoh di atas kita melihat str1.concat(true) jadi di sini string yang dihasilkan adalah akhiltrue sebagai string .concat () menggabungkan nilai kedua argumen dan menghasilkan string yang digabungkan sebagai hasil akhir. Sekarang bahkan ada kasus khusus untuk dianggap, jika suatu string dicoba untuk menggabungkan dengan nilai -nilai palsu maka hasilnya akan menjadi kombinasi dari nilai string dan falsy.
5.3 String .IndexOf ():
5.4 string .lastIndexOf ():
5.5 string .link ():
5.6 String .search ():
5.4 String .slice ():
TIPS[Strings]:
String.slice () : Metode string.slice () pada dasarnya mengekstraksi bagian dari string dan mengembalikan string baru yang diiris. Notasi umum untuk menggunakan Metode String.slice adalah String.slice (POS1, POS2) di mana di POS1 adalah posisi indeks awal dan POS2 adalah posisi indeks akhir. Titik yang perlu dicatat di sini adalah jika kita menggunakan metode string.slice () dengan melewati parameter negatif maka akhirnya menghitung dan mengekstraksi string dari ujung ke awal. Dan jika kita tidak lulus parameter kedua, metode mengekstrak sisa string.
String.substring () : Metode string.slice () dan string.substring () termasuk dalam kategori metode yang sama yang dapat digunakan untuk mengekstraksi bagian atau bagian string dari string sumber. Perbedaan dalam keduanya adalah bahwa kita tidak dapat menggunakan indeks negatif saat menggunakan Method String.substring (). Misalnya jika kita meneruskan indeks negatif ke metode seperti string.substring (-7, -1) maka itu pada dasarnya tidak mengeluarkan kesalahan apa pun yang menunjukkan kesalahan yang dibuat untuk menggunakan indeks negatif tetapi menampilkan string secara keseluruhan
Dalam JavaScript:
| Tipe | Bisa menjadi benda | Selalu menjadi benda |
|---|---|---|
| Booleans | ✔ | |
| Angka | ✔ | |
| String | ✔ | |
| Tanggal | ✔ | |
| Matematika | ✔ | |
| Ekspresi reguler | ✔ | |
| Array | ✔ | |
| Fungsi | ✔ |
Jadi pada dasarnya kecuali nilai primitif semua adalah objek dalam javascript
6.1 Objects can be created using three methods :
// creating an oject using an Object literal
var staff = {
name : "somename" ,
branch : "somebranch" ,
salary : "somesalary" ,
age : 20
} ; // creating an object using new keyword
var admin = new Object ( ) ;
admin . name = "somename" ;
admin . department = "somedept" ;
admin . userid = 123 ;
admin . age = 20 ; // creating an object using the object constructor
function student ( name , github_nick , url , age ) {
this . name = name ;
this . github = "https://github.com/" + github_nick ;
this . url = url ;
this . age = age ;
} 6.2 Using the constructor for the above defined Object :
var akhil = new student ( "Akhil Pandey" , "AkhilHector" , "https://www.akhilhector.com" , "20" ) ; 6.3 Accessing object methods :
console . log ( akhil . github ) ;
console . log ( akhil . url ) ; 6.4 Using the prototype property :
student . prototype . show = function ( ) {
return this . name + " " + this . github + " " + this . age ;
} 6.5 Adding methods to the prototype :
function student ( name , github_nick , url , age ) {
this . name = name ;
this . github = "https://github.com/" + github_nick ;
this . url = url ;
this . age = age ;
this . show = function ( ) {
return this . name + " " + this . github + " " + this . age ;
}
} NOTE : Objek JavascTipt dapat berubah yang berarti bahwa mereka direferensikan oleh alamat dan bukan nilai. Misalnya jika 'master' adalah objek dan 'master-backup' juga merupakan objek lain maka jika kita lulus objek maka mengubah seseorang mungkin mengakibatkan mengubah objek lain juga.
{
var master = { foo : "foo" } ;
var master - backup = master ;
master . backup . bar = "bar" ; // this changes master.bar and master-backup.bar
}
Object . access . property = {
"Option1" : "we can use objectName.propertyName" ,
"Option2" : "Either we can write objectName[propertyName]"
} Penutupan fungsi dalam JavaScript adalah semua tentang bagaimana variabel diperlakukan dan dirujuk dalam ruang lingkup lokal atau global. Dalam variabel JS dapat diberikan:
Tidak ada konsep inbuilt untuk sesuatu yang disebut variabel pribadi, jadi ketika ada persyaratan untuk skenario penutupan seperti itu ditulis dalam JS untuk membuat ruang untuk variabel yang bersifat pribadi dalam ruang lingkup.
Currying adalah proses membangun fungsi dengan mengambil beberapa argumen dan menerapkannya sebagian melalui serangkaian fungsi. Jadi untuk lebih spesifik, Anda dapat memecah fungsi yang diberikan yang mengambil banyak argumen ke dalam serangkaian fungsi yang mengambil bagian dari argumen.
Mari kita ambil contoh umum:
Panggilan ekor tidak lain adalah mengganti konsep fungsi rekursif dengan loop. Di satu sisi ini tidak hanya dapat menghemat waktu tetapi juga menghemat ruang yaitu kompleksitas waktu yang lebih baik dan kompleksitas ruang.
// snippet one
function f ( n ) {
if ( n == 0 ) {
return 1 ;
}
else {
return n * f ( n - 1 ) ;
}
}
// snippet two
function f1 ( n ) {
function r ( n , m ) {
if ( n == 0 ) {
return m ;
}
else {
return r ( n - 1 , n * m ) ;
}
}
return r ( n , 1 ) ;
}Mengamati kedua algoritma di atas yang ditulis untuk faktorial kita dapat memahami bahwa f () adalah metode rekursif tradisional yang digunakan untuk menemukan faktorial, tetapi f1 () adalah algoritma yang dioptimalkan panggilan ekor yang lebih baik dan cepat.
Meskipun upaya terbaik telah dilakukan untuk memastikan seluruh dokumentasi bebas kesalahan, mungkin ada contoh kecil di mana kesalahan mungkin terjadi. Dalam kasus seperti itu tolong angkat masalah dan bantu saya membuat lembar cheat ini lebih baik.