Skip to content

Commit 588d343

Browse files
committed
add JS DS and .gitignore
1 parent b1f9155 commit 588d343

File tree

2 files changed

+129
-1
lines changed

2 files changed

+129
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

Basics/JS_Basics.js

Lines changed: 128 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ const func4 = function(p1, p2){
257257

258258
func4(1,2,3,4);
259259

260-
// restArgs
260+
// restArgs using '...' (Spread Operator)
261261

262262
const func5 = function(para1, para2, ...restArgs){
263263
console.log(`para1 = ${para1}, para2 = ${para2}, rest = ${restArgs}`);
@@ -276,3 +276,130 @@ while arguments object contains all the arguments passed to the function.
276276
*/
277277

278278

279+
// spread operator in objects
280+
281+
let obj5 = {...obj2, blood_group:'O+'};
282+
obj5.name = 'Paul';
283+
console.log(obj5);
284+
285+
// Short Circuiting
286+
287+
true && 'Hello' && console.log('Bye');
288+
''|| 0 || false || console.log('Finally');
289+
290+
// Nullish Coalescing Operator
291+
let var1 = null ?? undefined ?? 0;
292+
console.log(var1);
293+
294+
// Optional Chaining
295+
// Access values without checking if the parent object exists.
296+
// Instead of returning error, it will return null or undefined.
297+
let dog = {
298+
german_shepard:{
299+
color: 'brown-black',
300+
purpose: 'protection'
301+
},
302+
bulldog:{
303+
color: 'skin',
304+
purpose: 'protection'
305+
},
306+
husky:{
307+
color: 'grey',
308+
purpose: 'protection'
309+
},
310+
retriever: {
311+
color: 'golden',
312+
purpose: 'showoff'
313+
}
314+
}
315+
316+
console.log(dog.shibu?.color ?? 'breed not found');
317+
console.log(dog.husky?.purpose);
318+
console.log(dog?.bulldog.color);
319+
320+
321+
// for...of loop - Only works on iterables, for eg, like array, strings etc
322+
// and not on objects
323+
324+
let arr1 = ['Hello', 'There', 1, 0, 0];
325+
for(let i of arr1){
326+
console.log(i);
327+
}
328+
329+
// If you want index as well
330+
for (let [j,k] of arr1.entries()){
331+
console.log(j,k);
332+
}
333+
334+
// Object keys function
335+
for (let var2 of Object.keys(dog)){
336+
console.log(var2);
337+
}
338+
console.log(Object.keys(dog)); // It gives you an array
339+
340+
// Object values function
341+
for (let var2 of Object.values(dog)){
342+
console.log(var2);
343+
}
344+
console.log(Object.values(dog)); // It gives you an array
345+
346+
// Object Entries function
347+
// Earlier we have used entries method on array but it does not work
348+
// for object. For object we used Entries function
349+
console.log(Object.entries(dog));
350+
for (let [t1,t2] of Object.entries(dog)){
351+
console.log(t1, t2);
352+
}
353+
354+
355+
// Sets
356+
let s1 = new Set();
357+
console.log(s1);
358+
let s2 = new Set([45, 23, 11, 45, 23, 78, 54, 23]);
359+
console.log(s2);
360+
s1.add('a').add('b').add('c').add('d').add('a').add('c');
361+
console.log(s1);
362+
s2.delete(78);
363+
console.log(s2);
364+
console.log(s1.has('e'));
365+
console.log(s2.size);
366+
// Set has keys() and values(), but both values are identical
367+
console.log(s1.keys());
368+
console.log(s1.values());
369+
for (let [i,j] of s1.entries()){
370+
console.log(i == j);
371+
}
372+
373+
// Map
374+
let m1 = new Map([['a', 1],
375+
['b', 2],
376+
['c',3],
377+
['d', 4]]);
378+
let m3 = {
379+
'a': 1,
380+
'b': 2
381+
}
382+
let m2 = new Map();
383+
m2.set('FName', 'John')
384+
.set('LName', 'Wick')
385+
.set('Fav_Pet', 'Dog');
386+
387+
console.log(m1);
388+
console.log(m2);
389+
console.log(m1.size);
390+
console.log(m2.has('FName'));
391+
console.log(m1.get('d'));
392+
for (let i of m2.keys()){
393+
console.log(i);
394+
}
395+
for (let i of m2.values()){
396+
console.log(i);
397+
}
398+
for (let [i,j] of m2.entries()){
399+
console.log(i,j);
400+
}
401+
// Iteration is same as using entries()
402+
for (let [i,j] of m2){
403+
console.log(i,j);
404+
}
405+
console.log(m1['a']); // Random Access is not allowed

0 commit comments

Comments
 (0)