0% found this document useful (0 votes)
58 views

JavaScript For Automation CheatSheet 1705237148

This document provides a cheat sheet of JavaScript techniques for automation, including DOM manipulation, event handling, network requests, promises, timers, storage, arrays, objects, strings, dates, errors, APIs, JSON, windows, history, forms, CSS, documents, animation, security, files, communication, events, templates, performance, mobile, networking, workers and security best practices. It lists methods for each technique in bullet points with brief descriptions.

Uploaded by

john
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

JavaScript For Automation CheatSheet 1705237148

This document provides a cheat sheet of JavaScript techniques for automation, including DOM manipulation, event handling, network requests, promises, timers, storage, arrays, objects, strings, dates, errors, APIs, JSON, windows, history, forms, CSS, documents, animation, security, files, communication, events, templates, performance, mobile, networking, workers and security best practices. It lists methods for each technique in bullet points with brief descriptions.

Uploaded by

john
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

# [ JavaScript For Automation ] ( CheatSheet )

1. DOM Manipulation and Web Page Interaction

● Select an Element by ID: document.getElementById('id')


● Select Elements by Class Name: document.getElementsByClassName('class')
● Select Elements by CSS Selector: document.querySelectorAll('selector')
● Create a New Element: document.createElement('tagName')
● Remove an Element: element.remove()
● Set Element Text: element.textContent = 'text'
● Set Element HTML: element.innerHTML = '<div>new content</div>'
● Change Element Style: element.style.color = 'blue'
● Toggle a Class: element.classList.toggle('className')
● Append Child to Element: parent.appendChild(child)

2. Event Handling

● Add Click Event to Element: element.onclick = function() {}


● Add Event Listener: element.addEventListener('click', function() {})
● Remove Event Listener: element.removeEventListener('click', function()
{})
● Trigger an Event Programmatically: element.dispatchEvent(new
Event('click'))
● Prevent Default Action: event.preventDefault()
● Stop Event Propagation: event.stopPropagation()

3. Network Requests and Fetch API

● Make a GET Request: fetch('url')


● Make a POST Request: fetch('url', {method: 'POST', body:
JSON.stringify(data)})
● Send Request with Headers: fetch('url', {headers: {'Content-Type':
'application/json'}})
● Parse JSON Response: fetch('url').then(response => response.json())
● Handle Network Errors: fetch('url').catch(error =>
console.error('Error:', error))

4. Asynchronous Operations and Promises

● Create a New Promise: new Promise((resolve, reject) => {})


By: Waleed Mousa
● Resolve a Promise: promise.then(value => {})
● Reject a Promise: promise.catch(error => {})
● Await an Async Function: (async () => { await asyncFunction(); })()
● Use Promise.all for Multiple Promises: Promise.all([promise1, promise2])

5. Timers and Delays

● Set a Timeout: setTimeout(() => {}, 1000)


● Clear a Timeout: clearTimeout(timeoutId)
● Set an Interval: setInterval(() => {}, 1000)
● Clear an Interval: clearInterval(intervalId)

6. Storage and Cookies

● Set Local Storage Item: localStorage.setItem('key', 'value')


● Get Local Storage Item: localStorage.getItem('key')
● Remove Local Storage Item: localStorage.removeItem('key')
● Set a Cookie: document.cookie = 'name=value; expires=Fri, 31 Dec 2021
23:59:59 GMT'
● Read a Cookie: document.cookie

7. Working with Arrays and Objects

● Map an Array: array.map(item => item * 2)


● Filter an Array: array.filter(item => item > 10)
● Reduce an Array: array.reduce((total, item) => total + item, 0)
● Find in an Array: array.find(item => item === 'needle')
● Sort an Array: array.sort((a, b) => a - b)

8. Working with Strings

● Concatenate Strings: `Hello ${name}`


● Match Regular Expression: string.match(/regex/)
● Replace String Content: string.replace('old', 'new')
● Convert to Upper/Lower Case: string.toUpperCase(), string.toLowerCase()
● Trim String: string.trim()

9. Working with Dates and Times

● Get Current Date and Time: new Date()

By: Waleed Mousa


● Format a Date: date.toISOString()
● Get Specific Date Part: date.getFullYear(), date.getMonth(),
date.getDate()
● Set Date and Time: date.setFullYear(2021), date.setHours(0)

10. Error Handling and Debugging

● Try-Catch Block: try { riskyOperation(); } catch(error) { handle error }


● Throwing Custom Error: throw new Error('Custom Error')
● Console Logging: console.log('message')
● Console Error Logging: console.error('error')
● Using Debugger: debugger

11. Web APIs and Interfaces

● Accessing User Location:


