node-js-from-stratch 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3025 @@
1
+ let html = `
2
+ <!doctype html>
3
+ <html lang="en-US" class="no-js" itemtype="https://schema.org/Blog" itemscope>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
7
+ <title>Node.js From Scratch &#8211; Cloud Native Base Camp</title>
8
+ <meta name='robots' content='max-image-preview:large' />
9
+ <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
10
+
11
+ <!-- Meta Tag Manager -->
12
+ <meta property="og:title" content="Node.js From Scratch" />
13
+ <meta property="og:description" content="The complete guide for JavaScript Language and Node.js runtime." />
14
+ <meta property="og:image" content="https://cloudnativebasecamp.com/wp-content/uploads/2023/12/nodejsfromscratch-bg2.jpg" />
15
+ <meta property="og:url" content="https://cloudnativebasecamp.com/courses/node-js-from-scratch/" />
16
+ <!-- / Meta Tag Manager -->
17
+ <script>window._wca = window._wca || [];</script>
18
+ <link rel='dns-prefetch' href='//challenges.cloudflare.com' />
19
+ <link rel='dns-prefetch' href='//stats.wp.com' />
20
+ <link rel='dns-prefetch' href='//capi-automation.s3.us-east-2.amazonaws.com' />
21
+ <link rel="alternate" type="application/rss+xml" title="Cloud Native Base Camp &raquo; Feed" href="https://cloudnativebasecamp.com/feed/" />
22
+ <link rel="alternate" type="application/rss+xml" title="Cloud Native Base Camp &raquo; Comments Feed" href="https://cloudnativebasecamp.com/comments/feed/" />
23
+ <script>document.documentElement.classList.remove( 'no-js' );</script>
24
+ <script>
25
+ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/cloudnativebasecamp.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.5"}};
26
+ /*! This file is auto-generated */
27
+ !function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
28
+ </script>
29
+ <style id='wp-emoji-styles-inline-css'>
30
+
31
+ img.wp-smiley, img.emoji {
32
+ display: inline !important;
33
+ border: none !important;
34
+ box-shadow: none !important;
35
+ height: 1em !important;
36
+ width: 1em !important;
37
+ margin: 0 0.07em !important;
38
+ vertical-align: -0.1em !important;
39
+ background: none !important;
40
+ padding: 0 !important;
41
+ }
42
+ </style>
43
+ <link rel='stylesheet' id='wp-block-library-css' href='https://cloudnativebasecamp.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.5' media='all' />
44
+ <style id='wp-block-library-inline-css'>
45
+
46
+ .cnbc-free-videos-title { font-size: 1.25rem; margin-bottom: .75rem; }
47
+ .cnbc-free-videos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 16px; }
48
+ .cnbc-video-item { width:100%; }
49
+ .cnbc-video-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:8px; box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
50
+ .cnbc-video-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
51
+ @media (max-width:600px){ .cnbc-free-videos-title { font-size:1.05rem; } }
52
+
53
+ </style>
54
+ <style id='classic-theme-styles-inline-css'>
55
+ /*! This file is auto-generated */
56
+ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
57
+ </style>
58
+ <style id='kevinbatdorf-code-block-pro-style-inline-css'>
59
+ .wp-block-kevinbatdorf-code-block-pro{direction:ltr!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;-webkit-text-size-adjust:100%!important;box-sizing:border-box!important;position:relative!important}.wp-block-kevinbatdorf-code-block-pro *{box-sizing:border-box!important}.wp-block-kevinbatdorf-code-block-pro pre,.wp-block-kevinbatdorf-code-block-pro pre *{font-size:inherit!important;line-height:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre{background-image:none!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;font-family:inherit!important;margin:0!important;overflow:auto!important;overflow-wrap:normal!important;padding:16px 0 16px 16px!important;text-align:left!important;white-space:pre!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important;outline:2px solid transparent!important;outline-offset:2px!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre:focus-visible{outline-color:inherit!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled:not(.code-block-pro-editor) pre{padding:0!important}.wp-block-kevinbatdorf-code-block-pro.padding-bottom-disabled pre{padding-bottom:0!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code{background:none!important;background-color:transparent!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;display:block!important;font-family:inherit!important;margin:0!important;overflow-wrap:normal!important;padding:0!important;text-align:left!important;white-space:pre!important;width:100%!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line{display:inline-block!important;min-width:var(--cbp-block-width,100%)!important;vertical-align:top!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line{padding-left:calc(12px + var(--cbp-line-number-width, auto))!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code{counter-increment:step calc(var(--cbp-line-number-start, 1) - 1)!important;counter-reset:step!important}.wp-block-kevinbatdorf-code-block-pro pre code .line{position:relative!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line:before{content:""!important;display:inline-block!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line:not(.cbp-line-number-disabled):before{color:var(--cbp-line-number-color,#999)!important;content:counter(step)!important;counter-increment:step!important;left:0!important;opacity:.5!important;position:absolute!important;text-align:right!important;transition-duration:.5s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;width:var(--cbp-line-number-width,auto)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover .line{min-height:var(--cbp-block-height,100%)!important}.wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{background:var(--cbp-line-highlight-color,rgb(14 165 233/.2))!important;left:-16px!important;min-height:var(--cbp-block-height,100%)!important;min-width:calc(var(--cbp-block-width, 100%) + 16px)!important;pointer-events:none!important;position:absolute!important;top:0!important;width:100%!important}[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-.125rem!important}[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1.5px!important}[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1px!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor).padding-disabled pre .line.cbp-line-highlight:after{left:0!important;width:100%!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled pre .line:not(.cbp-no-blur){filter:blur(1.35px)!important;opacity:.8!important;pointer-events:none!important;transition-duration:.2s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled.cbp-unblur-on-hover:hover pre .line:not(.cbp-no-blur){opacity:1!important;pointer-events:auto!important;--tw-blur: ;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre *{font-family:inherit!important}.cbp-see-more-simple-btn-hover{transition-property:none!important}.cbp-see-more-simple-btn-hover:hover{box-shadow:inset 0 0 100px 100px hsla(0,0%,100%,.1)!important}.code-block-pro-copy-button{border:0!important;border-style:none!important;border-width:0!important;cursor:pointer!important;left:auto!important;line-height:1!important;opacity:.1!important;outline:2px solid transparent!important;outline-offset:2px!important;padding:6px!important;position:absolute!important;right:0!important;top:0!important;transition-duration:.2s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;z-index:10!important}.code-block-pro-copy-button:focus{opacity:.4!important}.code-block-pro-copy-button:focus-visible{outline-color:inherit!important}.code-block-pro-copy-button:not([data-has-text-button]){background:none!important;background-color:transparent!important}body .wp-block-kevinbatdorf-code-block-pro:not(#x) .code-block-pro-copy-button-pre,body .wp-block-kevinbatdorf-code-block-pro:not(#x) .code-block-pro-copy-button-textarea{clip:rect(0,0,0,0)!important;background-color:transparent!important;border-width:0!important;color:transparent!important;height:1px!important;left:0!important;margin:-.25rem!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;resize:none!important;top:0!important;white-space:nowrap!important;width:1px!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled .code-block-pro-copy-button{padding:0!important}.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button{opacity:.5!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button:hover{opacity:.9!important}.code-block-pro-copy-button[data-has-text-button],.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button[data-has-text-button]{opacity:1!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button[data-has-text-button]:hover{opacity:.8!important}.code-block-pro-copy-button[data-has-text-button]{border-radius:.75rem!important;display:block!important;margin-right:.75rem!important;margin-top:.7rem!important;padding:.125rem .375rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMuted],.code-block-pro-copy-button[data-inside-header-type^=headlights]{margin-top:.85rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMutedAlt]{margin-top:.65rem!important}.code-block-pro-copy-button[data-inside-header-type=simpleString]{margin-top:.645rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString]{margin-top:1rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString] .cbp-btn-text{position:relative!important;top:1px!important}.cbp-btn-text{font-size:.75rem!important;line-height:1rem!important}.code-block-pro-copy-button .without-check{display:block!important}.code-block-pro-copy-button .with-check{display:none!important}.code-block-pro-copy-button.cbp-copying{opacity:1!important}.code-block-pro-copy-button.cbp-copying .without-check{display:none!important}.code-block-pro-copy-button.cbp-copying .with-check{display:block!important}.cbp-footer-link:hover{text-decoration-line:underline!important}@media print{.wp-block-kevinbatdorf-code-block-pro pre{max-height:none!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .line:before{background-color:transparent!important;color:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro:not(#x)>span{display:none!important}}
60
+
61
+ </style>
62
+ <link rel='stylesheet' id='mediaelement-css' href='https://cloudnativebasecamp.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' media='all' />
63
+ <link rel='stylesheet' id='wp-mediaelement-css' href='https://cloudnativebasecamp.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.8.5' media='all' />
64
+ <style id='jetpack-sharing-buttons-style-inline-css'>
65
+ .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
66
+ </style>
67
+ <style id='pdfemb-pdf-embedder-viewer-style-inline-css'>
68
+ .wp-block-pdfemb-pdf-embedder-viewer{max-width:none}
69
+
70
+ </style>
71
+ <style id='global-styles-inline-css'>
72
+ :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--theme-palette-1: var(--global-palette1);--wp--preset--color--theme-palette-2: var(--global-palette2);--wp--preset--color--theme-palette-3: var(--global-palette3);--wp--preset--color--theme-palette-4: var(--global-palette4);--wp--preset--color--theme-palette-5: var(--global-palette5);--wp--preset--color--theme-palette-6: var(--global-palette6);--wp--preset--color--theme-palette-7: var(--global-palette7);--wp--preset--color--theme-palette-8: var(--global-palette8);--wp--preset--color--theme-palette-9: var(--global-palette9);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: var(--global-font-size-small);--wp--preset--font-size--medium: var(--global-font-size-medium);--wp--preset--font-size--large: var(--global-font-size-large);--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--larger: var(--global-font-size-larger);--wp--preset--font-size--xxlarge: var(--global-font-size-xxlarge);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
73
+ :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
74
+ :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
75
+ :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
76
+ </style>
77
+ <style id='wcsm-styles-inline-css'>
78
+
79
+ /* ── Wrapper ── */
80
+ .wcsm-subscriptions-wrapper {
81
+ margin: 2rem 0;
82
+ font-family: inherit;
83
+ }
84
+
85
+ .wcsm-table-title {
86
+ font-size: 1.1rem;
87
+ font-weight: 700;
88
+ margin-bottom: 1rem;
89
+ color: whitesmoke;
90
+ letter-spacing: .03em;
91
+ text-transform: uppercase;
92
+ }
93
+
94
+ /* ── Table ── */
95
+ .wcsm-subscriptions-table {
96
+ width: 100%;
97
+ border-collapse: collapse;
98
+ background: transparent;
99
+ }
100
+
101
+ .wcsm-subscriptions-table thead tr {
102
+ border-bottom: 2px solid rgba(245,245,245,.25);
103
+ }
104
+
105
+ .wcsm-subscriptions-table th {
106
+ padding: 0.6rem 1rem;
107
+ text-align: left;
108
+ font-size: 0.72rem;
109
+ font-weight: 700;
110
+ letter-spacing: .08em;
111
+ text-transform: uppercase;
112
+ color: rgba(245,245,245,.5);
113
+ }
114
+
115
+ .wcsm-subscriptions-table td {
116
+ padding: 0.8rem 1rem;
117
+ text-align: left;
118
+ font-size: 0.9rem;
119
+ border-bottom: 1px solid rgba(245,245,245,.08);
120
+ }
121
+
122
+ /* ── Active rows ── */
123
+ .wcsm-row--active td {
124
+ color: whitesmoke;
125
+ }
126
+
127
+ .wcsm-row--active:hover td {
128
+ background: rgba(255,255,255,.04);
129
+ }
130
+
131
+ /* ── Ended rows ── */
132
+ .wcsm-row--ended td {
133
+ color: rgba(245,245,245,.35);
134
+ }
135
+
136
+ .wcsm-row--ended .wcsm-col-course {
137
+ text-decoration: line-through;
138
+ color: rgba(245,245,245,.25);
139
+ }
140
+
141
+ .wcsm-row--ended:hover td {
142
+ background: rgba(255,255,255,.02);
143
+ }
144
+
145
+ /* ── Extended end date ── */
146
+ .wcsm-end-original {
147
+ text-decoration: line-through;
148
+ color: rgba(245,245,245,.3);
149
+ margin-right: .4rem;
150
+ font-size: .82rem;
151
+ }
152
+
153
+ .wcsm-end-extended {
154
+ color: #4ade80; /* green accent */
155
+ font-weight: 600;
156
+ }
157
+
158
+ /* ── Badges ── */
159
+ .wcsm-badge {
160
+ display: inline-block;
161
+ padding: .2rem .6rem;
162
+ border-radius: 20px;
163
+ font-size: .7rem;
164
+ font-weight: 700;
165
+ letter-spacing: .06em;
166
+ text-transform: uppercase;
167
+ }
168
+
169
+ .wcsm-badge--active {
170
+ background: rgba(74,222,128,.15);
171
+ color: #4ade80;
172
+ border: 1px solid rgba(74,222,128,.3);
173
+ }
174
+
175
+ .wcsm-badge--ended {
176
+ background: rgba(248,113,113,.12);
177
+ color: #f87171;
178
+ border: 1px solid rgba(248,113,113,.25);
179
+ }
180
+
181
+ /* ── Active subscription notice on product page ── */
182
+ .wcsm-active-notice {
183
+ margin: 1rem 0;
184
+ padding: .9rem 1.2rem;
185
+ background: rgba(245,158,11,.1);
186
+ border-left: 3px solid #f59e0b;
187
+ color: #fcd34d;
188
+ border-radius: 4px;
189
+ font-size: .92rem;
190
+ }
191
+
192
+ /* ── No subscriptions message ── */
193
+ .wcsm-no-subs {
194
+ color: rgba(245,245,245,.4);
195
+ font-style: italic;
196
+ }
197
+
198
+ </style>
199
+ <link rel='stylesheet' id='learndash_quiz_front_css-css' href='//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/legacy/templates/learndash_quiz_front.min.css?ver=4.3.1.3' media='all' />
200
+ <link rel='stylesheet' id='jquery-dropdown-css-css' href='//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/assets/css/jquery.dropdown.min.css?ver=4.3.1.3' media='all' />
201
+ <link rel='stylesheet' id='learndash_lesson_video-css' href='//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/legacy/templates/learndash_lesson_video.min.css?ver=4.3.1.3' media='all' />
202
+ <style id='woocommerce-inline-inline-css'>
203
+ .woocommerce form .form-row .required { visibility: visible; }
204
+ </style>
205
+ <link rel='stylesheet' id='kadence-global-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/global.min.css?ver=1.2.7' media='all' />
206
+ <style id='kadence-global-inline-css'>
207
+ /* Kadence Base CSS */
208
+ :root{--global-palette1:#02d05f;--global-palette2:#01c89f;--global-palette3:#eceaea;--global-palette4:#999898;--global-palette5:#deddeb;--global-palette6:#c2d6c2;--global-palette7:#514d7c;--global-palette8:#2d2a30;--global-palette9:#272330;--global-palette9rgb:39, 35, 48;--global-palette-highlight:var(--global-palette1);--global-palette-highlight-alt:var(--global-palette2);--global-palette-highlight-alt2:var(--global-palette9);--global-palette-btn-bg:var(--global-palette1);--global-palette-btn-bg-hover:var(--global-palette2);--global-palette-btn:#ffffff;--global-palette-btn-hover:#ffffff;--global-body-font-family:'Work Sans', var(--global-fallback-font);--global-heading-font-family:'Work Sans', var(--global-fallback-font);--global-primary-nav-font-family:inherit;--global-fallback-font:sans-serif;--global-display-fallback-font:sans-serif;--global-content-width:1200px;--global-content-narrow-width:900px;--global-content-edge-padding:1.5rem;--global-content-boxed-padding:2rem;--global-calc-content-width:calc(1200px - var(--global-content-edge-padding) - var(--global-content-edge-padding) );--wp--style--global--content-size:var(--global-calc-content-width);}.wp-site-blocks{--global-vw:calc( 100vw - ( 0.5 * var(--scrollbar-offset)));}body{background:#212122;}body, input, select, optgroup, textarea{font-style:normal;font-weight:normal;font-size:17px;line-height:1.6;font-family:var(--global-body-font-family);color:var(--global-palette4);}.content-bg, body.content-style-unboxed .site{background:#212122;}h1,h2,h3,h4,h5,h6{font-family:var(--global-heading-font-family);}h1{font-style:normal;font-weight:700;font-size:40px;line-height:1.5;color:var(--global-palette3);}h2{font-weight:700;font-size:28px;line-height:1.5;color:var(--global-palette3);}h3{font-weight:700;font-size:24px;line-height:1.5;color:var(--global-palette3);}h4{font-style:normal;font-weight:normal;font-size:22px;line-height:1.5;color:var(--global-palette4);}h5{font-style:normal;font-weight:normal;font-size:20px;line-height:1.5;color:var(--global-palette4);}h6{font-style:normal;font-weight:normal;font-size:18px;line-height:1.5;color:var(--global-palette5);}.entry-hero .kadence-breadcrumbs{max-width:1200px;}.site-container, .site-header-row-layout-contained, .site-footer-row-layout-contained, .entry-hero-layout-contained, .comments-area, .alignfull > .wp-block-cover__inner-container, .alignwide > .wp-block-cover__inner-container{max-width:var(--global-content-width);}.content-width-narrow .content-container.site-container, .content-width-narrow .hero-container.site-container{max-width:var(--global-content-narrow-width);}@media all and (min-width: 1430px){.wp-site-blocks .content-container .alignwide{margin-left:-115px;margin-right:-115px;width:unset;max-width:unset;}}@media all and (min-width: 1160px){.content-width-narrow .wp-site-blocks .content-container .alignwide{margin-left:-130px;margin-right:-130px;width:unset;max-width:unset;}}.content-style-boxed .wp-site-blocks .entry-content .alignwide{margin-left:calc( -1 * var( --global-content-boxed-padding ) );margin-right:calc( -1 * var( --global-content-boxed-padding ) );}.content-area{margin-top:5rem;margin-bottom:5rem;}@media all and (max-width: 1024px){.content-area{margin-top:3rem;margin-bottom:3rem;}}@media all and (max-width: 767px){.content-area{margin-top:2rem;margin-bottom:2rem;}}@media all and (max-width: 1024px){:root{--global-content-boxed-padding:2rem;}}@media all and (max-width: 767px){:root{--global-content-boxed-padding:1.5rem;}}.entry-content-wrap{padding:2rem;}@media all and (max-width: 1024px){.entry-content-wrap{padding:2rem;}}@media all and (max-width: 767px){.entry-content-wrap{padding:1.5rem;}}.entry.single-entry{box-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);}.entry.loop-entry{box-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);}.loop-entry .entry-content-wrap{padding:2rem;}@media all and (max-width: 1024px){.loop-entry .entry-content-wrap{padding:2rem;}}@media all and (max-width: 767px){.loop-entry .entry-content-wrap{padding:1.5rem;}}button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"], .fl-button, .elementor-button-wrapper .elementor-button{box-shadow:0px 0px 0px -7px rgba(0,0,0,0);}button:hover, button:focus, button:active, .button:hover, .button:focus, .button:active, .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active, input[type="reset"]:hover, input[type="reset"]:focus, input[type="reset"]:active, input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active, .elementor-button-wrapper .elementor-button:hover, .elementor-button-wrapper .elementor-button:focus, .elementor-button-wrapper .elementor-button:active{box-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);}.kb-button.kb-btn-global-outline.kb-btn-global-inherit{padding-top:calc(px - 2px);padding-right:calc(px - 2px);padding-bottom:calc(px - 2px);padding-left:calc(px - 2px);}@media all and (min-width: 1025px){.transparent-header .entry-hero .entry-hero-container-inner{padding-top:110px;}}@media all and (max-width: 1024px){.mobile-transparent-header .entry-hero .entry-hero-container-inner{padding-top:110px;}}@media all and (max-width: 767px){.mobile-transparent-header .entry-hero .entry-hero-container-inner{padding-top:75px;}}
209
+ /* Kadence Header CSS */
210
+ @media all and (max-width: 1024px){.mobile-transparent-header #masthead{position:absolute;left:0px;right:0px;z-index:100;}.kadence-scrollbar-fixer.mobile-transparent-header #masthead{right:var(--scrollbar-offset,0);}.mobile-transparent-header #masthead, .mobile-transparent-header .site-top-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-main-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-bottom-header-wrap .site-header-row-container-inner{background:transparent;}.site-header-row-tablet-layout-fullwidth, .site-header-row-tablet-layout-standard{padding:0px;}}@media all and (min-width: 1025px){.transparent-header #masthead{position:absolute;left:0px;right:0px;z-index:100;}.transparent-header.kadence-scrollbar-fixer #masthead{right:var(--scrollbar-offset,0);}.transparent-header #masthead, .transparent-header .site-top-header-wrap .site-header-row-container-inner, .transparent-header .site-main-header-wrap .site-header-row-container-inner, .transparent-header .site-bottom-header-wrap .site-header-row-container-inner{background:transparent;}}.site-branding a.brand img{max-width:270px;}.site-branding a.brand img.svg-logo-image{width:270px;}.site-branding{padding:0px 0px 0px 0px;}#masthead, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container):not(.site-main-header-wrap), #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{background:var(--global-palette9);}.site-main-header-wrap .site-header-row-container-inner{background:#212122;}.site-main-header-inner-wrap{min-height:110px;}@media all and (max-width: 767px){.site-main-header-inner-wrap{min-height:75px;}}.header-navigation[class*="header-navigation-style-underline"] .header-menu-container.primary-menu-container>ul>li>a:after{width:calc( 100% - 1.45em);}.main-navigation .primary-menu-container > ul > li.menu-item > a{padding-left:calc(1.45em / 2);padding-right:calc(1.45em / 2);padding-top:0.6em;padding-bottom:0.6em;color:var(--global-palette3);}.main-navigation .primary-menu-container > ul > li.menu-item .dropdown-nav-special-toggle{right:calc(1.45em / 2);}.main-navigation .primary-menu-container > ul > li.menu-item > a:hover{color:#ff9616;}.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a{color:var(--global-palette1);}.header-navigation .header-menu-container ul ul.sub-menu, .header-navigation .header-menu-container ul ul.submenu{background:var(--global-palette9);box-shadow:0px 2px 13px 0px rgba(0,0,0,0.1);}.header-navigation .header-menu-container ul ul li.menu-item, .header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li.menu-item > a{border-bottom:5px none #ffffff;}.header-navigation .header-menu-container ul ul li.menu-item > a{width:200px;padding-top:1em;padding-bottom:1em;color:var(--global-palette3);font-size:12px;}.header-navigation .header-menu-container ul ul li.menu-item > a:hover{color:var(--global-palette9);background:var(--global-palette4);}.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a{color:var(--global-palette9);background:var(--global-palette4);}.mobile-toggle-open-container .menu-toggle-open, .mobile-toggle-open-container .menu-toggle-open:focus{color:var(--global-palette5);padding:0.4em 0.6em 0.4em 0.6em;font-size:14px;}.mobile-toggle-open-container .menu-toggle-open.menu-toggle-style-bordered{border:1px solid currentColor;}.mobile-toggle-open-container .menu-toggle-open .menu-toggle-icon{font-size:20px;}.mobile-toggle-open-container .menu-toggle-open:hover, .mobile-toggle-open-container .menu-toggle-open:focus-visible{color:var(--global-palette-highlight);}.mobile-navigation ul li{font-style:normal;font-size:16px;}.mobile-navigation ul li a{padding-top:1em;padding-bottom:1em;}.mobile-navigation ul li > a, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap{background:var(--global-palette9);color:var(--global-palette3);}.mobile-navigation ul li > a:hover, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hover{background:var(--global-palette9);color:#f79d17;}.mobile-navigation ul li.current-menu-item > a, .mobile-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrap{background:var(--global-palette9);color:var(--global-palette-highlight);}.mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap, .mobile-navigation ul li:not(.menu-item-has-children) a{border-bottom:0px solid rgba(255,255,255,0.1);}.mobile-navigation:not(.drawer-navigation-parent-toggle-true) ul li.menu-item-has-children .drawer-nav-drop-wrap button{border-left:0px solid rgba(255,255,255,0.1);}#mobile-drawer .drawer-inner, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice .pop-portion-bg, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice.pop-animated.show-drawer .drawer-inner{background:var(--global-palette9);}@media all and (max-width: 1024px){#mobile-drawer .drawer-inner, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice .pop-portion-bg, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice.pop-animated.show-drawer .drawer-inner{background:var(--global-palette9);}}@media all and (max-width: 767px){#mobile-drawer .drawer-inner, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice .pop-portion-bg, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice.pop-animated.show-drawer .drawer-inner{background:var(--global-palette9);}}#mobile-drawer .drawer-header .drawer-toggle{padding:0.6em 0.15em 0.6em 0.15em;font-size:24px;}#main-header .header-button{border-radius:6px 6px 6px 6px;background:#d03434;border:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);}#main-header .header-button.button-size-custom{padding:11px 30px 11px 30px;}#main-header .header-button:hover{box-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);}.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button{border:2px none transparent;box-shadow:0px 0px 0px -7px rgba(0,0,0,0);}.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button:hover{box-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);}
211
+ /* Kadence Footer CSS */
212
+ #colophon{background:var(--global-palette5);}.site-top-footer-wrap .site-footer-row-container-inner{font-style:normal;color:var(--global-palette8);}.site-footer .site-top-footer-wrap a:not(.button):not(.wp-block-button__link):not(.wp-element-button){color:var(--global-palette8);}.site-top-footer-inner-wrap{padding-top:30px;padding-bottom:30px;grid-column-gap:60px;grid-row-gap:60px;}.site-top-footer-inner-wrap .widget{margin-bottom:30px;}.site-top-footer-inner-wrap .widget-area .widget-title{font-style:normal;text-transform:capitalize;color:var(--global-palette8);}.site-top-footer-inner-wrap .site-footer-section:not(:last-child):after{border-right:0px none transparent;right:calc(-60px / 2);}.footer-social-wrap .footer-social-inner-wrap{font-size:1em;gap:0.3em;}.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button{color:var(--global-palette8);background:var(--global-palette3);border:2px none transparent;border-radius:4px;}#colophon .footer-html{font-style:normal;color:var(--global-palette8);}
213
+ /* Kadence Woo CSS */
214
+ .entry-hero.product-hero-section .entry-header{min-height:200px;}.product-title .single-category{font-weight:700;font-size:32px;line-height:1.5;color:var(--global-palette3);}.wp-site-blocks .product-hero-section .extra-title{font-weight:700;font-size:32px;line-height:1.5;}.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link{border:2px none transparent;box-shadow:0px 0px 0px 0px rgba(0,0,0,0.0);}.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button):hover, .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button):hover, .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link:hover{box-shadow:0px 0px 0px 0px rgba(0,0,0,0);}
215
+ /* Kadence LearnDash CSS */
216
+ .sfwd-courses-title h1{font-style:normal;font-size:1.5em;color:var(--global-palette9);}.sfwd-courses-hero-section .entry-hero-container-inner{background:var(--global-palette1);}.entry-hero.sfwd-courses-hero-section .entry-header{min-height:68px;}@media all and (max-width: 1024px){.sfwd-courses-hero-section .entry-hero-container-inner{background:var(--global-palette1);}}body.single-sfwd-courses .content-bg, body.content-style-unboxed.single-sfwd-courses .site{background:rgba(45,42,48,0);}@media all and (max-width: 1024px){body.single-sfwd-courses .content-bg, body.content-style-unboxed.single-sfwd-courses .site{background:rgba(45,42,48,0);}}.sfwd-lessons-title h1{font-style:normal;font-size:1.5em;}
217
+ </style>
218
+ <link rel='stylesheet' id='kadence-header-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/header.min.css?ver=1.2.7' media='all' />
219
+ <link rel='stylesheet' id='kadence-content-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/content.min.css?ver=1.2.7' media='all' />
220
+ <style id='kadence-content-inline-css'>
221
+ .posted-on, .category-links, .posted-by, .comments-link { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; }
222
+ </style>
223
+ <link rel='stylesheet' id='kadence-related-posts-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/related-posts.min.css?ver=1.2.7' media='all' />
224
+ <link rel='stylesheet' id='kad-splide-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/kadence-splide.min.css?ver=1.2.7' media='all' />
225
+ <link rel='stylesheet' id='kadence-woocommerce-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/woocommerce.min.css?ver=1.2.7' media='all' />
226
+ <link rel='stylesheet' id='kadence-footer-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/footer.min.css?ver=1.2.7' media='all' />
227
+ <link rel='stylesheet' id='learndash-front-css' href='//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/ld30/assets/css/learndash.min.css?ver=4.3.1.3' media='all' />
228
+ <link rel='stylesheet' id='kadence-learndash-css' href='https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/css/learndash.min.css?ver=1.2.7' media='all' />
229
+ <style id='kadence-learndash-inline-css'>
230
+ .ld-course-list-items .ld_course_grid .thumbnail.course .ld_course_grid_price.ribbon-enrolled {
231
+ background: var(--global-palette-btn-bg-hover);
232
+ }
233
+ .ld-course-list-items .ld_course_grid .thumbnail.course .ld_course_grid_price.ribbon-enrolled:before {
234
+ border-top-color: var(--global-palette-btn-bg);
235
+ border-right-color: var(--global-palette-btn-bg);
236
+ }
237
+ .ld-course-list-items .ld_course_grid .btn-primary {
238
+ border-color: var(--global-palette-btn-bg);
239
+ background: var(--global-palette-btn-bg);
240
+ color: var(--global-palette-btn);
241
+ box-shadow: 0px 0px 0px -7px rgba(0,0,0,0.0);
242
+ }
243
+ .ld-course-list-items .ld_course_grid .btn-primary:hover {
244
+ color: var(--global-palette-btn-hover);
245
+ border-color: var(--global-palette-btn-bg-hover);
246
+ background: var(--global-palette-btn-bg-hover);
247
+ box-shadow: 0px 15px 25px -7px rgba(0,0,0,0.1);
248
+ }
249
+ .learndash-wrapper .ld-item-list .ld-item-list-item.ld-is-next,
250
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_questionListItem label:focus-within {
251
+ border-color: var(--global-palette1);
252
+ }
253
+ /*
254
+ .learndash-wrapper a:not(.ld-button):not(#quiz_continue_link):not(.ld-focus-menu-link):not(.btn-blue):not(#quiz_continue_link):not(.ld-js-register-account):not(#ld-focus-mode-course-heading):not(#btn-join):not(.ld-item-name):not(.ld-table-list-item-preview):not(.ld-lesson-item-preview-heading),
255
+ */
256
+
257
+ .learndash-wrapper .ld-breadcrumbs a,
258
+ .learndash-wrapper .ld-lesson-item.ld-is-current-lesson .ld-lesson-item-preview-heading,
259
+ .learndash-wrapper .ld-lesson-item.ld-is-current-lesson .ld-lesson-title,
260
+ .learndash-wrapper .ld-primary-color-hover:hover,
261
+ .learndash-wrapper .ld-primary-color,
262
+ .learndash-wrapper .ld-primary-color-hover:hover,
263
+ .learndash-wrapper .ld-primary-color,
264
+ .learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab.ld-active,
265
+ .learndash-wrapper .ld-button.ld-button-transparent,
266
+ .learndash-wrapper .ld-button.ld-button-reverse,
267
+ .learndash-wrapper .ld-icon-certificate,
268
+ .learndash-wrapper .ld-login-modal .ld-login-modal-login .ld-modal-heading,
269
+ #wpProQuiz_user_content a,
270
+ .learndash-wrapper .ld-item-list .ld-item-list-item a.ld-item-name:hover,
271
+ .learndash-wrapper .ld-focus-comments__heading-actions .ld-expand-button,
272
+ .learndash-wrapper .ld-focus-comments__heading a,
273
+ .learndash-wrapper .ld-focus-comments .comment-respond a,
274
+ .learndash-wrapper .ld-focus-comment .ld-comment-reply a.comment-reply-link:hover,
275
+ .learndash-wrapper .ld-expand-button.ld-button-alternate {
276
+ color: var(--global-palette1) !important;
277
+ }
278
+
279
+ .learndash-wrapper .ld-focus-comment.bypostauthor>.ld-comment-wrapper,
280
+ .learndash-wrapper .ld-focus-comment.role-group_leader>.ld-comment-wrapper,
281
+ .learndash-wrapper .ld-focus-comment.role-administrator>.ld-comment-wrapper {
282
+ background-color: rgba(2,208,95,0.03) !important;
283
+ }
284
+
285
+
286
+ .learndash-wrapper .ld-primary-background,
287
+ .learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab.ld-active:after {
288
+ background: var(--global-palette1) !important;
289
+ }
290
+
291
+
292
+
293
+ .learndash-wrapper .ld-course-navigation .ld-lesson-item.ld-is-current-lesson .ld-status-incomplete,
294
+ .learndash-wrapper .ld-focus-comment.bypostauthor:not(.ptype-sfwd-assignment) >.ld-comment-wrapper>.ld-comment-avatar img,
295
+ .learndash-wrapper .ld-focus-comment.role-group_leader>.ld-comment-wrapper>.ld-comment-avatar img,
296
+ .learndash-wrapper .ld-focus-comment.role-administrator>.ld-comment-wrapper>.ld-comment-avatar img {
297
+ border-color: var(--global-palette1) !important;
298
+ }
299
+
300
+
301
+
302
+ .learndash-wrapper .ld-loading::before {
303
+ border-top:3px solid var(--global-palette1) !important;
304
+ }
305
+
306
+ .learndash-wrapper .ld-button:hover:not(.learndash-link-previous-incomplete):not(.ld-button-transparent),
307
+ #learndash-tooltips .ld-tooltip:after,
308
+ #learndash-tooltips .ld-tooltip,
309
+ .learndash-wrapper .ld-primary-background,
310
+ .learndash-wrapper .btn-join,
311
+ .learndash-wrapper #btn-join,
312
+ .learndash-wrapper .ld-button:not(.ld-js-register-account):not(.learndash-link-previous-incomplete):not(.ld-button-transparent),
313
+ .learndash-wrapper .ld-expand-button,
314
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_button:not(.wpProQuiz_button_reShowQuestion):not(.wpProQuiz_button_restartQuiz),
315
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_button2,
316
+ .learndash-wrapper .ld-focus .ld-focus-sidebar .ld-course-navigation-heading,
317
+ .learndash-wrapper .ld-focus .ld-focus-sidebar .ld-focus-sidebar-trigger,
318
+ .learndash-wrapper .ld-focus-comments .form-submit #submit,
319
+ .learndash-wrapper .ld-login-modal input[type='submit'],
320
+ .learndash-wrapper .ld-login-modal .ld-login-modal-register,
321
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_certificate a.btn-blue,
322
+ .learndash-wrapper .ld-focus .ld-focus-header .ld-user-menu .ld-user-menu-items a,
323
+ #wpProQuiz_user_content table.wp-list-table thead th,
324
+ #wpProQuiz_overlay_close,
325
+ .learndash-wrapper .ld-expand-button.ld-button-alternate .ld-icon {
326
+ background-color: var(--global-palette1) !important;
327
+ }
328
+
329
+
330
+ .learndash-wrapper .ld-focus .ld-focus-header .ld-user-menu .ld-user-menu-items:before {
331
+ border-bottom-color: var(--global-palette1) !important;
332
+ }
333
+
334
+ .learndash-wrapper .ld-button.ld-button-transparent:hover {
335
+ background: transparent !important;
336
+ }
337
+
338
+ .learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete .learndash_mark_complete_button,
339
+ .learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete #learndash_mark_complete_button,
340
+ .learndash-wrapper .ld-button.ld-button-transparent,
341
+ .learndash-wrapper .ld-button.ld-button-alternate,
342
+ .learndash-wrapper .ld-expand-button.ld-button-alternate {
343
+ background-color:transparent !important;
344
+ }
345
+
346
+ .learndash-wrapper .ld-focus-header .ld-user-menu .ld-user-menu-items a,
347
+ .learndash-wrapper .ld-button.ld-button-reverse:hover,
348
+ .learndash-wrapper .ld-alert-success .ld-alert-icon.ld-icon-certificate,
349
+ .learndash-wrapper .ld-alert-warning .ld-button:not(.learndash-link-previous-incomplete),
350
+ .learndash-wrapper .ld-primary-background.ld-status {
351
+ color:white !important;
352
+ }
353
+
354
+ .learndash-wrapper .ld-status.ld-status-unlocked {
355
+ background-color: rgba(2,208,95,0.2) !important;
356
+ color: var(--global-palette1) !important;
357
+ }
358
+
359
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_addToplist {
360
+ background-color: rgba(2,208,95,0.1) !important;
361
+ border: 1px solid var(--global-palette1) !important;
362
+ }
363
+
364
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_toplistTable th {
365
+ background: var(--global-palette1) !important;
366
+ }
367
+
368
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_toplistTrOdd {
369
+ background-color: rgba(2,208,95,0.1) !important;
370
+ }
371
+
372
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_reviewDiv li.wpProQuiz_reviewQuestionTarget {
373
+ background-color: var(--global-palette1) !important;
374
+ }
375
+
376
+
377
+ .learndash-wrapper #quiz_continue_link,
378
+ .learndash-wrapper .ld-secondary-background,
379
+ .learndash-wrapper .learndash_mark_complete_button,
380
+ .learndash-wrapper #learndash_mark_complete_button,
381
+ .learndash-wrapper .ld-status-complete,
382
+ .learndash-wrapper .ld-alert-success .ld-button,
383
+ .learndash-wrapper .ld-alert-success .ld-alert-icon {
384
+ background-color: var(--global-palette2) !important;
385
+ }
386
+ .learndash-wrapper .learndash_mark_complete_button:hover, .learndash-wrapper #learndash_mark_complete_button:hover {
387
+ background-color: var(--global-palette2) !important;
388
+ }
389
+
390
+ .learndash-wrapper .wpProQuiz_content a#quiz_continue_link {
391
+ background-color: var(--global-palette2) !important;
392
+ }
393
+
394
+ .learndash-wrapper .course_progress .sending_progress_bar {
395
+ background: var(--global-palette2) !important;
396
+ }
397
+
398
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_button_reShowQuestion:hover, .learndash-wrapper .wpProQuiz_content .wpProQuiz_button_restartQuiz:hover {
399
+ background-color: var(--global-palette2) !important;
400
+ opacity: 0.75;
401
+ }
402
+
403
+ .learndash-wrapper .ld-secondary-color-hover:hover,
404
+ .learndash-wrapper .ld-secondary-color,
405
+ .learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete .learndash_mark_complete_button,
406
+ .learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete #learndash_mark_complete_button,
407
+ .learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete:after {
408
+ color: var(--global-palette2) !important;
409
+ }
410
+
411
+ .learndash-wrapper .ld-secondary-in-progress-icon {
412
+ border-left-color: var(--global-palette2) !important;
413
+ border-top-color: var(--global-palette2) !important;
414
+ }
415
+
416
+ .learndash-wrapper .ld-alert-success {
417
+ border-color: var(--global-palette2);
418
+ background-color: transparent !important;
419
+ }
420
+
421
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_reviewQuestion li.wpProQuiz_reviewQuestionSolved,
422
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_box li.wpProQuiz_reviewQuestionSolved {
423
+ background-color: var(--global-palette2) !important;
424
+ }
425
+
426
+ .learndash-wrapper .wpProQuiz_content .wpProQuiz_reviewLegend span.wpProQuiz_reviewColor_Answer {
427
+ background-color: var(--global-palette2) !important;
428
+ }
429
+
430
+
431
+ </style>
432
+ <style id='kadence-blocks-global-variables-inline-css'>
433
+ :root {--global-kb-font-size-sm:clamp(0.8rem, 0.73rem + 0.217vw, 0.9rem);--global-kb-font-size-md:clamp(1.1rem, 0.995rem + 0.326vw, 1.25rem);--global-kb-font-size-lg:clamp(1.75rem, 1.576rem + 0.543vw, 2rem);--global-kb-font-size-xl:clamp(2.25rem, 1.728rem + 1.63vw, 3rem);--global-kb-font-size-xxl:clamp(2.5rem, 1.456rem + 3.26vw, 4rem);--global-kb-font-size-xxxl:clamp(2.75rem, 0.489rem + 7.065vw, 6rem);}
434
+ </style>
435
+ <script src="https://cloudnativebasecamp.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
436
+ <script src="https://cloudnativebasecamp.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
437
+ <script id="tt4b_ajax_script-js-extra">
438
+ var tt4b_script_vars = {"pixel_code":"CTT6ALJC77U4KUTGNJI0","currency":"USD","country":"EG","advanced_matching":"1"};
439
+ </script>
440
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/tiktok-for-business/admin/js/ajaxSnippet.js?ver=v1" id="tt4b_ajax_script-js"></script>
441
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.10.4.4" id="wc-jquery-blockui-js" defer data-wp-strategy="defer"></script>
442
+ <script id="wc-add-to-cart-js-extra">
443
+ var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/cloudnativebasecamp.com\/cart\/","is_cart":"","cart_redirect_after_add":"no"};
444
+ </script>
445
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=10.4.4" id="wc-add-to-cart-js" defer data-wp-strategy="defer"></script>
446
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.10.4.4" id="wc-js-cookie-js" defer data-wp-strategy="defer"></script>
447
+ <script id="woocommerce-js-extra">
448
+ var woocommerce_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"};
449
+ </script>
450
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=10.4.4" id="woocommerce-js" defer data-wp-strategy="defer"></script>
451
+ <script src="https://stats.wp.com/s-202618.js" id="woocommerce-analytics-js" defer data-wp-strategy="defer"></script>
452
+ <link rel="https://api.w.org/" href="https://cloudnativebasecamp.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://cloudnativebasecamp.com/wp-json/wp/v2/sfwd-courses/4467" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://cloudnativebasecamp.com/xmlrpc.php?rsd" />
453
+ <meta name="generator" content="WordPress 6.8.5" />
454
+ <meta name="generator" content="WooCommerce 10.4.4" />
455
+ <link rel="canonical" href="https://cloudnativebasecamp.com/courses/node-js-from-scratch/" />
456
+ <link rel='shortlink' href='https://cloudnativebasecamp.com/?p=4467' />
457
+ <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://cloudnativebasecamp.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcloudnativebasecamp.com%2Fcourses%2Fnode-js-from-scratch%2F" />
458
+ <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://cloudnativebasecamp.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcloudnativebasecamp.com%2Fcourses%2Fnode-js-from-scratch%2F&#038;format=xml" />
459
+ <script type="text/javascript">
460
+ var ajaxurl = "https://cloudnativebasecamp.com/wp-admin/admin-ajax.php";
461
+ </script> <script type="text/javascript">
462
+ (function(c,l,a,r,i,t,y){
463
+ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;
464
+ t.src="https://www.clarity.ms/tag/"+i+"?ref=wordpress";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
465
+ })(window, document, "clarity", "script", "nk5hk727ou");
466
+ </script>
467
+ <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
468
+ <style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <script type="text/javascript">
469
+ !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
470
+ n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
471
+ n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
472
+ t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
473
+ document,'script','https://connect.facebook.net/en_US/fbevents.js');
474
+ </script>
475
+ <!-- WooCommerce Facebook Integration Begin -->
476
+ <script type="text/javascript">
477
+
478
+ fbq('init', '2516399868556194', {}, {
479
+ "agent": "woocommerce_0-10.4.4-3.5.15"
480
+ });
481
+
482
+ document.addEventListener( 'DOMContentLoaded', function() {
483
+ // Insert placeholder for events injected when a product is added to the cart through AJAX.
484
+ document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' );
485
+ }, false );
486
+
487
+ </script>
488
+ <!-- WooCommerce Facebook Integration End -->
489
+ <link rel='stylesheet' id='kadence-fonts-css' href='https://fonts.googleapis.com/css?family=Work%20Sans:regular,700&#038;display=swap' media='all' />
490
+ <link rel="icon" href="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/cropped-logo-32x32.png" sizes="32x32" />
491
+ <link rel="icon" href="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/cropped-logo-192x192.png" sizes="192x192" />
492
+ <link rel="apple-touch-icon" href="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/cropped-logo-180x180.png" />
493
+ <meta name="msapplication-TileImage" content="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/cropped-logo-270x270.png" />
494
+ <style type="text/css" id="wp-custom-css">.rtl {
495
+ direction: rtl;
496
+ }
497
+
498
+ .rimg {
499
+ border-radius: 10px;
500
+ }
501
+
502
+ .woocommerce-notices-wrapper
503
+ {
504
+ display: none;
505
+ }
506
+
507
+ .ld-course-status-not-enrolled
508
+ {
509
+ display: none !important;
510
+ }
511
+
512
+ .order-overview
513
+ {
514
+ display: none !important;
515
+ }
516
+
517
+ .logged-in .button-class
518
+ display: none;
519
+ }
520
+
521
+ .met-link {
522
+ background-color: #FFEB00;
523
+ }
524
+
525
+ .bg-y {
526
+ background-color: #FFEB00;
527
+ color: black;
528
+ padding: 5px;
529
+ }
530
+
531
+ .met_user_info {
532
+ background-color: #FFEB00;
533
+ font-weight: bold;
534
+ padding: 0px 10px;
535
+ color: #222222
536
+ }
537
+ #kadence-breadcrumbs,
538
+ .wc-tabs{
539
+ display: none !important;
540
+ }
541
+ .woocommerce-Tabs-panel h2,
542
+ .woocommerce-Tabs-panel#tab-additional_information h2 {
543
+ font-size: 14pt !important;
544
+ margin-bottom: 15px;
545
+ text-transform: none;
546
+ font-weight: normal;
547
+ }
548
+ .woocommerce span.onsale {
549
+ display: none !important;
550
+ }
551
+
552
+ /* تصغير صورة المنتج على الشاشات الكبيرة فقط */
553
+ @media (min-width: 1024px) {
554
+ .woocommerce div.product div.images {
555
+ max-width: 400px;
556
+ margin: 0 auto;
557
+ }
558
+
559
+ .woocommerce div.product div.summary {
560
+ flex: 1;
561
+ }
562
+ }
563
+
564
+ .woocommerce-checkout-review-order-table .cart-subtotal {
565
+ display: none !important;
566
+ }
567
+
568
+ .cart-agreement-fullwidth {
569
+ width: 100%;
570
+ clear: both;
571
+ margin: 30px 0;
572
+ padding: 20px;
573
+ }
574
+
575
+
576
+ @media (max-width: 768px) {
577
+ .mobile-large-image {
578
+ width: 180% !important;
579
+ height: auto !important;
580
+ max-width: none !important;
581
+ position: relative;
582
+ left: 50%;
583
+ transform: translateX(-50%);
584
+ }
585
+ }</style><script data-ampdevmode type="text/javascript">
586
+ /* <![CDATA[ */
587
+ var wpNotesIsJetpackClient = true;
588
+ var wpNotesIsJetpackClientV2 = true;
589
+ var wpNotesLinkAccountsURL = 'https://cloudnativebasecamp.com/wp-admin/admin.php?page=jetpack';
590
+ /* ]]> */
591
+ window.addEventListener('message', function ( event ) {
592
+ // Confirm that the message is from the right origin.
593
+ if ('https://widgets.wp.com' !== event.origin) {
594
+ return;
595
+ }
596
+ // Check whether 3rd Party Cookies are blocked
597
+ var has3PCBlocked = 'WPCOM:3PC:blocked' === event.data;
598
+
599
+ var tagerElement = document.getElementById('wp-admin-bar-notes');
600
+
601
+ if ( has3PCBlocked && tagerElement ) {
602
+ // Hide the notification button/icon
603
+ tagerElement.style.display = 'none';
604
+ }
605
+ }, false );
606
+ </script>
607
+
608
+ <!-- Google Tag Manager -->
609
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
610
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
611
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
612
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
613
+ })(window,document,'script','dataLayer','GTM-5V46HLNP');</script>
614
+ <!-- End Google Tag Manager -->
615
+
616
+ </head>
617
+
618
+ <body class="wp-singular sfwd-courses-template-default single single-sfwd-courses postid-4467 logged-in wp-custom-logo wp-embed-responsive wp-theme-kadence theme-kadence woocommerce-no-js footer-on-bottom hide-focus-outline link-style-standard content-title-style-hide content-width-normal content-style-boxed content-vertical-padding-show non-transparent-header mobile-non-transparent-header date-hidden categories-hidden author-hidden comment-hidden modula-best-grid-gallery learndash-cpt learndash-cpt-sfwd-courses learndash-template-ld30 learndash-embed-responsive">
619
+ <!-- Google Tag Manager (noscript) -->
620
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5V46HLNP"
621
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
622
+ <!-- End Google Tag Manager (noscript) -->
623
+
624
+ <div id="wrapper" class="site wp-site-blocks">
625
+ <a class="skip-link screen-reader-text scroll-ignore" href="#main">Skip to content</a>
626
+ <header id="masthead" class="site-header" role="banner" itemtype="https://schema.org/WPHeader" itemscope>
627
+ <div id="main-header" class="site-header-wrap">
628
+ <div class="site-header-inner-wrap">
629
+ <div class="site-header-upper-wrap">
630
+ <div class="site-header-upper-inner-wrap">
631
+ <div class="site-main-header-wrap site-header-row-container site-header-focus-item site-header-row-layout-standard" data-section="kadence_customizer_header_main">
632
+ <div class="site-header-row-container-inner">
633
+ <div class="site-container">
634
+ <div class="site-main-header-inner-wrap site-header-row site-header-row-has-sides site-header-row-no-center">
635
+ <div class="site-header-main-section-left site-header-section site-header-section-left">
636
+ <div class="site-header-item site-header-focus-item" data-section="title_tagline">
637
+ <div class="site-branding branding-layout-standard site-brand-logo-only"><a class="brand has-logo-image" href="https://cloudnativebasecamp.com/" rel="home"><img width="1630" height="500" src="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname.png" class="custom-logo" alt="Cloud Native Base Camp" decoding="async" fetchpriority="high" srcset="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname.png 1630w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-300x92.png 300w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-1024x314.png 1024w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-768x236.png 768w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-1536x471.png 1536w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-600x184.png 600w" sizes="(max-width: 1630px) 100vw, 1630px" /></a></div></div><!-- data-section="title_tagline" -->
638
+ <div class="site-header-item site-header-focus-item site-header-item-main-navigation header-navigation-layout-stretch-false header-navigation-layout-fill-stretch-false" data-section="kadence_customizer_primary_navigation">
639
+ <nav id="site-navigation" class="main-navigation header-navigation nav--toggle-sub header-navigation-style-standard header-navigation-dropdown-animation-none" role="navigation" aria-label="Primary Navigation">
640
+ <div class="primary-menu-container header-menu-container">
641
+ <ul id="primary-menu" class="menu"><li id="menu-item-8461" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-8461"><a href="https://cloudnativebasecamp.com/">الرئيسية</a></li>
642
+ <li id="menu-item-8625" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8625"><a href="https://cloudnativebasecamp.com/plans/">خطط الأشتراك</a></li>
643
+ <li id="menu-item-629" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-629"><a href="https://cloudnativebasecamp.com/courseslist/">الكورسات</a></li>
644
+ <li id="menu-item-8345" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8345"><a href="https://cloudnativebasecamp.com/blog/">Blog</a></li>
645
+ <li id="menu-item-14605" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14605"><a href="https://cloudnativebasecamp.com/how-to-study/">ازاي تذاكر الكورسات</a></li>
646
+ <li id="menu-item-898" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-898"><a href="https://cloudnativebasecamp.com/contact/">التواصل والمساعدة</a></li>
647
+ <li id="menu-item-634" class="ld-button met-link menu-item menu-item-type-custom menu-item-object-custom menu-item-634"><a href="https://cloudnativebasecamp.com/bab/?action=logout&#038;redirect_to=https%3A%2F%2Fcloudnativebasecamp.com%2Fcourses%2Fnode-js-from-scratch%2F&#038;_wpnonce=8900d3b0b5">خروج</a></li>
648
+ </ul> </div>
649
+ </nav><!-- #site-navigation -->
650
+ </div><!-- data-section="primary_navigation" -->
651
+ <div class="site-header-item site-header-focus-item" data-section="kadence_customizer_header_html">
652
+ <div class="header-html inner-link-style-normal"><div class="header-html-inner"><div class="met_user_info">Sara Hamdy Ahmed</div>
653
+ </div></div></div><!-- data-section="header_html" -->
654
+ </div>
655
+ <div class="site-header-main-section-right site-header-section site-header-section-right">
656
+ <div class="site-header-item site-header-focus-item" data-section="kadence_customizer_header_button">
657
+ </div><!-- data-section="header_button" -->
658
+ </div>
659
+ </div>
660
+ </div>
661
+ </div>
662
+ </div>
663
+ </div>
664
+ </div>
665
+ </div>
666
+ </div>
667
+
668
+ <div id="mobile-header" class="site-mobile-header-wrap">
669
+ <div class="site-header-inner-wrap">
670
+ <div class="site-header-upper-wrap">
671
+ <div class="site-header-upper-inner-wrap">
672
+ <div class="site-main-header-wrap site-header-focus-item site-header-row-layout-standard site-header-row-tablet-layout-default site-header-row-mobile-layout-default ">
673
+ <div class="site-header-row-container-inner">
674
+ <div class="site-container">
675
+ <div class="site-main-header-inner-wrap site-header-row site-header-row-has-sides site-header-row-no-center">
676
+ <div class="site-header-main-section-left site-header-section site-header-section-left">
677
+ <div class="site-header-item site-header-focus-item" data-section="title_tagline">
678
+ <div class="site-branding mobile-site-branding branding-layout-standard branding-tablet-layout-inherit site-brand-logo-only branding-mobile-layout-inherit"><a class="brand has-logo-image" href="https://cloudnativebasecamp.com/" rel="home"><img width="1630" height="500" src="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname.png" class="custom-logo" alt="Cloud Native Base Camp" decoding="async" srcset="https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname.png 1630w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-300x92.png 300w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-1024x314.png 1024w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-768x236.png 768w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-1536x471.png 1536w, https://cloudnativebasecamp.com/wp-content/uploads/2024/04/logo-fullname-600x184.png 600w" sizes="(max-width: 1630px) 100vw, 1630px" /></a></div></div><!-- data-section="title_tagline" -->
679
+ </div>
680
+ <div class="site-header-main-section-right site-header-section site-header-section-right">
681
+ <div class="site-header-item site-header-focus-item site-header-item-navgation-popup-toggle" data-section="kadence_customizer_mobile_trigger">
682
+ <div class="mobile-toggle-open-container">
683
+ <button id="mobile-toggle" class="menu-toggle-open drawer-toggle menu-toggle-style-default" aria-label="Open menu" data-toggle-target="#mobile-drawer" data-toggle-body-class="showing-popup-drawer-from-right" aria-expanded="false" data-set-focus=".menu-toggle-close"
684
+ >
685
+ <span class="menu-toggle-icon"><span class="kadence-svg-iconset"><svg class="kadence-svg-icon kadence-menu2-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28"><title>Toggle Menu</title><path d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z"></path>
686
+ </svg></span></span>
687
+ </button>
688
+ </div>
689
+ </div><!-- data-section="mobile_trigger" -->
690
+ </div>
691
+ </div>
692
+ </div>
693
+ </div>
694
+ </div>
695
+ </div>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ </header><!-- #masthead -->
700
+
701
+ <div id="inner-wrap" class="wrap hfeed kt-clear">
702
+ <div id="primary" class="content-area">
703
+ <div class="content-container site-container">
704
+ <main id="main" class="site-main" role="main">
705
+ <div class="woocommerce kadence-woo-messages-none-woo-pages woocommerce-notices-wrapper"></div> <div class="content-wrap">
706
+ <article id="post-4467" class="entry content-bg single-entry post-4467 sfwd-courses type-sfwd-courses status-publish hentry">
707
+ <div class="entry-content-wrap">
708
+
709
+ <div class="entry-content single-content">
710
+ <div class="learndash learndash_post_sfwd-courses user_has_access" id="learndash_post_4467">
711
+ <div class="learndash-wrapper">
712
+
713
+ <div class="learndash-wrapper learndash-wrap learndash-shortcode-wrap learndash-shortcode-wrap-ld_infobar-4467_4467_8211">
714
+
715
+ <div class="ld-course-status ld-course-status-enrolled">
716
+
717
+ <div class="ld-progress
718
+ ld-progress-inline">
719
+ <div class="ld-progress-heading">
720
+ <div class="ld-progress-stats">
721
+ <div class="ld-progress-percentage ld-secondary-color">
722
+ 46% انت خلصت </div>
723
+ <div class="ld-progress-steps rtl">
724
+ اخر مرة درست الكورس ده 2026-04-30 01:08 am </div>
725
+ </div> <!--/.ld-progress-stats-->
726
+ </div>
727
+
728
+ <div class="ld-progress-bar">
729
+ <div class="ld-progress-bar-percentage ld-secondary-background" style="width:46%"></div>
730
+ </div>
731
+ </div> <!--/.ld-progress-->
732
+ <div class="ld-status ld-status-progress ld-primary-background">In Progress</div>
733
+ </div> <!--/.ld-course-status-->
734
+
735
+
736
+ </div>
737
+
738
+ <div class="ld-tabs ld-tab-count-1">
739
+
740
+ <div class="ld-tabs-content">
741
+
742
+ <div role="tabpanel" tabindex="0" aria-labelledby="content" class="ld-tab-content ld-visible" id="ld-tab-content-4467">
743
+
744
+ <div class="course-widget">
745
+ <style>
746
+ @import url('https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&display=swap');
747
+ .content-area {margin-top: 0 !important;}
748
+ .course-widget * {
749
+ margin: 0;
750
+ padding: 0;
751
+ box-sizing: border-box;
752
+ }
753
+
754
+ .course-widget {
755
+ font-family: 'Google Sans Code', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
756
+ color: #e4e4e7;
757
+ padding: 20px;
758
+ }
759
+
760
+ .course-container {
761
+ margin: 0 auto;
762
+ background: #27272a;
763
+ border-radius: 12px;
764
+ box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
765
+ overflow: hidden;
766
+ }
767
+
768
+ .course-header {
769
+ background: #2d2d32;
770
+ color: white;
771
+ padding: 15px;
772
+ border-bottom: 1px solid #3a3a40;
773
+ display: flex;
774
+ gap: 30px;
775
+ align-items: center;
776
+ }
777
+
778
+ .course-header-image img {
779
+ width: 256px;
780
+ object-fit: cover;
781
+ border-radius: 8px;
782
+ }
783
+
784
+ .course-header-content {
785
+ flex: 1;
786
+ text-align: left;
787
+ }
788
+
789
+ .course-header h1 {
790
+ font-size: 2rem;
791
+ margin-bottom: 10px;
792
+ font-weight: 600;
793
+ }
794
+
795
+ .course-stats {
796
+ display: flex;
797
+ justify-content: flex-start;
798
+ gap: 15px;
799
+ flex-wrap: wrap;
800
+ margin-top: 15px;
801
+ }
802
+
803
+ .course-duration {
804
+ font-size: 0.85rem;
805
+ display: inline-block;
806
+ background: #4ca760;
807
+ color: white;
808
+ padding: 8px 16px;
809
+ border-radius: 20px;
810
+ }
811
+
812
+ .course-content {
813
+ padding: 20px 15px;
814
+ }
815
+
816
+ .course-section {
817
+ margin-bottom: 15px;
818
+ }
819
+
820
+ .course-section h2 {
821
+ font-size: 1.5rem;
822
+ margin-bottom: 5px;
823
+ padding-bottom: 10px;
824
+ }
825
+
826
+ /* Header Colors */
827
+ .section-features h2 {
828
+ color: #4ca760;
829
+ }
830
+
831
+ .section-prereqs h2 {
832
+ color: #ef4444;
833
+ }
834
+
835
+ .section-instructor h2 {
836
+ color: #3b82f6;
837
+ }
838
+
839
+ .section-desc {
840
+ margin-bottom: 5px !important;
841
+ font-size: 0.95rem;
842
+ color: #a1a1aa;
843
+ }
844
+
845
+ .items-grid {
846
+ display: grid;
847
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
848
+ gap: 12px;
849
+ }
850
+
851
+ /* Box Styles - Unified Borders */
852
+ .course-prereq-item, .course-feature-item {
853
+ background: #2d2d32;
854
+ padding: 15px;
855
+ border-radius: 10px;
856
+ transition: all 0.3s ease;
857
+ border: 1px solid #3a3a40;
858
+ position: relative;
859
+ overflow: hidden;
860
+ }
861
+
862
+ .course-prereq-item::before, .course-feature-item::before {
863
+ content: '';
864
+ position: absolute;
865
+ top: 0;
866
+ left: 0;
867
+ width: 0;
868
+ height: 100%;
869
+ transition: width 0.3s ease;
870
+ }
871
+
872
+ /* Green Theme */
873
+ .course-feature-item:hover {
874
+ transform: translateY(-3px);
875
+ box-shadow: 0 6px 16px rgba(76, 167, 96, 0.2);
876
+ border-color: #4ca760;
877
+ }
878
+ .course-feature-item::before { background: linear-gradient(90deg, rgba(76, 167, 96, 0.05) 0%, transparent 100%); }
879
+ .course-feature-item .feature_name { color: #4ca760; margin-bottom: 0px !important;}
880
+ .course-feature-item .feaure_desc::before { content: '▸'; color: #4ca760; }
881
+
882
+ /* Red Theme */
883
+ .course-prereq-item:hover {
884
+ transform: translateY(-3px);
885
+ box-shadow: 0 6px 16px rgba(239, 68, 68, 0.2);
886
+ border-color: #ef4444;
887
+ }
888
+ .course-prereq-item::before { background: linear-gradient(90deg, rgba(239, 68, 68, 0.05) 0%, transparent 100%); }
889
+ .course-prereq-item .feature_name { color: #ef4444; margin-bottom: 0px !important;}
890
+ .course-prereq-item .feaure_desc::before { content: '▸'; color: #ef4444; }
891
+
892
+ .feature_name {
893
+ display: block;
894
+ font-weight: 700;
895
+
896
+ position: relative;
897
+ z-index: 1;
898
+ font-size: 0.95rem;
899
+ }
900
+
901
+ .feaure_desc {
902
+ color: #e4e4e7;
903
+ font-size: 0.80rem;
904
+ line-height: 1.6;
905
+ position: relative;
906
+ z-index: 1;
907
+ padding-left: 18px;
908
+ }
909
+
910
+ .feaure_desc::before {
911
+ position: absolute;
912
+ left: 0;
913
+ font-style: normal;
914
+ font-weight: bold;
915
+ font-size: 1.1rem;
916
+ }
917
+
918
+ /* Instructor Styles */
919
+ .instructor-card {
920
+ display: flex;
921
+ background: #2d2d32;
922
+ border: 1px solid #3a3a40;
923
+ border-radius: 12px;
924
+ padding: 20px;
925
+ gap: 20px;
926
+ align-items: center;
927
+ margin-top: 15px;
928
+ }
929
+ .instructor-card * {
930
+ margin-bottom: 0 !important;
931
+ }
932
+ .instructor-photo {
933
+ flex-shrink: 0;
934
+ }
935
+
936
+ .instructor-photo img {
937
+ width: 120px;
938
+ height: 120px;
939
+ border-radius: 50%; /* Keeps it a circle */
940
+ object-fit: cover; /* Prevents the face from stretching/distorting */
941
+ border: 3px solid #3b82f6;
942
+ display: block; /* Removes any weird spacing below the image */
943
+ }
944
+ .instructor-info h3 {
945
+ font-size: 1.4rem;
946
+ color: white;
947
+ }
948
+
949
+ .instructor-title {
950
+ color: #3b82f6;
951
+ font-weight: 600;
952
+ font-size: 0.95rem;
953
+ text-transform: uppercase;
954
+ }
955
+ .instructor-exp {
956
+ font-size: 0.9rem;
957
+ color: #a1a1aa;
958
+ }
959
+
960
+ .instructor-bio {
961
+ font-size: 0.95rem;
962
+ color: #d1d5db;
963
+ line-height: 1.4;
964
+ }
965
+
966
+ .recommended-courses { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
967
+ .course-tag {
968
+ background: #2d2d32;
969
+ color: #a1a1aa;
970
+ padding: 8px 16px;
971
+ border-radius: 20px;
972
+ font-size: 0.9rem;
973
+ border: 1px solid #3a3a40;
974
+ transition: all 0.2s;
975
+ text-decoration: none;
976
+ cursor: pointer;
977
+ }
978
+ .course-tag:hover { background: #4ca760; color: white; border-color: #4ca760; }
979
+
980
+
981
+
982
+ /* Header Color for Videos Section (Orange) */
983
+ .section-videos h2 {
984
+ color: #f97316;
985
+ border-bottom: 2px solid #3a3a40;
986
+ }
987
+
988
+ /* Video Box Theme */
989
+ .course-video-item {
990
+ background: #2d2d32;
991
+ padding: 15px;
992
+ border-radius: 10px;
993
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
994
+ border: 1px solid #3a3a40;
995
+ position: relative;
996
+ overflow: hidden;
997
+ }
998
+
999
+ .course-video-item::before {
1000
+ content: '';
1001
+ position: absolute;
1002
+ top: 0;
1003
+ left: 0;
1004
+ width: 0;
1005
+ height: 100%;
1006
+ transition: width 0.3s ease;
1007
+ background: linear-gradient(90deg, rgba(249, 115, 22, 0.05) 0%, transparent 100%);
1008
+ }
1009
+
1010
+ .course-video-item:hover {
1011
+ transform: translateY(-3px);
1012
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
1013
+ border-color: #f97316;
1014
+ }
1015
+
1016
+ .course-video-item:hover::before { width: 100%; }
1017
+
1018
+ .course-video-item .feature_name {
1019
+ color: #f97316;
1020
+ margin-top: 15px; /* Adds space between the video and the title */
1021
+ margin-bottom: 0;
1022
+ }
1023
+
1024
+ /* Responsive YouTube iframe wrapper */
1025
+ .video-wrapper {
1026
+ position: relative;
1027
+ padding-bottom: 56.25%; /* Forces 16:9 Aspect Ratio */
1028
+ height: 0;
1029
+ overflow: hidden;
1030
+ border-radius: 6px;
1031
+ background: #1f1f22;
1032
+ z-index: 1; /* Keeps video above the hover gradient */
1033
+ }
1034
+
1035
+ .video-wrapper iframe {
1036
+ position: absolute;
1037
+ top: 0;
1038
+ left: 0;
1039
+ width: 100%;
1040
+ height: 100%;
1041
+ border: 0;
1042
+ }
1043
+
1044
+
1045
+
1046
+
1047
+ @media (max-width: 768px) {
1048
+ .course-widget {padding: 0;}
1049
+ .course-header { flex-direction: column; text-align: center; }
1050
+ .items-grid { grid-template-columns: 1fr; }
1051
+ .instructor-card { flex-direction: column; text-align: center; }
1052
+ }
1053
+ </style>
1054
+
1055
+ <div class="course-container">
1056
+ <div class="course-header">
1057
+ <div class="course-header-image">
1058
+ <img decoding="async" src="https://cloudnativebasecamp.com/wp-content/uploads/2026/02/node_icon_256.png" alt="Node.js and JavaScript Course">
1059
+ </div>
1060
+ <div class="course-header-content">
1061
+ <h1>Node.js and JavaScript From Scratch</h1>
1062
+ <p>This course takes you from absolute beginner to advanced concepts</p>
1063
+ <div class="course-stats">
1064
+ <div class="course-duration">Lessons: 88</div>
1065
+ <div class="course-duration">Duration: ~ 22 hours</div>
1066
+ <div class="course-duration">Study Hours: 40-80 (est.)</div>
1067
+ </div>
1068
+ </div>
1069
+ </div>
1070
+
1071
+ <div class="course-content">
1072
+ <div class="course-section section-features">
1073
+ <h2>What You&#8217;ll Learn</h2>
1074
+ <div class="items-grid">
1075
+ <div class="course-feature-item">
1076
+ <p class="feature_name">JavaScript Fundamentals</p>
1077
+ <p class="feaure_desc">Master core syntax, variables, scopes (var, let, const), operators, and built-in data structures.</p>
1078
+ </div>
1079
+ <div class="course-feature-item">
1080
+ <p class="feature_name">Under the Hood: V8 Engine</p>
1081
+ <p class="feaure_desc">Understand how JavaScript truly runs by exploring the compiler, call stack, heap, and garbage collection.</p>
1082
+ </div>
1083
+ <div class="course-feature-item">
1084
+ <p class="feature_name">Asynchronous Architecture</p>
1085
+ <p class="feaure_desc">Conquer the Event Loop, callbacks, Promises, and Async/Await to write efficient, non-blocking code.</p>
1086
+ </div>
1087
+ <div class="course-feature-item">
1088
+ <p class="feature_name">Advanced JS &#038; OOP</p>
1089
+ <p class="feaure_desc">Dive deep into closures, lexical grammar, hoisting, and implement Object-Oriented Programming principles.</p>
1090
+ </div>
1091
+ <div class="course-feature-item">
1092
+ <p class="feature_name">Node.js Core Modules</p>
1093
+ <p class="feaure_desc">Utilize NPM, modern modules (ESM), EventEmitter, and File System (fs) streams for backend scripting.</p>
1094
+ </div>
1095
+ <div class="course-feature-item">
1096
+ <p class="feature_name">Networking &#038; HTTP Servers</p>
1097
+ <p class="feaure_desc">Build complete HTTP servers and clients from scratch, handle routing, and implement token authorization.</p>
1098
+ </div>
1099
+ </div>
1100
+ </div>
1101
+
1102
+ <div class="course-section section-prereqs">
1103
+ <h2>Prerequisites</h2>
1104
+ <p class="section-desc">In order to start this course you must have these skills:</p>
1105
+ <div class="items-grid">
1106
+ <div class="course-prereq-item">
1107
+ <p class="feature_name">Computer Literacy</p>
1108
+ <p class="feaure_desc">Basic understanding of how to use a computer, manage files, and navigate an operating system.</p>
1109
+ </div>
1110
+ </div>
1111
+
1112
+ </div>
1113
+
1114
+ <div class="course-section section-videos">
1115
+ <h2>Course Previews</h2>
1116
+ <p class="section-desc">Watch free sample lessons from the course:</p>
1117
+ <div class="items-grid">
1118
+
1119
+ <div class="course-video-item">
1120
+ <div class="video-wrapper">
1121
+ <iframe src="https://www.youtube.com/embed/99m60dgDxBI" title="Lesson 09" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
1122
+ </div>
1123
+ <p class="feature_name">Lesson 09</p>
1124
+ </div>
1125
+
1126
+ <div class="course-video-item">
1127
+ <div class="video-wrapper">
1128
+ <iframe src="https://www.youtube.com/embed/lZpgyv87btc" title="Node.js Course Introduction" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
1129
+ </div>
1130
+ <p class="feature_name">Node.js Course Introduction</p>
1131
+ </div>
1132
+
1133
+ </div>
1134
+ </div>
1135
+
1136
+ <div class="course-section section-instructor">
1137
+ <h2>Your Instructor</h2>
1138
+ <div class="instructor-card">
1139
+ <div class="instructor-photo">
1140
+ <img decoding="async" src="https://cloudnativebasecamp.com/wp-content/uploads/2025/08/2022-02_square_02.jpg" alt="Ahmed Metwally">
1141
+ </div>
1142
+ <div class="instructor-info">
1143
+ <h3>Ahmed Metwally</h3>
1144
+ <p class="instructor-title">Software Industry Expert</p>
1145
+ <p class="instructor-exp">24+ Years of Experience</p>
1146
+ <p class="instructor-bio">I am on a mission to elevate the efficiency of the software industry in the Arab world by developing highly skilled and knowledgeable software engineers.<br>
1147
+ My courses are carefully designed to equip them with the essential expertise needed to excel in the market.</p>
1148
+ </div>
1149
+ </div>
1150
+ </div>
1151
+ </div>
1152
+ </div>
1153
+ </div>
1154
+ </div>
1155
+
1156
+
1157
+ </div> <!--/.ld-tabs-content-->
1158
+
1159
+ </div> <!--/.ld-tabs-->
1160
+ <div class="learndash-wrapper learndash-wrap learndash-shortcode-wrap learndash-shortcode-wrap-course_content-4467_4467_8211"><div class="learndash user_has_access" id="learndash_post_4467"> <div class="learndash-wrapper">
1161
+ <div class="ld-item-list ld-lesson-list ld-course-content-4467" data-shortcode_instance="{&quot;course_id&quot;:4467,&quot;post_id&quot;:4467,&quot;group_id&quot;:0,&quot;paged&quot;:1,&quot;num&quot;:100,&quot;wrapper&quot;:true,&quot;user_id&quot;:8211}">
1162
+ <div class="ld-section-heading">
1163
+
1164
+
1165
+ <h2>
1166
+ Lessons: </h2>
1167
+
1168
+
1169
+ <div class="ld-item-list-actions" data-ld-expand-list="true">
1170
+
1171
+
1172
+
1173
+ </div> <!--/.ld-item-list-actions-->
1174
+ </div> <!--/.ld-section-heading-->
1175
+
1176
+
1177
+ <div class="ld-item-list-items ld-item-list-4467" id="ld-item-list-4467" data-ld-expand-id="ld-item-list-4467" data-ld-expand-list="true">
1178
+
1179
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4474 is_not_sample learndash-complete" id="ld-expand-4474" data-ld-expand-id="ld-expand-4474" >
1180
+ <div class="ld-item-list-item-preview">
1181
+
1182
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/01-prepare-development-environment/">
1183
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1184
+ 01 &#8211; Prepare Development Environment<span> -> </span>
1185
+ </div> <!--/.ld-item-title-->
1186
+ </a>
1187
+
1188
+
1189
+ <div class="ld-item-details">
1190
+ </div> <!--/.ld-item-details-->
1191
+
1192
+
1193
+ </div> <!--/.ld-item-list-item-preview-->
1194
+ </div> <!--/.ld-item-list-item-->
1195
+
1196
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4476 is_not_sample learndash-complete" id="ld-expand-4476" data-ld-expand-id="ld-expand-4476" >
1197
+ <div class="ld-item-list-item-preview">
1198
+
1199
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/02-node-js-application-files-organization/">
1200
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1201
+ 02 &#8211; Node.js application files organization<span> -> </span>
1202
+ </div> <!--/.ld-item-title-->
1203
+ </a>
1204
+
1205
+
1206
+ <div class="ld-item-details">
1207
+ </div> <!--/.ld-item-details-->
1208
+
1209
+
1210
+ </div> <!--/.ld-item-list-item-preview-->
1211
+ </div> <!--/.ld-item-list-item-->
1212
+
1213
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4478 is_not_sample learndash-complete" id="ld-expand-4478" data-ld-expand-id="ld-expand-4478" >
1214
+ <div class="ld-item-list-item-preview">
1215
+
1216
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/03-variables-introduction/">
1217
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1218
+ 03 &#8211; Variables<span> -> </span>
1219
+ </div> <!--/.ld-item-title-->
1220
+ </a>
1221
+
1222
+
1223
+ <div class="ld-item-details">
1224
+ </div> <!--/.ld-item-details-->
1225
+
1226
+
1227
+ </div> <!--/.ld-item-list-item-preview-->
1228
+ </div> <!--/.ld-item-list-item-->
1229
+
1230
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4480 is_not_sample learndash-complete" id="ld-expand-4480" data-ld-expand-id="ld-expand-4480" >
1231
+ <div class="ld-item-list-item-preview">
1232
+
1233
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/04-variables-hands-on/">
1234
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1235
+ 04 &#8211; Variables &#8211; hands-on<span> -> </span>
1236
+ </div> <!--/.ld-item-title-->
1237
+ </a>
1238
+
1239
+
1240
+ <div class="ld-item-details">
1241
+ </div> <!--/.ld-item-details-->
1242
+
1243
+
1244
+ </div> <!--/.ld-item-list-item-preview-->
1245
+ </div> <!--/.ld-item-list-item-->
1246
+
1247
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4505 is_not_sample learndash-complete" id="ld-expand-4505" data-ld-expand-id="ld-expand-4505" >
1248
+ <div class="ld-item-list-item-preview">
1249
+
1250
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/05-operators-arithmetic/">
1251
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1252
+ 05 &#8211; Operators &#8211; Arithmetic<span> -> </span>
1253
+ </div> <!--/.ld-item-title-->
1254
+ </a>
1255
+
1256
+
1257
+ <div class="ld-item-details">
1258
+ </div> <!--/.ld-item-details-->
1259
+
1260
+
1261
+ </div> <!--/.ld-item-list-item-preview-->
1262
+ </div> <!--/.ld-item-list-item-->
1263
+
1264
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4524 is_not_sample learndash-complete" id="ld-expand-4524" data-ld-expand-id="ld-expand-4524" >
1265
+ <div class="ld-item-list-item-preview">
1266
+
1267
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/06-operators-arithmetic-priorities-order-of-operations/">
1268
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1269
+ 06 &#8211; Operators &#8211; Arithmetic &#8211; Priorities (order of operations)<span> -> </span>
1270
+ </div> <!--/.ld-item-title-->
1271
+ </a>
1272
+
1273
+
1274
+ <div class="ld-item-details">
1275
+ </div> <!--/.ld-item-details-->
1276
+
1277
+
1278
+ </div> <!--/.ld-item-list-item-preview-->
1279
+ </div> <!--/.ld-item-list-item-->
1280
+
1281
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4528 is_not_sample learndash-complete" id="ld-expand-4528" data-ld-expand-id="ld-expand-4528" >
1282
+ <div class="ld-item-list-item-preview">
1283
+
1284
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/07-operators-arithmetic-hands-on/">
1285
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1286
+ 07 &#8211; Operators &#8211; Arithmetic &#8211; hands-on<span> -> </span>
1287
+ </div> <!--/.ld-item-title-->
1288
+ </a>
1289
+
1290
+
1291
+ <div class="ld-item-details">
1292
+ </div> <!--/.ld-item-details-->
1293
+
1294
+
1295
+ </div> <!--/.ld-item-list-item-preview-->
1296
+ </div> <!--/.ld-item-list-item-->
1297
+
1298
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4534 is_not_sample learndash-complete" id="ld-expand-4534" data-ld-expand-id="ld-expand-4534" >
1299
+ <div class="ld-item-list-item-preview">
1300
+
1301
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/08-operators-assignments/">
1302
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1303
+ 08 &#8211; Operators &#8211; Assignments<span> -> </span>
1304
+ </div> <!--/.ld-item-title-->
1305
+ </a>
1306
+
1307
+
1308
+ <div class="ld-item-details">
1309
+ </div> <!--/.ld-item-details-->
1310
+
1311
+
1312
+ </div> <!--/.ld-item-list-item-preview-->
1313
+ </div> <!--/.ld-item-list-item-->
1314
+
1315
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4547 is_not_sample learndash-complete" id="ld-expand-4547" data-ld-expand-id="ld-expand-4547" >
1316
+ <div class="ld-item-list-item-preview">
1317
+
1318
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/exercises-01/">
1319
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1320
+ Exercises &#8211; 01<span> -> </span>
1321
+ </div> <!--/.ld-item-title-->
1322
+ </a>
1323
+
1324
+
1325
+ <div class="ld-item-details">
1326
+ </div> <!--/.ld-item-details-->
1327
+
1328
+
1329
+ </div> <!--/.ld-item-list-item-preview-->
1330
+ </div> <!--/.ld-item-list-item-->
1331
+
1332
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4568 is_not_sample learndash-complete" id="ld-expand-4568" data-ld-expand-id="ld-expand-4568" >
1333
+ <div class="ld-item-list-item-preview">
1334
+
1335
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/09-operators-comparison/">
1336
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1337
+ 09 &#8211; Operators &#8211; Comparison<span> -> </span>
1338
+ </div> <!--/.ld-item-title-->
1339
+ </a>
1340
+
1341
+
1342
+ <div class="ld-item-details">
1343
+ </div> <!--/.ld-item-details-->
1344
+
1345
+
1346
+ </div> <!--/.ld-item-list-item-preview-->
1347
+ </div> <!--/.ld-item-list-item-->
1348
+
1349
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4580 is_not_sample learndash-complete" id="ld-expand-4580" data-ld-expand-id="ld-expand-4580" >
1350
+ <div class="ld-item-list-item-preview">
1351
+
1352
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/exercises-02/">
1353
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1354
+ Exercises &#8211; 02<span> -> </span>
1355
+ </div> <!--/.ld-item-title-->
1356
+ </a>
1357
+
1358
+
1359
+ <div class="ld-item-details">
1360
+ </div> <!--/.ld-item-details-->
1361
+
1362
+
1363
+ </div> <!--/.ld-item-list-item-preview-->
1364
+ </div> <!--/.ld-item-list-item-->
1365
+
1366
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4592 is_not_sample learndash-complete" id="ld-expand-4592" data-ld-expand-id="ld-expand-4592" >
1367
+ <div class="ld-item-list-item-preview">
1368
+
1369
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/10-operators-logical/">
1370
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1371
+ 10 &#8211; Operators &#8211; Logical<span> -> </span>
1372
+ </div> <!--/.ld-item-title-->
1373
+ </a>
1374
+
1375
+
1376
+ <div class="ld-item-details">
1377
+ </div> <!--/.ld-item-details-->
1378
+
1379
+
1380
+ </div> <!--/.ld-item-list-item-preview-->
1381
+ </div> <!--/.ld-item-list-item-->
1382
+
1383
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4601 is_not_sample learndash-complete" id="ld-expand-4601" data-ld-expand-id="ld-expand-4601" >
1384
+ <div class="ld-item-list-item-preview">
1385
+
1386
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/11-statements-if/">
1387
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1388
+ 11 &#8211; Statements &#8211; if<span> -> </span>
1389
+ </div> <!--/.ld-item-title-->
1390
+ </a>
1391
+
1392
+
1393
+ <div class="ld-item-details">
1394
+ </div> <!--/.ld-item-details-->
1395
+
1396
+
1397
+ </div> <!--/.ld-item-list-item-preview-->
1398
+ </div> <!--/.ld-item-list-item-->
1399
+
1400
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4623 is_not_sample learndash-complete" id="ld-expand-4623" data-ld-expand-id="ld-expand-4623" >
1401
+ <div class="ld-item-list-item-preview">
1402
+
1403
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/12-scopes-const-let/">
1404
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1405
+ 12 &#8211; Scopes &#8211; const &#8211; let<span> -> </span>
1406
+ </div> <!--/.ld-item-title-->
1407
+ </a>
1408
+
1409
+
1410
+ <div class="ld-item-details">
1411
+ </div> <!--/.ld-item-details-->
1412
+
1413
+
1414
+ </div> <!--/.ld-item-list-item-preview-->
1415
+ </div> <!--/.ld-item-list-item-->
1416
+
1417
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4625 is_not_sample learndash-complete" id="ld-expand-4625" data-ld-expand-id="ld-expand-4625" >
1418
+ <div class="ld-item-list-item-preview">
1419
+
1420
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/13-var-global-scope-accessibility/">
1421
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1422
+ 13 &#8211; var global scope accessibility<span> -> </span>
1423
+ </div> <!--/.ld-item-title-->
1424
+ </a>
1425
+
1426
+
1427
+ <div class="ld-item-details">
1428
+ </div> <!--/.ld-item-details-->
1429
+
1430
+
1431
+ </div> <!--/.ld-item-list-item-preview-->
1432
+ </div> <!--/.ld-item-list-item-->
1433
+
1434
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4627 is_not_sample learndash-complete" id="ld-expand-4627" data-ld-expand-id="ld-expand-4627" >
1435
+ <div class="ld-item-list-item-preview">
1436
+
1437
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/14-var-block-and-function-scope-accessibility/">
1438
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1439
+ 14 &#8211; var block and function scope accessibility<span> -> </span>
1440
+ </div> <!--/.ld-item-title-->
1441
+ </a>
1442
+
1443
+
1444
+ <div class="ld-item-details">
1445
+ </div> <!--/.ld-item-details-->
1446
+
1447
+
1448
+ </div> <!--/.ld-item-list-item-preview-->
1449
+ </div> <!--/.ld-item-list-item-->
1450
+
1451
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4629 is_not_sample learndash-complete" id="ld-expand-4629" data-ld-expand-id="ld-expand-4629" >
1452
+ <div class="ld-item-list-item-preview">
1453
+
1454
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/15-const-scopes-accessibility/">
1455
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1456
+ 15 &#8211; const scopes accessibility<span> -> </span>
1457
+ </div> <!--/.ld-item-title-->
1458
+ </a>
1459
+
1460
+
1461
+ <div class="ld-item-details">
1462
+ </div> <!--/.ld-item-details-->
1463
+
1464
+
1465
+ </div> <!--/.ld-item-list-item-preview-->
1466
+ </div> <!--/.ld-item-list-item-->
1467
+
1468
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4632 is_not_sample learndash-complete" id="ld-expand-4632" data-ld-expand-id="ld-expand-4632" >
1469
+ <div class="ld-item-list-item-preview">
1470
+
1471
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/16-let-scopes-accessibility/">
1472
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1473
+ 16 &#8211; let scopes accessibility<span> -> </span>
1474
+ </div> <!--/.ld-item-title-->
1475
+ </a>
1476
+
1477
+
1478
+ <div class="ld-item-details">
1479
+ </div> <!--/.ld-item-details-->
1480
+
1481
+
1482
+ </div> <!--/.ld-item-list-item-preview-->
1483
+ </div> <!--/.ld-item-list-item-->
1484
+
1485
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4635 is_not_sample learndash-complete" id="ld-expand-4635" data-ld-expand-id="ld-expand-4635" >
1486
+ <div class="ld-item-list-item-preview">
1487
+
1488
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/17-statements-for/">
1489
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1490
+ 17 &#8211; Statements &#8211; for<span> -> </span>
1491
+ </div> <!--/.ld-item-title-->
1492
+ </a>
1493
+
1494
+
1495
+ <div class="ld-item-details">
1496
+ </div> <!--/.ld-item-details-->
1497
+
1498
+
1499
+ </div> <!--/.ld-item-list-item-preview-->
1500
+ </div> <!--/.ld-item-list-item-->
1501
+
1502
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4697 is_not_sample learndash-complete" id="ld-expand-4697" data-ld-expand-id="ld-expand-4697" >
1503
+ <div class="ld-item-list-item-preview">
1504
+
1505
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/18-hands-on-exercises/">
1506
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1507
+ 18 &#8211; Hands-on Exercises<span> -> </span>
1508
+ </div> <!--/.ld-item-title-->
1509
+ </a>
1510
+
1511
+
1512
+ <div class="ld-item-details">
1513
+ </div> <!--/.ld-item-details-->
1514
+
1515
+
1516
+ </div> <!--/.ld-item-list-item-preview-->
1517
+ </div> <!--/.ld-item-list-item-->
1518
+
1519
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4699 is_not_sample learndash-complete" id="ld-expand-4699" data-ld-expand-id="ld-expand-4699" >
1520
+ <div class="ld-item-list-item-preview">
1521
+
1522
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/19-hoisting/">
1523
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1524
+ 19 &#8211; Hoisting<span> -> </span>
1525
+ </div> <!--/.ld-item-title-->
1526
+ </a>
1527
+
1528
+
1529
+ <div class="ld-item-details">
1530
+ </div> <!--/.ld-item-details-->
1531
+
1532
+
1533
+ </div> <!--/.ld-item-list-item-preview-->
1534
+ </div> <!--/.ld-item-list-item-->
1535
+
1536
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4701 is_not_sample learndash-complete" id="ld-expand-4701" data-ld-expand-id="ld-expand-4701" >
1537
+ <div class="ld-item-list-item-preview">
1538
+
1539
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/20-lexical-grammar/">
1540
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1541
+ 20 &#8211; Lexical Grammar<span> -> </span>
1542
+ </div> <!--/.ld-item-title-->
1543
+ </a>
1544
+
1545
+
1546
+ <div class="ld-item-details">
1547
+ </div> <!--/.ld-item-details-->
1548
+
1549
+
1550
+ </div> <!--/.ld-item-list-item-preview-->
1551
+ </div> <!--/.ld-item-list-item-->
1552
+
1553
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4928 is_not_sample learndash-complete" id="ld-expand-4928" data-ld-expand-id="ld-expand-4928" >
1554
+ <div class="ld-item-list-item-preview">
1555
+
1556
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/21-array-01-introduction/">
1557
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1558
+ 21 &#8211; Array 01 &#8211; Introduction<span> -> </span>
1559
+ </div> <!--/.ld-item-title-->
1560
+ </a>
1561
+
1562
+
1563
+ <div class="ld-item-details">
1564
+ </div> <!--/.ld-item-details-->
1565
+
1566
+
1567
+ </div> <!--/.ld-item-list-item-preview-->
1568
+ </div> <!--/.ld-item-list-item-->
1569
+
1570
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4930 is_not_sample learndash-complete" id="ld-expand-4930" data-ld-expand-id="ld-expand-4930" >
1571
+ <div class="ld-item-list-item-preview">
1572
+
1573
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/22-regular-function/">
1574
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1575
+ 22 &#8211; Regular Function<span> -> </span>
1576
+ </div> <!--/.ld-item-title-->
1577
+ </a>
1578
+
1579
+
1580
+ <div class="ld-item-details">
1581
+ </div> <!--/.ld-item-details-->
1582
+
1583
+
1584
+ </div> <!--/.ld-item-list-item-preview-->
1585
+ </div> <!--/.ld-item-list-item-->
1586
+
1587
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4932 is_not_sample learndash-complete" id="ld-expand-4932" data-ld-expand-id="ld-expand-4932" >
1588
+ <div class="ld-item-list-item-preview">
1589
+
1590
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/23-array-02-some-built-in-functions/">
1591
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1592
+ 23 &#8211; Array 02 &#8211; Some Built-in Functions<span> -> </span>
1593
+ </div> <!--/.ld-item-title-->
1594
+ </a>
1595
+
1596
+
1597
+ <div class="ld-item-details">
1598
+ </div> <!--/.ld-item-details-->
1599
+
1600
+
1601
+ </div> <!--/.ld-item-list-item-preview-->
1602
+ </div> <!--/.ld-item-list-item-->
1603
+
1604
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-4934 is_not_sample learndash-complete" id="ld-expand-4934" data-ld-expand-id="ld-expand-4934" >
1605
+ <div class="ld-item-list-item-preview">
1606
+
1607
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/24-object/">
1608
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1609
+ 24 &#8211; Object<span> -> </span>
1610
+ </div> <!--/.ld-item-title-->
1611
+ </a>
1612
+
1613
+
1614
+ <div class="ld-item-details">
1615
+ </div> <!--/.ld-item-details-->
1616
+
1617
+
1618
+ </div> <!--/.ld-item-list-item-preview-->
1619
+ </div> <!--/.ld-item-list-item-->
1620
+
1621
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6901 is_not_sample learndash-complete" id="ld-expand-6901" data-ld-expand-id="ld-expand-6901" >
1622
+ <div class="ld-item-list-item-preview">
1623
+
1624
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/25-object-constructor-function/">
1625
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1626
+ 25 &#8211; Object &#8211; Constructor Function<span> -> </span>
1627
+ </div> <!--/.ld-item-title-->
1628
+ </a>
1629
+
1630
+
1631
+ <div class="ld-item-details">
1632
+ </div> <!--/.ld-item-details-->
1633
+
1634
+
1635
+ </div> <!--/.ld-item-list-item-preview-->
1636
+ </div> <!--/.ld-item-list-item-->
1637
+
1638
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6903 is_not_sample learndash-complete" id="ld-expand-6903" data-ld-expand-id="ld-expand-6903" >
1639
+ <div class="ld-item-list-item-preview">
1640
+
1641
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/26-modules-commonjs-cjs/">
1642
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1643
+ 26 &#8211; Modules &#8211; CommonJS (CJS)<span> -> </span>
1644
+ </div> <!--/.ld-item-title-->
1645
+ </a>
1646
+
1647
+
1648
+ <div class="ld-item-details">
1649
+ </div> <!--/.ld-item-details-->
1650
+
1651
+
1652
+ </div> <!--/.ld-item-list-item-preview-->
1653
+ </div> <!--/.ld-item-list-item-->
1654
+
1655
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6922 is_not_sample learndash-complete" id="ld-expand-6922" data-ld-expand-id="ld-expand-6922" >
1656
+ <div class="ld-item-list-item-preview">
1657
+
1658
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/27-primitive-data-types-undefined-null/">
1659
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1660
+ 27 &#8211; Primitive Data Types &#8211; undefined, null<span> -> </span>
1661
+ </div> <!--/.ld-item-title-->
1662
+ </a>
1663
+
1664
+
1665
+ <div class="ld-item-details">
1666
+ </div> <!--/.ld-item-details-->
1667
+
1668
+
1669
+ </div> <!--/.ld-item-list-item-preview-->
1670
+ </div> <!--/.ld-item-list-item-->
1671
+
1672
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6956 is_not_sample learndash-complete" id="ld-expand-6956" data-ld-expand-id="ld-expand-6956" >
1673
+ <div class="ld-item-list-item-preview">
1674
+
1675
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/28-data-types-numbers-ieee-754/">
1676
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1677
+ 28 &#8211; Data Types &#8211; numbers &#8211; IEEE 754<span> -> </span>
1678
+ </div> <!--/.ld-item-title-->
1679
+ </a>
1680
+
1681
+
1682
+ <div class="ld-item-details">
1683
+ </div> <!--/.ld-item-details-->
1684
+
1685
+
1686
+ </div> <!--/.ld-item-list-item-preview-->
1687
+ </div> <!--/.ld-item-list-item-->
1688
+
1689
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6971 is_not_sample learndash-complete" id="ld-expand-6971" data-ld-expand-id="ld-expand-6971" >
1690
+ <div class="ld-item-list-item-preview">
1691
+
1692
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/29-numbers-coercion-basics/">
1693
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1694
+ 29 &#8211; Numbers &#8211; Coercion &#8211; basics<span> -> </span>
1695
+ </div> <!--/.ld-item-title-->
1696
+ </a>
1697
+
1698
+
1699
+ <div class="ld-item-details">
1700
+ </div> <!--/.ld-item-details-->
1701
+
1702
+
1703
+ </div> <!--/.ld-item-list-item-preview-->
1704
+ </div> <!--/.ld-item-list-item-->
1705
+
1706
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6973 is_not_sample learndash-complete" id="ld-expand-6973" data-ld-expand-id="ld-expand-6973" >
1707
+ <div class="ld-item-list-item-preview">
1708
+
1709
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/30-numbers-number-object/">
1710
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1711
+ 30 &#8211; Numbers &#8211; Number object<span> -> </span>
1712
+ </div> <!--/.ld-item-title-->
1713
+ </a>
1714
+
1715
+
1716
+ <div class="ld-item-details">
1717
+ </div> <!--/.ld-item-details-->
1718
+
1719
+
1720
+ </div> <!--/.ld-item-list-item-preview-->
1721
+ </div> <!--/.ld-item-list-item-->
1722
+
1723
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-6975 is_not_sample learndash-complete" id="ld-expand-6975" data-ld-expand-id="ld-expand-6975" >
1724
+ <div class="ld-item-list-item-preview">
1725
+
1726
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/31-numbers-math-object/">
1727
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1728
+ 31 &#8211; Numbers &#8211; Math object<span> -> </span>
1729
+ </div> <!--/.ld-item-title-->
1730
+ </a>
1731
+
1732
+
1733
+ <div class="ld-item-details">
1734
+ </div> <!--/.ld-item-details-->
1735
+
1736
+
1737
+ </div> <!--/.ld-item-list-item-preview-->
1738
+ </div> <!--/.ld-item-list-item-->
1739
+
1740
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7001 is_not_sample learndash-complete" id="ld-expand-7001" data-ld-expand-id="ld-expand-7001" >
1741
+ <div class="ld-item-list-item-preview">
1742
+
1743
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/32-create-and-use-your-first-module/">
1744
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1745
+ 32 &#8211; Create and use your first module.<span> -> </span>
1746
+ </div> <!--/.ld-item-title-->
1747
+ </a>
1748
+
1749
+
1750
+ <div class="ld-item-details">
1751
+ </div> <!--/.ld-item-details-->
1752
+
1753
+
1754
+ </div> <!--/.ld-item-list-item-preview-->
1755
+ </div> <!--/.ld-item-list-item-->
1756
+
1757
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7008 is_not_sample learndash-complete" id="ld-expand-7008" data-ld-expand-id="ld-expand-7008" >
1758
+ <div class="ld-item-list-item-preview">
1759
+
1760
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/33-the-compiler-and-the-interpreter/">
1761
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1762
+ 33 &#8211; The Compiler and the Interpreter<span> -> </span>
1763
+ </div> <!--/.ld-item-title-->
1764
+ </a>
1765
+
1766
+
1767
+ <div class="ld-item-details">
1768
+ </div> <!--/.ld-item-details-->
1769
+
1770
+
1771
+ </div> <!--/.ld-item-list-item-preview-->
1772
+ </div> <!--/.ld-item-list-item-->
1773
+
1774
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7011 is_not_sample learndash-complete" id="ld-expand-7011" data-ld-expand-id="ld-expand-7011" >
1775
+ <div class="ld-item-list-item-preview">
1776
+
1777
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/34-the-tale-of-javascript-and-ecmascript/">
1778
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1779
+ 34 &#8211; The tale of JavaScript and ECMAscript<span> -> </span>
1780
+ </div> <!--/.ld-item-title-->
1781
+ </a>
1782
+
1783
+
1784
+ <div class="ld-item-details">
1785
+ </div> <!--/.ld-item-details-->
1786
+
1787
+
1788
+ </div> <!--/.ld-item-list-item-preview-->
1789
+ </div> <!--/.ld-item-list-item-->
1790
+
1791
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7031 is_not_sample learndash-complete" id="ld-expand-7031" data-ld-expand-id="ld-expand-7031" >
1792
+ <div class="ld-item-list-item-preview">
1793
+
1794
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/35-v8-engine/">
1795
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1796
+ 35 &#8211; V8 engine<span> -> </span>
1797
+ </div> <!--/.ld-item-title-->
1798
+ </a>
1799
+
1800
+
1801
+ <div class="ld-item-details">
1802
+ </div> <!--/.ld-item-details-->
1803
+
1804
+
1805
+ </div> <!--/.ld-item-list-item-preview-->
1806
+ </div> <!--/.ld-item-list-item-->
1807
+
1808
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7204 is_not_sample learndash-complete" id="ld-expand-7204" data-ld-expand-id="ld-expand-7204" >
1809
+ <div class="ld-item-list-item-preview">
1810
+
1811
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/36-strings-utf-16/">
1812
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1813
+ 36 &#8211; Strings &#8211; UTF-16<span> -> </span>
1814
+ </div> <!--/.ld-item-title-->
1815
+ </a>
1816
+
1817
+
1818
+ <div class="ld-item-details">
1819
+ </div> <!--/.ld-item-details-->
1820
+
1821
+
1822
+ </div> <!--/.ld-item-list-item-preview-->
1823
+ </div> <!--/.ld-item-list-item-->
1824
+
1825
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7206 is_not_sample learndash-complete" id="ld-expand-7206" data-ld-expand-id="ld-expand-7206" >
1826
+ <div class="ld-item-list-item-preview">
1827
+
1828
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/37-strings-important-functions-part-01/">
1829
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1830
+ 37 &#8211; Strings &#8211; important functions &#8211; part 01<span> -> </span>
1831
+ </div> <!--/.ld-item-title-->
1832
+ </a>
1833
+
1834
+
1835
+ <div class="ld-item-details">
1836
+ </div> <!--/.ld-item-details-->
1837
+
1838
+
1839
+ </div> <!--/.ld-item-list-item-preview-->
1840
+ </div> <!--/.ld-item-list-item-->
1841
+
1842
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7208 is_not_sample learndash-complete" id="ld-expand-7208" data-ld-expand-id="ld-expand-7208" >
1843
+ <div class="ld-item-list-item-preview">
1844
+
1845
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/38-strings-important-functions-part-02/">
1846
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1847
+ 38 &#8211; Strings &#8211; important functions &#8211; part 02<span> -> </span>
1848
+ </div> <!--/.ld-item-title-->
1849
+ </a>
1850
+
1851
+
1852
+ <div class="ld-item-details">
1853
+ </div> <!--/.ld-item-details-->
1854
+
1855
+
1856
+ </div> <!--/.ld-item-list-item-preview-->
1857
+ </div> <!--/.ld-item-list-item-->
1858
+
1859
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7210 is_not_sample learndash-complete" id="ld-expand-7210" data-ld-expand-id="ld-expand-7210" >
1860
+ <div class="ld-item-list-item-preview">
1861
+
1862
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/39-strings-template-literals/">
1863
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1864
+ 39 &#8211; Strings &#8211; Template Literals<span> -> </span>
1865
+ </div> <!--/.ld-item-title-->
1866
+ </a>
1867
+
1868
+
1869
+ <div class="ld-item-details">
1870
+ </div> <!--/.ld-item-details-->
1871
+
1872
+
1873
+ </div> <!--/.ld-item-list-item-preview-->
1874
+ </div> <!--/.ld-item-list-item-->
1875
+
1876
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7227 is_not_sample learndash-complete" id="ld-expand-7227" data-ld-expand-id="ld-expand-7227" >
1877
+ <div class="ld-item-list-item-preview">
1878
+
1879
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/40-strings-task-html-scraping/">
1880
+ <div class="ld-status-icon ld-status-complete ld-secondary-background"><span class="ld-icon-checkmark ld-icon"></span></div> <div class="ld-item-title">
1881
+ 40 &#8211; Strings &#8211; Task &#8211; HTML scraping<span> -> </span>
1882
+ </div> <!--/.ld-item-title-->
1883
+ </a>
1884
+
1885
+
1886
+ <div class="ld-item-details">
1887
+ </div> <!--/.ld-item-details-->
1888
+
1889
+
1890
+ </div> <!--/.ld-item-list-item-preview-->
1891
+ </div> <!--/.ld-item-list-item-->
1892
+
1893
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7373 is_not_sample learndash-incomplete" id="ld-expand-7373" data-ld-expand-id="ld-expand-7373" >
1894
+ <div class="ld-item-list-item-preview">
1895
+
1896
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/41-npm-install-and-publish-packages/">
1897
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1898
+ 41 &#8211; NPM &#8211; install and publish packages<span> -> </span>
1899
+ </div> <!--/.ld-item-title-->
1900
+ </a>
1901
+
1902
+
1903
+ <div class="ld-item-details">
1904
+ </div> <!--/.ld-item-details-->
1905
+
1906
+
1907
+ </div> <!--/.ld-item-list-item-preview-->
1908
+ </div> <!--/.ld-item-list-item-->
1909
+
1910
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7375 is_not_sample learndash-incomplete" id="ld-expand-7375" data-ld-expand-id="ld-expand-7375" >
1911
+ <div class="ld-item-list-item-preview">
1912
+
1913
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/42-modules-ecmascript-modules-esm/">
1914
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1915
+ 42 &#8211; Modules &#8211; ECMAScript Modules (ESM)<span> -> </span>
1916
+ </div> <!--/.ld-item-title-->
1917
+ </a>
1918
+
1919
+
1920
+ <div class="ld-item-details">
1921
+ </div> <!--/.ld-item-details-->
1922
+
1923
+
1924
+ </div> <!--/.ld-item-list-item-preview-->
1925
+ </div> <!--/.ld-item-list-item-->
1926
+
1927
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7377 is_not_sample learndash-incomplete" id="ld-expand-7377" data-ld-expand-id="ld-expand-7377" >
1928
+ <div class="ld-item-list-item-preview">
1929
+
1930
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/43-dates-unix-epoch-iso-8601/">
1931
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1932
+ 43 &#8211; Dates &#8211; Unix Epoch &#8211; ISO 8601<span> -> </span>
1933
+ </div> <!--/.ld-item-title-->
1934
+ </a>
1935
+
1936
+
1937
+ <div class="ld-item-details">
1938
+ </div> <!--/.ld-item-details-->
1939
+
1940
+
1941
+ </div> <!--/.ld-item-list-item-preview-->
1942
+ </div> <!--/.ld-item-list-item-->
1943
+
1944
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7379 is_not_sample learndash-incomplete" id="ld-expand-7379" data-ld-expand-id="ld-expand-7379" >
1945
+ <div class="ld-item-list-item-preview">
1946
+
1947
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/44-dates-javascript-date-object/">
1948
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1949
+ 44 &#8211; Dates &#8211; JavaScript Date Object<span> -> </span>
1950
+ </div> <!--/.ld-item-title-->
1951
+ </a>
1952
+
1953
+
1954
+ <div class="ld-item-details">
1955
+ </div> <!--/.ld-item-details-->
1956
+
1957
+
1958
+ </div> <!--/.ld-item-list-item-preview-->
1959
+ </div> <!--/.ld-item-list-item-->
1960
+
1961
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7381 is_not_sample learndash-incomplete" id="ld-expand-7381" data-ld-expand-id="ld-expand-7381" >
1962
+ <div class="ld-item-list-item-preview">
1963
+
1964
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/45-dates-luxon-module/">
1965
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1966
+ 45 &#8211; Dates &#8211; Luxon module<span> -> </span>
1967
+ </div> <!--/.ld-item-title-->
1968
+ </a>
1969
+
1970
+
1971
+ <div class="ld-item-details">
1972
+ </div> <!--/.ld-item-details-->
1973
+
1974
+
1975
+ </div> <!--/.ld-item-list-item-preview-->
1976
+ </div> <!--/.ld-item-list-item-->
1977
+
1978
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7390 is_not_sample learndash-incomplete" id="ld-expand-7390" data-ld-expand-id="ld-expand-7390" >
1979
+ <div class="ld-item-list-item-preview">
1980
+
1981
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/46-hands-on-exercise-02-foreach-ternary-operator/">
1982
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
1983
+ 46 &#8211; Hands-on Exercise 02 &#8211; forEach &#8211; Ternary Operator<span> -> </span>
1984
+ </div> <!--/.ld-item-title-->
1985
+ </a>
1986
+
1987
+
1988
+ <div class="ld-item-details">
1989
+ </div> <!--/.ld-item-details-->
1990
+
1991
+
1992
+ </div> <!--/.ld-item-list-item-preview-->
1993
+ </div> <!--/.ld-item-list-item-->
1994
+
1995
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7394 is_not_sample learndash-incomplete" id="ld-expand-7394" data-ld-expand-id="ld-expand-7394" >
1996
+ <div class="ld-item-list-item-preview">
1997
+
1998
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/47-statements-while/">
1999
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2000
+ 47 &#8211; Statements &#8211; While<span> -> </span>
2001
+ </div> <!--/.ld-item-title-->
2002
+ </a>
2003
+
2004
+
2005
+ <div class="ld-item-details">
2006
+ </div> <!--/.ld-item-details-->
2007
+
2008
+
2009
+ </div> <!--/.ld-item-list-item-preview-->
2010
+ </div> <!--/.ld-item-list-item-->
2011
+
2012
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7446 is_not_sample learndash-incomplete" id="ld-expand-7446" data-ld-expand-id="ld-expand-7446" >
2013
+ <div class="ld-item-list-item-preview">
2014
+
2015
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/48-asynchronous-event-loop-callback-nexttick/">
2016
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2017
+ 48 &#8211; Asynchronous &#8211; Event Loop &#8211; Callback &#8211; nextTick<span> -> </span>
2018
+ </div> <!--/.ld-item-title-->
2019
+ </a>
2020
+
2021
+
2022
+ <div class="ld-item-details">
2023
+ </div> <!--/.ld-item-details-->
2024
+
2025
+
2026
+ </div> <!--/.ld-item-list-item-preview-->
2027
+ </div> <!--/.ld-item-list-item-->
2028
+
2029
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7448 is_not_sample learndash-incomplete" id="ld-expand-7448" data-ld-expand-id="ld-expand-7448" >
2030
+ <div class="ld-item-list-item-preview">
2031
+
2032
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/49-asynchronous-event-loop-queues-callbacks-priorities/">
2033
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2034
+ 49 &#8211; Asynchronous &#8211; Event Loop Queues &#8211; Callbacks Priorities<span> -> </span>
2035
+ </div> <!--/.ld-item-title-->
2036
+ </a>
2037
+
2038
+
2039
+ <div class="ld-item-details">
2040
+ </div> <!--/.ld-item-details-->
2041
+
2042
+
2043
+ </div> <!--/.ld-item-list-item-preview-->
2044
+ </div> <!--/.ld-item-list-item-->
2045
+
2046
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7450 is_not_sample learndash-incomplete" id="ld-expand-7450" data-ld-expand-id="ld-expand-7450" >
2047
+ <div class="ld-item-list-item-preview">
2048
+
2049
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/50-asynchronous-callbacks-priorities-explanation/">
2050
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2051
+ 50 &#8211; Asynchronous &#8211; Callbacks Priorities Explanation<span> -> </span>
2052
+ </div> <!--/.ld-item-title-->
2053
+ </a>
2054
+
2055
+
2056
+ <div class="ld-item-details">
2057
+ </div> <!--/.ld-item-details-->
2058
+
2059
+
2060
+ </div> <!--/.ld-item-list-item-preview-->
2061
+ </div> <!--/.ld-item-list-item-->
2062
+
2063
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7459 is_not_sample learndash-incomplete" id="ld-expand-7459" data-ld-expand-id="ld-expand-7459" >
2064
+ <div class="ld-item-list-item-preview">
2065
+
2066
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/51-recursion-introduction/">
2067
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2068
+ 51 &#8211; Recursion Introduction<span> -> </span>
2069
+ </div> <!--/.ld-item-title-->
2070
+ </a>
2071
+
2072
+
2073
+ <div class="ld-item-details">
2074
+ </div> <!--/.ld-item-details-->
2075
+
2076
+
2077
+ </div> <!--/.ld-item-list-item-preview-->
2078
+ </div> <!--/.ld-item-list-item-->
2079
+
2080
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7464 is_not_sample learndash-incomplete" id="ld-expand-7464" data-ld-expand-id="ld-expand-7464" >
2081
+ <div class="ld-item-list-item-preview">
2082
+
2083
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/52-asynchronous-flow-control-patterns-and-more/">
2084
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2085
+ 52 &#8211; Asynchronous &#8211; Flow Control Patterns .. and more.<span> -> </span>
2086
+ </div> <!--/.ld-item-title-->
2087
+ </a>
2088
+
2089
+
2090
+ <div class="ld-item-details">
2091
+ </div> <!--/.ld-item-details-->
2092
+
2093
+
2094
+ </div> <!--/.ld-item-list-item-preview-->
2095
+ </div> <!--/.ld-item-list-item-->
2096
+
2097
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7595 is_not_sample learndash-incomplete" id="ld-expand-7595" data-ld-expand-id="ld-expand-7595" >
2098
+ <div class="ld-item-list-item-preview">
2099
+
2100
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/53-memory-management-stack-and-heap/">
2101
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2102
+ 53 &#8211; Memory Management &#8211; Stack and Heap<span> -> </span>
2103
+ </div> <!--/.ld-item-title-->
2104
+ </a>
2105
+
2106
+
2107
+ <div class="ld-item-details">
2108
+ </div> <!--/.ld-item-details-->
2109
+
2110
+
2111
+ </div> <!--/.ld-item-list-item-preview-->
2112
+ </div> <!--/.ld-item-list-item-->
2113
+
2114
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7597 is_not_sample learndash-incomplete" id="ld-expand-7597" data-ld-expand-id="ld-expand-7597" >
2115
+ <div class="ld-item-list-item-preview">
2116
+
2117
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/54-memory-management-v8-resident-set/">
2118
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2119
+ 54 &#8211; Memory Management &#8211; V8 Resident Set<span> -> </span>
2120
+ </div> <!--/.ld-item-title-->
2121
+ </a>
2122
+
2123
+
2124
+ <div class="ld-item-details">
2125
+ </div> <!--/.ld-item-details-->
2126
+
2127
+
2128
+ </div> <!--/.ld-item-list-item-preview-->
2129
+ </div> <!--/.ld-item-list-item-->
2130
+
2131
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7599 is_not_sample learndash-incomplete" id="ld-expand-7599" data-ld-expand-id="ld-expand-7599" >
2132
+ <div class="ld-item-list-item-preview">
2133
+
2134
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/55-memory-management-v8-garbage-collector/">
2135
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2136
+ 55 &#8211; Memory Management &#8211; V8 Garbage Collector<span> -> </span>
2137
+ </div> <!--/.ld-item-title-->
2138
+ </a>
2139
+
2140
+
2141
+ <div class="ld-item-details">
2142
+ </div> <!--/.ld-item-details-->
2143
+
2144
+
2145
+ </div> <!--/.ld-item-list-item-preview-->
2146
+ </div> <!--/.ld-item-list-item-->
2147
+
2148
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7606 is_not_sample learndash-incomplete" id="ld-expand-7606" data-ld-expand-id="ld-expand-7606" >
2149
+ <div class="ld-item-list-item-preview">
2150
+
2151
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/56-switch-statement/">
2152
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2153
+ 56 &#8211; Switch Statement<span> -> </span>
2154
+ </div> <!--/.ld-item-title-->
2155
+ </a>
2156
+
2157
+
2158
+ <div class="ld-item-details">
2159
+ </div> <!--/.ld-item-details-->
2160
+
2161
+
2162
+ </div> <!--/.ld-item-list-item-preview-->
2163
+ </div> <!--/.ld-item-list-item-->
2164
+
2165
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7614 is_not_sample learndash-incomplete" id="ld-expand-7614" data-ld-expand-id="ld-expand-7614" >
2166
+ <div class="ld-item-list-item-preview">
2167
+
2168
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/57-spread-operator/">
2169
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2170
+ 57 &#8211; Spread Operator<span> -> </span>
2171
+ </div> <!--/.ld-item-title-->
2172
+ </a>
2173
+
2174
+
2175
+ <div class="ld-item-details">
2176
+ </div> <!--/.ld-item-details-->
2177
+
2178
+
2179
+ </div> <!--/.ld-item-list-item-preview-->
2180
+ </div> <!--/.ld-item-list-item-->
2181
+
2182
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7616 is_not_sample learndash-incomplete" id="ld-expand-7616" data-ld-expand-id="ld-expand-7616" >
2183
+ <div class="ld-item-list-item-preview">
2184
+
2185
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/58-passing-by-reference-passing-by-value/">
2186
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2187
+ 58 &#8211; Passing by Reference &#8211; Passing by Value<span> -> </span>
2188
+ </div> <!--/.ld-item-title-->
2189
+ </a>
2190
+
2191
+
2192
+ <div class="ld-item-details">
2193
+ </div> <!--/.ld-item-details-->
2194
+
2195
+
2196
+ </div> <!--/.ld-item-list-item-preview-->
2197
+ </div> <!--/.ld-item-list-item-->
2198
+
2199
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7658 is_not_sample learndash-incomplete" id="ld-expand-7658" data-ld-expand-id="ld-expand-7658" >
2200
+ <div class="ld-item-list-item-preview">
2201
+
2202
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/59-shallow-copy-deep-copy/">
2203
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2204
+ 59 &#8211; Shallow Copy &#8211; Deep Copy<span> -> </span>
2205
+ </div> <!--/.ld-item-title-->
2206
+ </a>
2207
+
2208
+
2209
+ <div class="ld-item-details">
2210
+ </div> <!--/.ld-item-details-->
2211
+
2212
+
2213
+ </div> <!--/.ld-item-list-item-preview-->
2214
+ </div> <!--/.ld-item-list-item-->
2215
+
2216
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7661 is_not_sample learndash-incomplete" id="ld-expand-7661" data-ld-expand-id="ld-expand-7661" >
2217
+ <div class="ld-item-list-item-preview">
2218
+
2219
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/60-arrays-iterative-methods/">
2220
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2221
+ 60 &#8211; Array&#8217;s Iterative Methods<span> -> </span>
2222
+ </div> <!--/.ld-item-title-->
2223
+ </a>
2224
+
2225
+
2226
+ <div class="ld-item-details">
2227
+ </div> <!--/.ld-item-details-->
2228
+
2229
+
2230
+ </div> <!--/.ld-item-list-item-preview-->
2231
+ </div> <!--/.ld-item-list-item-->
2232
+
2233
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7665 is_not_sample learndash-incomplete" id="ld-expand-7665" data-ld-expand-id="ld-expand-7665" >
2234
+ <div class="ld-item-list-item-preview">
2235
+
2236
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/61-json-ecma-404/">
2237
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2238
+ 61 &#8211; JSON, ECMA 404<span> -> </span>
2239
+ </div> <!--/.ld-item-title-->
2240
+ </a>
2241
+
2242
+
2243
+ <div class="ld-item-details">
2244
+ </div> <!--/.ld-item-details-->
2245
+
2246
+
2247
+ </div> <!--/.ld-item-list-item-preview-->
2248
+ </div> <!--/.ld-item-list-item-->
2249
+
2250
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7753 is_not_sample learndash-incomplete" id="ld-expand-7753" data-ld-expand-id="ld-expand-7753" >
2251
+ <div class="ld-item-list-item-preview">
2252
+
2253
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/62-errors/">
2254
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2255
+ 62 &#8211; Errors<span> -> </span>
2256
+ </div> <!--/.ld-item-title-->
2257
+ </a>
2258
+
2259
+
2260
+ <div class="ld-item-details">
2261
+ </div> <!--/.ld-item-details-->
2262
+
2263
+
2264
+ </div> <!--/.ld-item-list-item-preview-->
2265
+ </div> <!--/.ld-item-list-item-->
2266
+
2267
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7755 is_not_sample learndash-incomplete" id="ld-expand-7755" data-ld-expand-id="ld-expand-7755" >
2268
+ <div class="ld-item-list-item-preview">
2269
+
2270
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/63-eventemitter/">
2271
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2272
+ 63 &#8211; EventEmitter<span> -> </span>
2273
+ </div> <!--/.ld-item-title-->
2274
+ </a>
2275
+
2276
+
2277
+ <div class="ld-item-details">
2278
+ </div> <!--/.ld-item-details-->
2279
+
2280
+
2281
+ </div> <!--/.ld-item-list-item-preview-->
2282
+ </div> <!--/.ld-item-list-item-->
2283
+
2284
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7757 is_not_sample learndash-incomplete" id="ld-expand-7757" data-ld-expand-id="ld-expand-7757" >
2285
+ <div class="ld-item-list-item-preview">
2286
+
2287
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/64-promise-convert-callbacks-to-promises/">
2288
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2289
+ 64 &#8211; Promise &#8211; Convert Callbacks to Promises<span> -> </span>
2290
+ </div> <!--/.ld-item-title-->
2291
+ </a>
2292
+
2293
+
2294
+ <div class="ld-item-details">
2295
+ </div> <!--/.ld-item-details-->
2296
+
2297
+
2298
+ </div> <!--/.ld-item-list-item-preview-->
2299
+ </div> <!--/.ld-item-list-item-->
2300
+
2301
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7760 is_not_sample learndash-incomplete" id="ld-expand-7760" data-ld-expand-id="ld-expand-7760" >
2302
+ <div class="ld-item-list-item-preview">
2303
+
2304
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/65-promise-create-long-chain-of-promises/">
2305
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2306
+ 65 &#8211; Promise &#8211; Create Long Chain of Promises<span> -> </span>
2307
+ </div> <!--/.ld-item-title-->
2308
+ </a>
2309
+
2310
+
2311
+ <div class="ld-item-details">
2312
+ </div> <!--/.ld-item-details-->
2313
+
2314
+
2315
+ </div> <!--/.ld-item-list-item-preview-->
2316
+ </div> <!--/.ld-item-list-item-->
2317
+
2318
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-7762 is_not_sample learndash-incomplete" id="ld-expand-7762" data-ld-expand-id="ld-expand-7762" >
2319
+ <div class="ld-item-list-item-preview">
2320
+
2321
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/66-promise-promisified-modules-async-await/">
2322
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2323
+ 66 &#8211; Promise &#8211; Promisified modules &#8211; Async &#038; Await<span> -> </span>
2324
+ </div> <!--/.ld-item-title-->
2325
+ </a>
2326
+
2327
+
2328
+ <div class="ld-item-details">
2329
+ </div> <!--/.ld-item-details-->
2330
+
2331
+
2332
+ </div> <!--/.ld-item-list-item-preview-->
2333
+ </div> <!--/.ld-item-list-item-->
2334
+
2335
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8278 is_not_sample learndash-incomplete" id="ld-expand-8278" data-ld-expand-id="ld-expand-8278" >
2336
+ <div class="ld-item-list-item-preview">
2337
+
2338
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/67-files-read-write/">
2339
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2340
+ 67 &#8211; Files &#8211; Read &#038; Write<span> -> </span>
2341
+ </div> <!--/.ld-item-title-->
2342
+ </a>
2343
+
2344
+
2345
+ <div class="ld-item-details">
2346
+ </div> <!--/.ld-item-details-->
2347
+
2348
+
2349
+ </div> <!--/.ld-item-list-item-preview-->
2350
+ </div> <!--/.ld-item-list-item-->
2351
+
2352
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8280 is_not_sample learndash-incomplete" id="ld-expand-8280" data-ld-expand-id="ld-expand-8280" >
2353
+ <div class="ld-item-list-item-preview">
2354
+
2355
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/68-files-append-read-stream/">
2356
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2357
+ 68 &#8211; Files &#8211; Append &#8211; Read Stream<span> -> </span>
2358
+ </div> <!--/.ld-item-title-->
2359
+ </a>
2360
+
2361
+
2362
+ <div class="ld-item-details">
2363
+ </div> <!--/.ld-item-details-->
2364
+
2365
+
2366
+ </div> <!--/.ld-item-list-item-preview-->
2367
+ </div> <!--/.ld-item-list-item-->
2368
+
2369
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8282 is_not_sample learndash-incomplete" id="ld-expand-8282" data-ld-expand-id="ld-expand-8282" >
2370
+ <div class="ld-item-list-item-preview">
2371
+
2372
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/69-files-existence-copy-directories/">
2373
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2374
+ 69 &#8211; Files &#8211; Existence &#8211; Copy &#8211; Directories<span> -> </span>
2375
+ </div> <!--/.ld-item-title-->
2376
+ </a>
2377
+
2378
+
2379
+ <div class="ld-item-details">
2380
+ </div> <!--/.ld-item-details-->
2381
+
2382
+
2383
+ </div> <!--/.ld-item-list-item-preview-->
2384
+ </div> <!--/.ld-item-list-item-->
2385
+
2386
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8296 is_not_sample learndash-incomplete" id="ld-expand-8296" data-ld-expand-id="ld-expand-8296" >
2387
+ <div class="ld-item-list-item-preview">
2388
+
2389
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/70-timers/">
2390
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2391
+ 70 &#8211; Timers<span> -> </span>
2392
+ </div> <!--/.ld-item-title-->
2393
+ </a>
2394
+
2395
+
2396
+ <div class="ld-item-details">
2397
+ </div> <!--/.ld-item-details-->
2398
+
2399
+
2400
+ </div> <!--/.ld-item-list-item-preview-->
2401
+ </div> <!--/.ld-item-list-item-->
2402
+
2403
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8603 is_not_sample learndash-incomplete" id="ld-expand-8603" data-ld-expand-id="ld-expand-8603" >
2404
+ <div class="ld-item-list-item-preview">
2405
+
2406
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/71-oop-01/">
2407
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2408
+ 71 &#8211; OOP 01<span> -> </span>
2409
+ </div> <!--/.ld-item-title-->
2410
+ </a>
2411
+
2412
+
2413
+ <div class="ld-item-details">
2414
+ </div> <!--/.ld-item-details-->
2415
+
2416
+
2417
+ </div> <!--/.ld-item-list-item-preview-->
2418
+ </div> <!--/.ld-item-list-item-->
2419
+
2420
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8605 is_not_sample learndash-incomplete" id="ld-expand-8605" data-ld-expand-id="ld-expand-8605" >
2421
+ <div class="ld-item-list-item-preview">
2422
+
2423
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/72-oop-02/">
2424
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2425
+ 72 &#8211; OOP 02<span> -> </span>
2426
+ </div> <!--/.ld-item-title-->
2427
+ </a>
2428
+
2429
+
2430
+ <div class="ld-item-details">
2431
+ </div> <!--/.ld-item-details-->
2432
+
2433
+
2434
+ </div> <!--/.ld-item-list-item-preview-->
2435
+ </div> <!--/.ld-item-list-item-->
2436
+
2437
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8607 is_not_sample learndash-incomplete" id="ld-expand-8607" data-ld-expand-id="ld-expand-8607" >
2438
+ <div class="ld-item-list-item-preview">
2439
+
2440
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/73-oop-03/">
2441
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2442
+ 73 &#8211; OOP 03<span> -> </span>
2443
+ </div> <!--/.ld-item-title-->
2444
+ </a>
2445
+
2446
+
2447
+ <div class="ld-item-details">
2448
+ </div> <!--/.ld-item-details-->
2449
+
2450
+
2451
+ </div> <!--/.ld-item-list-item-preview-->
2452
+ </div> <!--/.ld-item-list-item-->
2453
+
2454
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8627 is_not_sample learndash-incomplete" id="ld-expand-8627" data-ld-expand-id="ld-expand-8627" >
2455
+ <div class="ld-item-list-item-preview">
2456
+
2457
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/74-closure/">
2458
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2459
+ 74 &#8211; Closure<span> -> </span>
2460
+ </div> <!--/.ld-item-title-->
2461
+ </a>
2462
+
2463
+
2464
+ <div class="ld-item-details">
2465
+ </div> <!--/.ld-item-details-->
2466
+
2467
+
2468
+ </div> <!--/.ld-item-list-item-preview-->
2469
+ </div> <!--/.ld-item-list-item-->
2470
+
2471
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8670 is_not_sample learndash-incomplete" id="ld-expand-8670" data-ld-expand-id="ld-expand-8670" >
2472
+ <div class="ld-item-list-item-preview">
2473
+
2474
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/75-regular-expression-introduction-character-classes/">
2475
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2476
+ 75 &#8211; Regular Expression &#8211; Introduction &#038; Character Classes<span> -> </span>
2477
+ </div> <!--/.ld-item-title-->
2478
+ </a>
2479
+
2480
+
2481
+ <div class="ld-item-details">
2482
+ </div> <!--/.ld-item-details-->
2483
+
2484
+
2485
+ </div> <!--/.ld-item-list-item-preview-->
2486
+ </div> <!--/.ld-item-list-item-->
2487
+
2488
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8672 is_not_sample learndash-incomplete" id="ld-expand-8672" data-ld-expand-id="ld-expand-8672" >
2489
+ <div class="ld-item-list-item-preview">
2490
+
2491
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/76-regular-expression-more-character-classes/">
2492
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2493
+ 76 &#8211; Regular Expression &#8211; More Character Classes<span> -> </span>
2494
+ </div> <!--/.ld-item-title-->
2495
+ </a>
2496
+
2497
+
2498
+ <div class="ld-item-details">
2499
+ </div> <!--/.ld-item-details-->
2500
+
2501
+
2502
+ </div> <!--/.ld-item-list-item-preview-->
2503
+ </div> <!--/.ld-item-list-item-->
2504
+
2505
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8674 is_not_sample learndash-incomplete" id="ld-expand-8674" data-ld-expand-id="ld-expand-8674" >
2506
+ <div class="ld-item-list-item-preview">
2507
+
2508
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/77-regular-expression-quantifiers/">
2509
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2510
+ 77 &#8211; Regular Expression &#8211; Quantifiers<span> -> </span>
2511
+ </div> <!--/.ld-item-title-->
2512
+ </a>
2513
+
2514
+
2515
+ <div class="ld-item-details">
2516
+ </div> <!--/.ld-item-details-->
2517
+
2518
+
2519
+ </div> <!--/.ld-item-list-item-preview-->
2520
+ </div> <!--/.ld-item-list-item-->
2521
+
2522
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8676 is_not_sample learndash-incomplete" id="ld-expand-8676" data-ld-expand-id="ld-expand-8676" >
2523
+ <div class="ld-item-list-item-preview">
2524
+
2525
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/78-regular-expression-grouping/">
2526
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2527
+ 78 &#8211; Regular Expression &#8211; Grouping<span> -> </span>
2528
+ </div> <!--/.ld-item-title-->
2529
+ </a>
2530
+
2531
+
2532
+ <div class="ld-item-details">
2533
+ </div> <!--/.ld-item-details-->
2534
+
2535
+
2536
+ </div> <!--/.ld-item-list-item-preview-->
2537
+ </div> <!--/.ld-item-list-item-->
2538
+
2539
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8678 is_not_sample learndash-incomplete" id="ld-expand-8678" data-ld-expand-id="ld-expand-8678" >
2540
+ <div class="ld-item-list-item-preview">
2541
+
2542
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/79-regular-expression-input-boundary-assertions/">
2543
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2544
+ 79 &#8211; Regular Expression &#8211; Input Boundary Assertions<span> -> </span>
2545
+ </div> <!--/.ld-item-title-->
2546
+ </a>
2547
+
2548
+
2549
+ <div class="ld-item-details">
2550
+ </div> <!--/.ld-item-details-->
2551
+
2552
+
2553
+ </div> <!--/.ld-item-list-item-preview-->
2554
+ </div> <!--/.ld-item-list-item-->
2555
+
2556
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8680 is_not_sample learndash-incomplete" id="ld-expand-8680" data-ld-expand-id="ld-expand-8680" >
2557
+ <div class="ld-item-list-item-preview">
2558
+
2559
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/80-regular-expression-lookahead-lookbehind/">
2560
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2561
+ 80 &#8211; Regular Expression &#8211; Lookahead &#8211; Lookbehind<span> -> </span>
2562
+ </div> <!--/.ld-item-title-->
2563
+ </a>
2564
+
2565
+
2566
+ <div class="ld-item-details">
2567
+ </div> <!--/.ld-item-details-->
2568
+
2569
+
2570
+ </div> <!--/.ld-item-list-item-preview-->
2571
+ </div> <!--/.ld-item-list-item-->
2572
+
2573
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-8682 is_not_sample learndash-incomplete" id="ld-expand-8682" data-ld-expand-id="ld-expand-8682" >
2574
+ <div class="ld-item-list-item-preview">
2575
+
2576
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/81-regular-expression-how-to-write-a-complex-expression/">
2577
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2578
+ 81 &#8211; Regular Expression &#8211; How to write a complex expression<span> -> </span>
2579
+ </div> <!--/.ld-item-title-->
2580
+ </a>
2581
+
2582
+
2583
+ <div class="ld-item-details">
2584
+ </div> <!--/.ld-item-details-->
2585
+
2586
+
2587
+ </div> <!--/.ld-item-list-item-preview-->
2588
+ </div> <!--/.ld-item-list-item-->
2589
+
2590
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-9358 is_not_sample learndash-incomplete" id="ld-expand-9358" data-ld-expand-id="ld-expand-9358" >
2591
+ <div class="ld-item-list-item-preview">
2592
+
2593
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/watch-list-osi-model-2/">
2594
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2595
+ Watch List – OSI Model<span> -> </span>
2596
+ </div> <!--/.ld-item-title-->
2597
+ </a>
2598
+
2599
+
2600
+ <div class="ld-item-details">
2601
+ </div> <!--/.ld-item-details-->
2602
+
2603
+
2604
+ </div> <!--/.ld-item-list-item-preview-->
2605
+ </div> <!--/.ld-item-list-item-->
2606
+
2607
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10283 is_not_sample learndash-incomplete" id="ld-expand-10283" data-ld-expand-id="ld-expand-10283" >
2608
+ <div class="ld-item-list-item-preview">
2609
+
2610
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/82-http-protocol-introduction/">
2611
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2612
+ 82- HTTP &#8211; Protocol Introduction<span> -> </span>
2613
+ </div> <!--/.ld-item-title-->
2614
+ </a>
2615
+
2616
+
2617
+ <div class="ld-item-details">
2618
+ </div> <!--/.ld-item-details-->
2619
+
2620
+
2621
+ </div> <!--/.ld-item-list-item-preview-->
2622
+ </div> <!--/.ld-item-list-item-->
2623
+
2624
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10285 is_not_sample learndash-incomplete" id="ld-expand-10285" data-ld-expand-id="ld-expand-10285" >
2625
+ <div class="ld-item-list-item-preview">
2626
+
2627
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/83-http-create-http-server/">
2628
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2629
+ 83 &#8211; HTTP &#8211; Create HTTP Server<span> -> </span>
2630
+ </div> <!--/.ld-item-title-->
2631
+ </a>
2632
+
2633
+
2634
+ <div class="ld-item-details">
2635
+ </div> <!--/.ld-item-details-->
2636
+
2637
+
2638
+ </div> <!--/.ld-item-list-item-preview-->
2639
+ </div> <!--/.ld-item-list-item-->
2640
+
2641
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10287 is_not_sample learndash-incomplete" id="ld-expand-10287" data-ld-expand-id="ld-expand-10287" >
2642
+ <div class="ld-item-list-item-preview">
2643
+
2644
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/84-http-handle-multi-paths-and-querystring/">
2645
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2646
+ 84 &#8211; HTTP &#8211; Handle Multi Paths and Querystring<span> -> </span>
2647
+ </div> <!--/.ld-item-title-->
2648
+ </a>
2649
+
2650
+
2651
+ <div class="ld-item-details">
2652
+ </div> <!--/.ld-item-details-->
2653
+
2654
+
2655
+ </div> <!--/.ld-item-list-item-preview-->
2656
+ </div> <!--/.ld-item-list-item-->
2657
+
2658
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10290 is_not_sample learndash-incomplete" id="ld-expand-10290" data-ld-expand-id="ld-expand-10290" >
2659
+ <div class="ld-item-list-item-preview">
2660
+
2661
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/85-http-basic-authorization/">
2662
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2663
+ 85 &#8211; HTTP &#8211; Basic Authorization<span> -> </span>
2664
+ </div> <!--/.ld-item-title-->
2665
+ </a>
2666
+
2667
+
2668
+ <div class="ld-item-details">
2669
+ </div> <!--/.ld-item-details-->
2670
+
2671
+
2672
+ </div> <!--/.ld-item-list-item-preview-->
2673
+ </div> <!--/.ld-item-list-item-->
2674
+
2675
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10292 is_not_sample learndash-incomplete" id="ld-expand-10292" data-ld-expand-id="ld-expand-10292" >
2676
+ <div class="ld-item-list-item-preview">
2677
+
2678
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/86-http-bearer-authorization-token/">
2679
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2680
+ 86 &#8211; HTTP &#8211; Bearer Authorization (Token)<span> -> </span>
2681
+ </div> <!--/.ld-item-title-->
2682
+ </a>
2683
+
2684
+
2685
+ <div class="ld-item-details">
2686
+ </div> <!--/.ld-item-details-->
2687
+
2688
+
2689
+ </div> <!--/.ld-item-list-item-preview-->
2690
+ </div> <!--/.ld-item-list-item-->
2691
+
2692
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10294 is_not_sample learndash-incomplete" id="ld-expand-10294" data-ld-expand-id="ld-expand-10294" >
2693
+ <div class="ld-item-list-item-preview">
2694
+
2695
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/87-http-create-http-client/">
2696
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2697
+ 87 &#8211; HTTP &#8211; Create HTTP Client<span> -> </span>
2698
+ </div> <!--/.ld-item-title-->
2699
+ </a>
2700
+
2701
+
2702
+ <div class="ld-item-details">
2703
+ </div> <!--/.ld-item-details-->
2704
+
2705
+
2706
+ </div> <!--/.ld-item-list-item-preview-->
2707
+ </div> <!--/.ld-item-list-item-->
2708
+
2709
+ <div class="ld-item-list-item ld-item-lesson-item ld-lesson-item-10296 is_not_sample learndash-incomplete" id="ld-expand-10296" data-ld-expand-id="ld-expand-10296" >
2710
+ <div class="ld-item-list-item-preview">
2711
+
2712
+ <a class="ld-item-name ld-primary-color-hover" href="https://cloudnativebasecamp.com/lessons/88-http-post-request/">
2713
+ <div class="ld-status-icon ld-status-incomplete"></div> <div class="ld-item-title">
2714
+ 88 &#8211; HTTP &#8211; POST Request<span> -> </span>
2715
+ </div> <!--/.ld-item-title-->
2716
+ </a>
2717
+
2718
+
2719
+ <div class="ld-item-details">
2720
+ </div> <!--/.ld-item-details-->
2721
+
2722
+
2723
+ </div> <!--/.ld-item-list-item-preview-->
2724
+ </div> <!--/.ld-item-list-item-->
2725
+ </div> <!--/.ld-item-list-items-->
2726
+
2727
+ </div> <!--/.ld-item-list-->
2728
+
2729
+ </div> <!--/.learndash-wrapper-->
2730
+ </div></div></div>
2731
+ </div></div><!-- .entry-content -->
2732
+ </div>
2733
+ </article><!-- #post-4467 -->
2734
+
2735
+ </div>
2736
+ </main><!-- #main -->
2737
+ </div>
2738
+ </div><!-- #primary -->
2739
+ </div><!-- #inner-wrap -->
2740
+ <footer id="colophon" class="site-footer" role="contentinfo">
2741
+ <div class="site-footer-wrap">
2742
+ <div class="site-top-footer-wrap site-footer-row-container site-footer-focus-item site-footer-row-layout-standard site-footer-row-tablet-layout-default site-footer-row-mobile-layout-default" data-section="kadence_customizer_footer_top">
2743
+ <div class="site-footer-row-container-inner">
2744
+ <div class="site-container">
2745
+ <div class="site-top-footer-inner-wrap site-footer-row site-footer-row-columns-2 site-footer-row-column-layout-right-golden site-footer-row-tablet-column-layout-default site-footer-row-mobile-column-layout-row ft-ro-dir-column ft-ro-collapse-normal ft-ro-t-dir-default ft-ro-m-dir-default ft-ro-lstyle-plain">
2746
+ <div class="site-footer-top-section-1 site-footer-section footer-section-inner-items-2">
2747
+ <div class="footer-widget-area widget-area site-footer-focus-item footer-widget4 content-align-default content-tablet-align-default content-mobile-align-default content-valign-default content-tablet-valign-default content-mobile-valign-default" data-section="sidebar-widgets-footer4">
2748
+ <div class="footer-widget-area-inner site-info-inner">
2749
+ <section id="custom_html-1" class="widget_text widget widget_custom_html"><h2 class="widget-title">Cloud Native Base Camp</h2><div class="textwidget custom-html-widget">the missing courses for developers and devops heros. Provided by Metwally Labs, LLC.</div></section> </div>
2750
+ </div><!-- .footer-widget4 -->
2751
+ <div class="footer-widget-area widget-area site-footer-focus-item footer-social content-align-default content-tablet-align-default content-mobile-align-default content-valign-default content-tablet-valign-default content-mobile-valign-default" data-section="kadence_customizer_footer_social">
2752
+ <div class="footer-widget-area-inner footer-social-inner">
2753
+ <div class="footer-social-wrap"><div class="footer-social-inner-wrap element-social-inner-wrap social-show-label-false social-style-filled"><a href="https://www.facebook.com/metwallylabs/" aria-label="Facebook" target="_blank" rel="noopener noreferrer" class="social-button footer-social-item social-link-facebook"><span class="kadence-svg-iconset"><svg class="kadence-svg-icon kadence-facebook-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><title>Facebook</title><path d="M31.997 15.999c0-8.836-7.163-15.999-15.999-15.999s-15.999 7.163-15.999 15.999c0 7.985 5.851 14.604 13.499 15.804v-11.18h-4.062v-4.625h4.062v-3.525c0-4.010 2.389-6.225 6.043-6.225 1.75 0 3.581 0.313 3.581 0.313v3.937h-2.017c-1.987 0-2.607 1.233-2.607 2.498v3.001h4.437l-0.709 4.625h-3.728v11.18c7.649-1.2 13.499-7.819 13.499-15.804z"></path>
2754
+ </svg></span></a><a href="https://twitter.com/metwallylabs" aria-label="Twitter" target="_blank" rel="noopener noreferrer" class="social-button footer-social-item social-link-twitter"><span class="kadence-svg-iconset"><svg class="kadence-svg-icon kadence-twitter-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="26" height="28" viewBox="0 0 26 28"><title>Twitter</title><path d="M25.312 6.375c-0.688 1-1.547 1.891-2.531 2.609 0.016 0.219 0.016 0.438 0.016 0.656 0 6.672-5.078 14.359-14.359 14.359-2.859 0-5.516-0.828-7.75-2.266 0.406 0.047 0.797 0.063 1.219 0.063 2.359 0 4.531-0.797 6.266-2.156-2.219-0.047-4.078-1.5-4.719-3.5 0.313 0.047 0.625 0.078 0.953 0.078 0.453 0 0.906-0.063 1.328-0.172-2.312-0.469-4.047-2.5-4.047-4.953v-0.063c0.672 0.375 1.453 0.609 2.281 0.641-1.359-0.906-2.25-2.453-2.25-4.203 0-0.938 0.25-1.797 0.688-2.547 2.484 3.062 6.219 5.063 10.406 5.281-0.078-0.375-0.125-0.766-0.125-1.156 0-2.781 2.25-5.047 5.047-5.047 1.453 0 2.766 0.609 3.687 1.594 1.141-0.219 2.234-0.641 3.203-1.219-0.375 1.172-1.172 2.156-2.219 2.781 1.016-0.109 2-0.391 2.906-0.781z"></path>
2755
+ </svg></span></a><a href="https://www.facebook.com/groups/aws.egypt.club" aria-label="Facebook Group" target="_blank" rel="noopener noreferrer" class="social-button footer-social-item social-link-facebook_group"><span class="kadence-svg-iconset"><svg class="kadence-svg-icon kadence-facebook-group-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="30" height="28" viewBox="0 0 30 28"><title>Facebook Group</title><path d="M9.266 14c-1.625 0.047-3.094 0.75-4.141 2h-2.094c-1.563 0-3.031-0.75-3.031-2.484 0-1.266-0.047-5.516 1.937-5.516 0.328 0 1.953 1.328 4.062 1.328 0.719 0 1.406-0.125 2.078-0.359-0.047 0.344-0.078 0.688-0.078 1.031 0 1.422 0.453 2.828 1.266 4zM26 23.953c0 2.531-1.672 4.047-4.172 4.047h-13.656c-2.5 0-4.172-1.516-4.172-4.047 0-3.531 0.828-8.953 5.406-8.953 0.531 0 2.469 2.172 5.594 2.172s5.063-2.172 5.594-2.172c4.578 0 5.406 5.422 5.406 8.953zM10 4c0 2.203-1.797 4-4 4s-4-1.797-4-4 1.797-4 4-4 4 1.797 4 4zM21 10c0 3.313-2.688 6-6 6s-6-2.688-6-6 2.688-6 6-6 6 2.688 6 6zM30 13.516c0 1.734-1.469 2.484-3.031 2.484h-2.094c-1.047-1.25-2.516-1.953-4.141-2 0.812-1.172 1.266-2.578 1.266-4 0-0.344-0.031-0.688-0.078-1.031 0.672 0.234 1.359 0.359 2.078 0.359 2.109 0 3.734-1.328 4.062-1.328 1.984 0 1.937 4.25 1.937 5.516zM28 4c0 2.203-1.797 4-4 4s-4-1.797-4-4 1.797-4 4-4 4 1.797 4 4z"></path>
2756
+ </svg></span></a></div></div> </div>
2757
+ </div><!-- data-section="footer_social" -->
2758
+ </div>
2759
+ <div class="site-footer-top-section-2 site-footer-section footer-section-inner-items-1">
2760
+
2761
+ <div class="footer-widget-area site-info site-footer-focus-item content-align-default content-tablet-align-default content-mobile-align-default content-valign-default content-tablet-valign-default content-mobile-valign-default" data-section="kadence_customizer_footer_html">
2762
+ <div class="footer-widget-area-inner site-info-inner">
2763
+ <div class="footer-html inner-link-style-normal"><div class="footer-html-inner"><p>المحتوى محمي بقوانين حماية الملكية الفكرية واى تحميل او مشاركة للمحتوى تعتبر سرقة بموجب القانون</p>
2764
+ </div></div> </div>
2765
+ </div><!-- .site-info -->
2766
+ </div>
2767
+ </div>
2768
+ </div>
2769
+ </div>
2770
+ </div>
2771
+ </div>
2772
+ </footer><!-- #colophon -->
2773
+
2774
+ </div><!-- #wrapper -->
2775
+
2776
+ <script>document.documentElement.style.setProperty('--scrollbar-offset', window.innerWidth - document.documentElement.clientWidth + 'px' );</script>
2777
+ <!-- Facebook Pixel Code -->
2778
+ <noscript>
2779
+ <img
2780
+ height="1"
2781
+ width="1"
2782
+ style="display:none"
2783
+ alt="fbpx"
2784
+ src="https://www.facebook.com/tr?id=2516399868556194&ev=PageView&noscript=1"
2785
+ />
2786
+ </noscript>
2787
+ <!-- End Facebook Pixel Code -->
2788
+ <script>
2789
+ (function () {
2790
+ var c = document.body.className;
2791
+ c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
2792
+ document.body.className = c;
2793
+ })();
2794
+ </script>
2795
+ <div id="mobile-drawer" class="popup-drawer popup-drawer-layout-sidepanel popup-drawer-animation-fade popup-drawer-side-right" data-drawer-target-string="#mobile-drawer"
2796
+ >
2797
+ <div class="drawer-overlay" data-drawer-target-string="#mobile-drawer"></div>
2798
+ <div class="drawer-inner">
2799
+ <div class="drawer-header">
2800
+ <button class="menu-toggle-close drawer-toggle" aria-label="Close menu" data-toggle-target="#mobile-drawer" data-toggle-body-class="showing-popup-drawer-from-right" aria-expanded="false" data-set-focus=".menu-toggle-open"
2801
+ >
2802
+ <span class="toggle-close-bar"></span>
2803
+ <span class="toggle-close-bar"></span>
2804
+ </button>
2805
+ </div>
2806
+ <div class="drawer-content mobile-drawer-content content-align-right content-valign-top">
2807
+ <div class="site-header-item site-header-focus-item" data-section="kadence_customizer_mobile_html">
2808
+ <div class="mobile-html inner-link-style-normal"><div class="mobile-html-inner"><div class="met_user_info">Sara Hamdy Ahmed</div>
2809
+ </div></div></div><!-- data-section="mobile_html" -->
2810
+ <div class="site-header-item site-header-focus-item site-header-item-mobile-navigation mobile-navigation-layout-stretch-false" data-section="kadence_customizer_mobile_navigation">
2811
+ <nav id="mobile-site-navigation" class="mobile-navigation drawer-navigation drawer-navigation-parent-toggle-false" role="navigation" aria-label="Primary Mobile Navigation">
2812
+ <div class="mobile-menu-container drawer-menu-container">
2813
+ <ul id="mobile-menu" class="menu has-collapse-sub-nav"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-8461"><a href="https://cloudnativebasecamp.com/">الرئيسية</a></li>
2814
+ <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8625"><a href="https://cloudnativebasecamp.com/plans/">خطط الأشتراك</a></li>
2815
+ <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-629"><a href="https://cloudnativebasecamp.com/courseslist/">الكورسات</a></li>
2816
+ <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8345"><a href="https://cloudnativebasecamp.com/blog/">Blog</a></li>
2817
+ <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14605"><a href="https://cloudnativebasecamp.com/how-to-study/">ازاي تذاكر الكورسات</a></li>
2818
+ <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-898"><a href="https://cloudnativebasecamp.com/contact/">التواصل والمساعدة</a></li>
2819
+ <li class="ld-button met-link menu-item menu-item-type-custom menu-item-object-custom menu-item-634"><a href="https://cloudnativebasecamp.com/bab/?action=logout&#038;redirect_to=https%3A%2F%2Fcloudnativebasecamp.com%2Fcourses%2Fnode-js-from-scratch%2F&#038;_wpnonce=8900d3b0b5">خروج</a></li>
2820
+ </ul> </div>
2821
+ </nav><!-- #site-navigation -->
2822
+ </div><!-- data-section="mobile_navigation" -->
2823
+ <div class="site-header-item site-header-focus-item" data-section="kadence_customizer_mobile_button">
2824
+ </div><!-- data-section="mobile_button" -->
2825
+ </div>
2826
+ </div>
2827
+ </div>
2828
+ <link rel='stylesheet' id='wc-stripe-blocks-checkout-style-css' href='https://cloudnativebasecamp.com/wp-content/plugins/woocommerce-gateway-stripe/build/upe-blocks.css?ver=1e1661bb3db973deba05' media='all' />
2829
+ <link rel='stylesheet' id='wc-blocks-style-css' href='https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-10.4.4' media='all' />
2830
+ <link rel='stylesheet' id='dashicons-css' href='https://cloudnativebasecamp.com/wp-includes/css/dashicons.min.css?ver=6.8.5' media='all' />
2831
+ <link rel='stylesheet' id='admin-bar-css' href='https://cloudnativebasecamp.com/wp-includes/css/admin-bar.min.css?ver=6.8.5' media='all' />
2832
+ <link rel='stylesheet' id='wpcom-notes-admin-bar-css' href='https://s0.wp.com/wp-content/mu-plugins/notes/admin-bar-v2.css?ver=13.6.1-202618-lite' media='all' />
2833
+ <link rel='stylesheet' id='noticons-css' href='https://s0.wp.com/i/noticons/noticons.css?ver=13.6.1-202618-lite' media='all' />
2834
+ <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" id="cf-turnstile-js"></script>
2835
+ <script src="//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/legacy/templates/learndash_pager.min.js?ver=4.3.1.3" id="learndash_pager_js-js"></script>
2836
+ <script id="learndash_template_script_js-js-extra">
2837
+ var sfwd_data = {"json":"{\"ajaxurl\":\"https:\\\/\\\/cloudnativebasecamp.com\\\/wp-admin\\\/admin-ajax.php\"}"};
2838
+ </script>
2839
+ <script src="//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/legacy/templates/learndash_template_script.min.js?ver=4.3.1.3" id="learndash_template_script_js-js"></script>
2840
+ <script id="kadence-navigation-js-extra">
2841
+ var kadenceConfig = {"screenReader":{"expand":"Child menu","expandOf":"Child menu of","collapse":"Child menu","collapseOf":"Child menu of"},"breakPoints":{"desktop":"1024","tablet":768},"scrollOffset":"0"};
2842
+ </script>
2843
+ <script src="https://cloudnativebasecamp.com/wp-content/themes/kadence/assets/js/navigation.min.js?ver=1.2.7" id="kadence-navigation-js" async></script>
2844
+ <script id="learndash-front-js-extra">
2845
+ var ldVars = {"postID":"4467","videoReqMsg":"You must watch the video before accessing this content","ajaxurl":"https:\/\/cloudnativebasecamp.com\/wp-admin\/admin-ajax.php"};
2846
+ </script>
2847
+ <script src="//cloudnativebasecamp.com/wp-content/plugins/sfwd-lms/themes/ld30/assets/js/learndash.js?ver=4.3.1.3" id="learndash-front-js"></script>
2848
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=10.4.4" id="sourcebuster-js-js"></script>
2849
+ <script id="wc-order-attribution-js-extra">
2850
+ var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/cloudnativebasecamp.com\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
2851
+ </script>
2852
+ <script src="https://cloudnativebasecamp.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=10.4.4" id="wc-order-attribution-js"></script>
2853
+ <script src="https://capi-automation.s3.us-east-2.amazonaws.com/public/client_js/capiParamBuilder/clientParamBuilder.bundle.js" id="facebook-capi-param-builder-js"></script>
2854
+ <script id="facebook-capi-param-builder-js-after">
2855
+ if (typeof clientParamBuilder !== "undefined") {
2856
+ clientParamBuilder.processAndCollectAllParams(window.location.href);
2857
+ }
2858
+ </script>
2859
+ <script id="tiktok-pixel-tracking-handle-header-js-after">
2860
+ !function (w, d, t) {
2861
+ w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{},ttq._partner=ttq._partner||"WooCommerce";var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)};
2862
+ ttq.load('CTT6ALJC77U4KUTGNJI0');
2863
+ }(window, document, 'ttq');
2864
+ </script>
2865
+ <script id="tiktok-tracking-handle-header-js-after">
2866
+ ttq.instance('CTT6ALJC77U4KUTGNJI0').track('Pageview', {'event_id': '69f28fa2a881e_tt4b_woocommerce_677a65036736b'})
2867
+ ttq.instance('CTT6ALJC77U4KUTGNJI0').identify({
2868
+ email: '7f6c293dda4481d7d0337dc5d9220cdab6c56898e2764a8608fafca698aeb761',
2869
+ phone_number: 'e8a657fb5305770f60af0d05e7f401093467787a2c881258815319cc927fbd62',
2870
+ first_name: '3a6d64c24cf80b69ccda37650406467e8266667b50cfd0b984beb3651b129ed7',
2871
+ last_name: 'cbd44afeb7cd79af3cdd5eb8fcf55d881672b102ed7dfa5d5e4c970dff86ebe9',
2872
+ city: 'assiut',
2873
+ state: 'egast',
2874
+ country: 'eg',
2875
+ zip_code: '5f0d784f039b5948b8d46b692da0b0c8164705c46f2bf29c0bc51c59477f0724'
2876
+ })
2877
+ </script>
2878
+ <script src="https://s0.wp.com/wp-content/mu-plugins/notes/notes-common-lite.min.js?ver=13.6.1-202618-lite" id="wpcom-notes-common-js"></script>
2879
+ <script id="wpcom-notes-admin-bar-js-before">
2880
+ var wpNotesArgs = {"cacheBuster":"13.6.1-202618-lite"};
2881
+ </script>
2882
+ <script src="https://s0.wp.com/wp-content/mu-plugins/notes/admin-bar-v2.js?ver=13.6.1-202618-lite" id="wpcom-notes-admin-bar-js"></script>
2883
+ <!-- WooCommerce JavaScript -->
2884
+ <script type="text/javascript">
2885
+ jQuery(function($) {
2886
+ /* WooCommerce Facebook Integration Event Tracking */
2887
+ fbq('set', 'agent', 'woocommerce_0-10.4.4-3.5.15', '2516399868556194');
2888
+ fbq('track', 'PageView', {
2889
+ "source": "woocommerce_0",
2890
+ "version": "10.4.4",
2891
+ "pluginVersion": "3.5.15",
2892
+ "user_data": {}
2893
+ }, {
2894
+ "eventID": "251c5c04-ab11-45ad-836a-edb9e59c853f"
2895
+ });
2896
+ });
2897
+ </script>
2898
+
2899
+ <script type="text/javascript">
2900
+ _linkedin_partner_id = "8926257";
2901
+ window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
2902
+ window._linkedin_data_partner_ids.push(_linkedin_partner_id);
2903
+ </script><script type="text/javascript">
2904
+ (function(l) {
2905
+ if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
2906
+ window.lintrk.q=[]}
2907
+ var s = document.getElementsByTagName("script")[0];
2908
+ var b = document.createElement("script");
2909
+ b.type = "text/javascript";b.async = true;
2910
+ b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
2911
+ s.parentNode.insertBefore(b, s);})(window.lintrk);
2912
+ </script>
2913
+ <noscript>
2914
+ <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=8926257&fmt=gif" />
2915
+ </noscript>
2916
+
2917
+ </body>
2918
+ </html>
2919
+ `;
2920
+
2921
+ /*
2922
+ 1. find the title of each lesson and print it in the console
2923
+ 2. start loop
2924
+ -- clean the substring
2925
+ -- extract the title from the substring
2926
+ -- replace the html symbols with their actual characters
2927
+ -- add to the result array
2928
+ -- print the cleaned title in the console
2929
+ 3. end loop
2930
+ */
2931
+
2932
+
2933
+ /*
2934
+ <div class="ld-item-title">
2935
+ 01 &#8211; Prepare Development Environment<span> -> </span>
2936
+ */
2937
+ let titles = [];
2938
+ let startIndex = -1;
2939
+ let endIndex = -1;
2940
+
2941
+ for (let i = 0; i < html.length; i++) {
2942
+ startIndex = html.indexOf('<div class="ld-item-title">', i);
2943
+ if (startIndex === -1) break;
2944
+ i = startIndex;
2945
+
2946
+ endIndex = html.indexOf('</span>', i);
2947
+ if (endIndex === -1) break;
2948
+ i = endIndex;
2949
+ let item = html.substring(startIndex, endIndex);
2950
+
2951
+
2952
+ /*
2953
+ <div class="ld-item-title">
2954
+ 01 &#8211; Prepare Development Environment<span> ->
2955
+ */
2956
+ item = item.replace('<div class="ld-item-title">', '');
2957
+
2958
+ /*
2959
+
2960
+ 01 &#8211; Prepare Development Environment<span> ->
2961
+ */
2962
+ item = item.trim();
2963
+
2964
+ /*
2965
+ 01 &#8211; Prepare Development Environment<span> ->
2966
+ */
2967
+ item = item.replace('->', '');
2968
+
2969
+ /*
2970
+ 01 &#8211; Prepare Development Environment<span>
2971
+ */
2972
+ item = item.replace('<span>', '');
2973
+
2974
+
2975
+ /*
2976
+ 01 &#8211; Prepare Development Environment
2977
+ */
2978
+ item = replaceHtmlSymbols(item);
2979
+
2980
+ console.log(item);
2981
+ // break;
2982
+
2983
+ }
2984
+
2985
+ function replaceHtmlSymbols(str) {
2986
+ let startIndex = -1;
2987
+ let endIndex = -1;
2988
+
2989
+ for (let i = 0; i < str.length; i++) {
2990
+ startIndex = str.indexOf('&#', i);
2991
+ if (startIndex === -1) break;
2992
+ i = startIndex;
2993
+
2994
+ endIndex = str.indexOf(';', i);
2995
+ if (endIndex === -1) break;
2996
+ i = endIndex;
2997
+ let item = str.substring(startIndex + 2, endIndex);
2998
+ let ucode = '0x' + Number(item).toString(16);
2999
+ let char = String.fromCodePoint(Number(item));
3000
+
3001
+ str = str.replaceAll('&#' + item + ';' , char );
3002
+ // console.log(str);
3003
+ }
3004
+ return str;
3005
+ }
3006
+
3007
+
3008
+ /*
3009
+ إذن الفكرة الأساسية
3010
+ الفرق بين:
3011
+ ✔ جوه loop
3012
+
3013
+ 👉 بنعالج كل عنصر
3014
+
3015
+ ❌ بره loop
3016
+
3017
+ 👉 بنعالج عنصر واحد بس
3018
+
3019
+ 2. الفانكشن داخل vs خارج اللوب
3020
+
3021
+ داخل اللوب → كل عنصر
3022
+ خارج اللوب → آخر عنصر فقط
3023
+ */
3024
+
3025
+