Convert NaN to 0 in JavaScript
n = n || 0;
n = n ? n : 0;
n = +n || 0;
function getNumVal(val) {
if (isNaN(val)) {
return 0;
}
return val;
}
Handling TypeError: Cannot read properties of undefined (reading x)
function myFunc(a) {
if (a !== undefined) {
console.log(a.b);
}
}
var myVar;
myFunc(myVar);
To extract the string containing in the path of the URL for the location
var path = window.location.pathname; // https://vj2tech.hashnode.dev/javascript-utility-for-daily-work
path = path.split('/');
var nameplate = path[1];
console.log(nameplate); // javascript-utility-for-daily-work
Find the number of days between two dates
const dateDiff = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000);
console.log(dateDiff)
Generate a Random Integer within the given range with Math.random function
const randomNumber = (min, max) => Math.floor(Math.random() * (max - min)) + min;
randomNumber(1, 5); // 4
Wait for an element (class or Id) to load in Dom and then trigger the function
@{String} querySelector - Selector of element to wait for loading
@{Integer} timeout - Milliseconds to wait before timing out, or 0 for no timeout
function waitForElementtoLoad(querySelector, timeout){
return new Promise((resolve, reject)=>{
var timer = false;
if(document.querySelectorAll(querySelector).length) return resolve();
const observer = new MutationObserver(()=>{
if(document.querySelectorAll(querySelector).length){
observer.disconnect();
if(timer !== false) clearTimeout(timer);
return resolve();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
if(timeout) timer = setTimeout(()=>{
observer.disconnect();
reject();
}, timeout);
});
}
waitForElementtoLoad("#dropdown-label-1", 4000).then(function(){
alert("element is loaded.. do stuff");
}).catch(()=>{
alert("element did not load in 4 seconds");
});