navigator.geolocation.getCurrentPosition(position => {})
● Using WebSockets: new WebSocket('ws://example.com')
● Accessing Local Files: inputElement.addEventListener('change', (event) =>
{})
● Using the Clipboard API: navigator.clipboard.writeText('Text to copy')
● Accessing Camera and Microphone: navigator.mediaDevices.getUserMedia({
video: true, audio: true })

12. Working with JSON

● Stringify JSON: JSON.stringify(object)


● Parse JSON String: JSON.parse(string)
● Handling JSON in Fetch: fetch('url').then(response => response.json())

13. Creating and Controlling Windows

● Open a New Window: window.open('https://www.example.com')


● Close Current Window: window.close()
● Resize Window: window.resizeTo(600, 400)

14. Browser History Manipulation

● Navigate Back: history.back()


● Navigate Forward: history.forward()

By: Waleed Mousa


● Adding History Entry: history.pushState({}, '', 'newPage.html')

15. Form and Input Handling

● Prevent Form Submission: form.onsubmit = (event) => {


event.preventDefault(); }
● Get Form Values: document.forms['formName']['inputName'].value
● Set Input Value: document.getElementById('inputId').value = 'newValue'
● Disable a Button: document.getElementById('buttonId').disabled = true

16. Manipulating CSS and Styles

● Add a Class to an Element: element.classList.add('new-class')


● Remove a Class from an Element: element.classList.remove('old-class')
● Toggle a Class on an Element: element.classList.toggle('toggle-class')
● Change Style Property: element.style.backgroundColor = 'red'

17. Interacting with Documents and Windows

● Reload Page: location.reload()


● Redirect to Another URL: location.href = 'https://www.example.com'
● Print the Page: window.print()
● Get URL Parameters: new URLSearchParams(window.location.search)

18. Animation and Visual Effects

● Basic Animation with setInterval: setInterval(() => { /* animation code


*/ }, 100)
● Cancel Animation: clearInterval(animationId)
● Animate Using requestAnimationFrame:
requestAnimationFrame(animateFunction)

19. Security and Performance

● Encoding URI Components: encodeURIComponent('parameter')


● Decoding URI Components: decodeURIComponent('parameter')
● Sanitizing Input: input.replace(/<script>.*?<\/script>/g, '')

20. Handling Files and Blob

By: Waleed Mousa


● Read File as Text: const reader = new FileReader();
reader.readAsText(file)
● Create Blob from Text: new Blob(['text'], { type: 'text/plain' })
● Download Blob as File: const url = URL.createObjectURL(blob); anchor.href
= url; anchor.download = 'filename'

21. Interacting with Other Scripts and Pages

● Importing Scripts: import('./module.js').then(module => {})


● PostMessage to Other Windows: otherWindow.postMessage('Hello', '*')
● Listen to Message from Other Windows: window.addEventListener('message',
event => {})

22. Advanced Data Structures and Algorithms

● Implementing a Queue: let queue = []; queue.push(1); queue.shift();


● Implementing a Stack: let stack = []; stack.push(1); stack.pop();
● Using Maps for Key-Value Pairs: let map = new Map(); map.set('key',
'value')
● Using Sets for Unique Items: let set = new Set(); set.add('item')

23. Web Scraping and Data Extraction

● Extracting Data from Document:


document.querySelectorAll('.class').forEach(el => {
console.log(el.textContent) })
● Creating a Document from String: new
DOMParser().parseFromString(htmlString, 'text/html')
● Automating Form Submission: document.forms[0].submit()

24. Communication with Server and APIs

● Sending Data to Server: fetch('server.php', {method: 'POST', body:


formData})
● Polling Server for Updates: setInterval(() => {
fetch('server.php').then(r => r.text()).then(updatePage) }, 5000)

25. Custom Events and Observers

● Creating a Custom Event: let event = new CustomEvent('my-event', {


detail: { key: 'value' }})

By: Waleed Mousa


● Dispatching an Event: element.dispatchEvent(event)
● Observing for Mutations: const observer = new MutationObserver(callback);
observer.observe(targetNode, config)

26. Dynamic Content and Templates

● Creating a Template Literal: const template = `<div>${variable}</div>`


● Inserting Dynamic HTML: element.innerHTML = template

27. Performance Monitoring and Debugging

● Measuring Execution Time: console.time('timer'); /* code to measure */


console.timeEnd('timer')
● Using Performance API: performance.mark('start'); /* code */
performance.mark('end'); performance.measure('My Measure', 'start',
'end')

28. Mobile and Responsive Design

● Detecting Mobile Device:


if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)
) { /* mobile specific code */ }
● Handling Orientation Change: window.addEventListener('orientationchange',
handleOrientationChange)

29. Advanced Networking and Streams

