-------------------- //Number Number.isNaN(24); // False. let number1 = -Infinity; let number2 = Infinity; -------------------- //String String(77).padStart(6,0); // 000077 let str = 'Jaskaran Singh Pannu'; str.repeat(10) console.log("Karan- ".repeat(4)); //Karan- Karan- Karan- Karan- ------------------- ------------------- ------------------- //Object let {name , age} = {name: "Faraji", age: 23}; console.log(name , age); // → Faraji , 23 let obj = { name : 'karan' }; consol.log( 'name' in obj); //true; // Prototype ( Just to check if the certain properties are there. Object.prototype.addNewMethod = function(){ return "Yeah"}; console.log('addNewMethod' in Object); //true; console.log('toString' in Object); //true; //hasOwnProperty ( It will just show the 'obj's properties ( code written ) , Not of it's parent ( Object). let obj = { name : 'karan' }; obj.hasOwnProperty("name"); //true; obj.hasOwnProperty('toString'); //False; //Get // Set //Statics. let obj = { //keyword 'get' get powerOne(){ return "Power 1" }, powerTwo : function(){ return "Power2, Old School." } }; obj.powerOne; // OR. (The Only difference is, If we are using keyword "get", We don't have to use "()" while calling any function. obj.powerTwo(); ------------------------ //Classes class basics{ constructor( name ){ this.name = name; } skillOne(skill){ return this.name + " is " + skill } } class ChildOne extends basics{ constructor( name , age , country ){ super( name ) this.age = age; this.country = country; } skillTwo(){ return " Skill Two here... " } } ---------------------- //instanceof let arr = {}; console.log(arr instanceof Object) // true. let arr2 = [] console.log(arr2 instaceof Object); // true ( Object is main base for all the non-primitives data types ( functions / arrays ). ------------------------ //Object.freeze let object = Object.freeze({value: 5}); object.value = 10; console.log(object.value); // → 5 ----------------------- //HOF //Data. const companies = [ {name: "Company One", category: "Finance", start: 1981, end: 2005}, {name: "Company Two", category: "Retail", start: 1992, end: 2008}, {name: "Company Three", category: "Auto", start: 1999, end: 2007}, {name: "Company Four", category: "Retail", start: 1989, end: 2010}, {name: "Company Five", category: "Technology", start: 2009, end: 2014}, {name: "Company Six", category: "Finance", start: 1987, end: 2010}, {name: "Company Seven", category: "Auto", start: 1986, end: 1996}, {name: "Company Eight", category: "Technology", start: 2011, end: 2016}, {name: "Company Nine", category: "Retail", start: 1981, end: 1989} ]; const ages = [ 10, 0,10, 40, 50 , 88, 9 , 20 ,89, 100 ,6]; //Sort let sort = ages.sort((a , b ) => a - b ); sort = companies.sort( (a , b ) => a.start -b.start ) //Reduce , Suming the Arrays. let totatAges = ages.reduce(( total, item )=> total + item, 0 ); let totalYears = companies.reduce(( total , item ) => total + (item.end - item.start) ,0) let out = nums.reduce(( firstItem , singleItem ) => { let max = firstItem > singleItem ? firstItem : singleItem; return max; }) // There is another method called => "Find" /* "Every" */ ( it return boolean value ) //It will test whether all elements in the array pass the provided function. let output = students.every((item)=>{ return item.grade >= 100; }) /* "SOME" */ ( it return boolean value ) //Similar to every, but returns true if ANY of the array elements pass the test function let output = students.some((item)=>{ return item.grade >= 100; }) //Combined let combined = ages .sort((a,b) => a-b) .filter( item => item <= 10 ) .map( item => item * 1 ) .reduce( (total,item)=> total + item ,0 ); //Destructing //Objects example let {name, age, ...evrythingElse} = { name : 'Jaskaran', age : 34, country : "U.S", cool : true } console.log(name); //Jaskaran console.log(age); //34 console.log(evrythingElse); // { country:'U.S', cool: true } //Array Example let arr = ["Jaskaran","Singh","Pannu"]; let [firstName, ...everythingElse ] = arr; console.log(everythingElse); // ['Singh', 'Pannu'] //Param Destructing let fullName = ({fN, lN }) =>{ return fN + " " + lN } let objName = { fN : "Karan", lN :"Singh" } fullName(objName); /* Async */ //1 way. fetch("https://icanhazdadjoke.com/slack").then((res)=>{ res.json().then((data)=>{ console.log(data) }) }); //2nd Way let link = "https://icanhazdadjoke.com/slack"; let xhr = new XMLHttpRequest(); xhr.open('GET',link, true); xhr.send(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ console.log(xhr.responseText); } }