● Using Fetch with Streams: fetch('url').then(response =>


response.body.getReader().read().then(console.log))
● Sending Streams to Server: fetch('url', { method: 'POST', body: stream })

30. Using Web Workers for Background Tasks

● Creating a Web Worker: let worker = new Worker('worker.js')


● Sending Message to Worker: worker.postMessage('Hello Worker')
● Receiving Message from Worker: worker.onmessage = function(event) {
console.log('Message from worker', event.data) }

31. Security Measures and Best Practices

By: Waleed Mousa


● Content Security Policy: meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
● Cross-Origin Resource Sharing (CORS) Handling:
Access-Control-Allow-Origin: *

32. Using Service Workers for Offline Experience


● Registering a Service Worker: if('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js'); }
● Intercepting Fetch Requests in Service Worker:
self.addEventListener('fetch', event => {
event.respondWith(fetch(event.request)); });
● Caching Assets for Offline Use: caches.open('v1').then(cache => {
cache.addAll(['offline.html', 'offline.js']); });

33. Advanced Browser Features and Detection

● Detecting Online/Offline Status: window.addEventListener('online',


onlineHandler); window.addEventListener('offline', offlineHandler);
● Feature Detection: if('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition(position => {}); }
● Getting Browser Language: const language = navigator.language ||
navigator.userLanguage;

34. Working with Documents and Elements

● Removing All Child Nodes: while(element.firstChild) {


element.removeChild(element.firstChild); }
● Cloning an Element: const clone = element.cloneNode(true);
● Inserting HTML After an Element: element.insertAdjacentHTML('afterend',
'<div>New Element</div>');
● Scrolling to an Element:
document.querySelector('#element').scrollIntoView();
● Toggling Fullscreen for Element: if (element.requestFullscreen) {
element.requestFullscreen(); } else if (element.exitFullscreen) {
document.exitFullscreen(); }

35. Web Audio and Video

● Playing Audio: new Audio('file.mp3').play();


● Controlling Video Playback: const video =
document.querySelector('video'); video.play(); video.pause();

By: Waleed Mousa


36. Working with Maps and Sets

● Creating a Map and Adding Items: let map = new Map(); map.set('key',
'value');
● Retrieving and Deleting in Map: map.get('key'); map.delete('key');
● Creating and Using Sets: let set = new Set([1, 2, 3]); set.add(4);
set.has(1); set.delete(4);

37. Advanced Event Handling

● Customizing Event Propagation: event.stopPropagation();


event.stopImmediatePropagation();
● Handling Mouse Events: element.addEventListener('mousedown',
mouseDownHandler);
● Handling Keyboard Events: document.addEventListener('keydown',
keyDownHandler);

38. Interactive Web Features

● Drag and Drop: element.setAttribute('draggable', true);


element.addEventListener('dragstart', dragStartHandler);
● Clipboard Access: navigator.clipboard.writeText('Text to copy').then(()
=> {}, () => {});
● Dynamic Script Loading: const script = document.createElement('script');
script.src = 'script.js'; document.head.appendChild(script);

39. Data Manipulation and Computation

● Data Encryption: window.crypto.subtle.encrypt(algorithm, key, data);


● Data Decryption: window.crypto.subtle.decrypt(algorithm, key, data);
● Performing Complex Calculations: math.js for complex and matrix
calculations

40. Image and Canvas Manipulation

● Drawing on Canvas: const ctx = canvas.getContext('2d'); ctx.fillRect(10,


10, 150, 100);
● Modifying Images with Canvas: ctx.drawImage(image, x, y);
● Generating Data URL from Canvas: canvas.toDataURL('image/png');

41. Integrating with APIs and SDKs

By: Waleed Mousa


● Using Google Maps API: new
google.maps.Map(document.getElementById('map'), { zoom: 4, center:
myLatLng });
● Integrating with Social Media APIs: FB.api('/me', function(response) {
console.log(response); });

42. Performance Monitoring and Analysis

● Measuring Performance: console.time('process'); /* some process */


console.timeEnd('process');
● Using Performance API: performance.mark('start'); /* do something */
performance.mark('end'); performance.measure('My Measure', 'start',
'end');

43. Advanced File Handling

● Reading Files with FileReader: const reader = new FileReader();


reader.onload = function(e) { const text = e.target.result; };
reader.readAsText(file);
● Creating and Downloading Files: const blob = new Blob(['Hello, world!'],
{ type: 'text/plain;charset=utf-8' }); saveAs(blob, 'helloWorld.txt');

44. Real-Time Communication

● Using WebSockets for Real-Time Communication: const socket = new


WebSocket('ws://example.com'); socket.onmessage = function(event) {
console.log(event.data); };
● Implementing WebRTC for Video and Audio: const peerConnection = new
RTCPeerConnection(configuration);

By: Waleed Mousa

You might also like