Learn JavaScript

lesson ⧍ / ā§Ŧ ¡ JavaScript āϜāĻŋāύāĻŋāϏāϟāĻž āϕ⧀, āϕ⧋āĻĨāĻžāϝāĻŧ āϚāϞ⧇, āφāϰ engine āĻāϟāĻž āϚāĻžāϞāĻžāϝāĻŧ āϕ⧀āĻ­āĻžāĻŦ⧇

Module ā§Ļ ¡ JavaScript āϜāĻŋāύāĻŋāϏāϟāĻž āϕ⧀, āϕ⧋āĻĨāĻžāϝāĻŧ āϚāϞ⧇, āφāϰ engine āĻāϟāĻž āϚāĻžāϞāĻžāϝāĻŧ āϕ⧀āĻ­āĻžāĻŦ⧇

āϕ⧋āĻĨāĻžāϝāĻŧ āϚāϞ⧇: browser, server, phone, desktop

FreeāĻĒāĻĄāĻŧāĻž

āĻāχ lesson-āĻ āϝāĻž āĻļāĻŋāĻ–āĻŦ⧇

  • JavaScript āϝ⧇ āϚāĻžāϰāϟāĻž āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āϚāϞ⧇, āϏ⧇āϗ⧁āϞ⧋āϰ āύāĻžāĻŽ āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŦ⧇, āĻĒā§āϰāϤāĻŋāϟāĻžāϝāĻŧ āĻāĻ•āϟāĻž āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ product āϏāĻšāĨ¤
  • āϚāĻžāϰ āϜāĻžāϝāĻŧāĻ—āĻžāϤ⧇āχ āϕ⧀ āĻāĻ•āχ āĻĨāĻžāϕ⧇ āφāϰ āϕ⧀ āĻŦāĻĻāϞāĻžāϝāĻŧ, āϏ⧇āϟāĻž āĻŦ⧁āĻāĻŋāϝāĻŧ⧇ āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤
  • Node.js āϕ⧀, āφāϰ Playground āϕ⧀ āĻĒāĻžāϰ⧇ āφāϰ āϕ⧀ āĻĒāĻžāϰ⧇ āύāĻž, āϏ⧇āϟāĻž āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

Kenji āϤāĻŋāύāϟāĻž blog post āĻĒāĻĄāĻŧ⧇ āϚāĻŋāĻ¨ā§āϤāĻžāϝāĻŧ āĻĒāĻĄāĻŧ⧇ āϗ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻž āĻŦāϞāϛ⧇ "frontend JavaScript āĻļ⧇āĻ–ā§‹", āĻāĻ•āϟāĻž āĻŦāϞāϛ⧇ "backend JavaScript āĻļ⧇āĻ–ā§‹", āφāϰ⧇āĻ•āϟāĻž āĻŦāϞāϛ⧇ "React Native āĻļ⧇āĻ–ā§‹"āĨ¤ āϏ⧇ āϜāĻžāύāϤ⧇ āϚāĻžāϝāĻŧ, āϕ⧋āύ JavaScript āφāϗ⧇ āĻļāĻŋāĻ–āĻŦ⧇āĨ¤

āĻ¸ā§Ž āωāĻ¤ā§āϤāϰ āĻšāϞ⧋, JavaScript āĻāĻ•āϟāĻžāχāĨ¤ āĻāĻ•āχ āĻ­āĻžāώāĻž browser-āĻ āϚāϞ⧇, server-āĻ āϚāϞ⧇, āĻĢā§‹āύ⧇āϰ app-āĻāϰ āϭ⧇āϤāϰ⧇ āϚāϞ⧇, desktop app-āĻāϰ āϭ⧇āϤāϰ⧇āĻ“ āϚāϞ⧇āĨ¤ āĻŦāĻĻāϞāĻžāϝāĻŧ āĻļ⧁āϧ⧁ āϘāϰāϟāĻž, āϝ⧇āĻ–āĻžāύ⧇ āϏ⧇ āϚāϞāϛ⧇āĨ¤ āφāϰ āĻŦāĻĻāϞāĻžāϝāĻŧ āĻ“āχ āϘāϰ⧇ āϏ⧇ āϕ⧀ āϕ⧀ āϛ⧁āρāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāχ lesson-āĻ āϚāĻžāϰāϟāĻž āϘāϰāχ āĻĻ⧇āĻ–āĻŦ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻž program āĻĻ⧁āχāϟāĻž āϘāϰ⧇ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āĻāĻ•āχ output āĻĒāĻžāĻŦ⧇āĨ¤ āĻĒ⧁āϰ⧋ āϝ⧁āĻ•ā§āϤāĻŋāϟāĻž āĻ“āχ āĻāĻ• āĻ›āĻŦāĻŋāϤ⧇āχāĨ¤

āĻāĻ•āϟāĻž āĻ­āĻžāώāĻž, āϚāĻžāϰ āϜāĻžāϝāĻŧāĻ—āĻž

Engine āĻšāϞ⧋ āϏ⧇āχ program, āϝ⧇āϟāĻž JavaScript āĻĒāĻĄāĻŧ⧇ āφāϰ āϚāĻžāϞāĻžāϝāĻŧāĨ¤ Lesson 04-āĻ āĻāĻ•āϟāĻž engine āϖ⧁āϞ⧇ āϭ⧇āϤāϰāϟāĻž āĻĻ⧇āĻ–āĻŦ⧇āĨ¤ āφāĻĒāĻžāϤāϤ engine-āϕ⧇ āĻāĻ•āϟāĻž āĻŦāĻžāĻ•ā§āϏ āĻ­āĻžāĻŦā§‹, āϝ⧇āϟāĻž āĻļ⧁āϧ⧁ āĻ­āĻžāώāĻžāϟāĻž āϚāĻžāϞāĻžāϝāĻŧ, āφāϰ āĻ•āĻŋāϛ⧁ āύāĻžāĨ¤ āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇ āϏ⧇ page āφāρāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, file āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, network connection-āĻ“ āϖ⧁āϞāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

Runtime āĻšāϞ⧋ āϕ⧋āύ⧋ āĻāĻ•āϟāĻž āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻŦāϏāĻžāύ⧋ āĻāĻ•āϟāĻž engine, āϏāĻ™ā§āϗ⧇ āĻ“āχ āϜāĻžāϝāĻŧāĻ—āĻžāϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻŦāĻžāĻĄāĻŧāϤāĻŋ tool-āϗ⧁āϞ⧋āĨ¤ Browser āĻāĻ•āϟāĻž runtime, Node.js āφāϰ⧇āĻ•āϟāĻžāĨ¤ āϭ⧇āϤāϰ⧇āϰ āĻ­āĻžāώāĻž āĻāĻ•āχ; āĻŦāĻžāĻĄāĻŧāϤāĻŋ tool-āϗ⧁āϞ⧋ āĻāĻ• āύāĻžāĨ¤

āĻāĻ•āϟāĻž JavaScript engine, āϚāĻžāϰāϟāĻž āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻŦāϏāĻžāύ⧋ Engine āĻāĻ•āχ āĻ­āĻžāώāĻž Browser āϏāĻŦ website āĻŦāĻžāĻĄāĻŧāϤāĻŋ: page Server Node.js: Netflix, PayPal āĻŦāĻžāĻĄāĻŧāϤāĻŋ: file, network āĻĢā§‹āύ React Native: Instagram āĻŦāĻžāĻĄāĻŧāϤāĻŋ: native button Desktop Electron: VS Code āĻŦāĻžāĻĄāĻŧāϤāĻŋ: window, file
āĻ›āĻŦāĻŋ 1āĨ¤ āĻāĻ•āϟāĻž engine, āϚāĻžāϰāϟāĻž socketāĨ¤ āϚāĻžāϰāϟāĻžāϤ⧇āχ āĻ­āĻžāώāĻž āĻāĻ•āχ; āĻŦāĻžāĻĄāĻŧāϤāĻŋāϗ⧁āϞ⧋ āφāϞāĻžāĻĻāĻžāĨ¤

āϤāĻžāχ "frontend JavaScript" āφāϰ "backend JavaScript" āĻāĻ•āχ āĻ­āĻžāώāĻž, āĻļ⧁āϧ⧁ āĻĻ⧁āχāϟāĻž āφāϞāĻžāĻĻāĻž āϘāϰ⧇āĨ¤

Browser: page-āĻāϰ āĻĒāĻžāĻļ⧇ JavaScript

āĻĒā§āϰāϤāĻŋāϟāĻž browser-āĻāϰ āϭ⧇āϤāϰ⧇ āĻāĻ•āϟāĻž engine āφāϛ⧇āĨ¤ āϕ⧋āύ⧋ website JavaScript āĻĒāĻžāĻ āĻžāϞ⧇ browser āϏ⧇āϟāĻž āϚāĻžāϞāĻžāϝāĻŧ āĻ āĻŋāĻ• āϤ⧁āĻŽāĻŋ āϝ⧇ page āĻĻ⧇āĻ–āĻ› āϤāĻžāϰ āĻĒāĻžāĻļ⧇āχāĨ¤ āĻāĻ­āĻžāĻŦ⧇āχ āĻĒ⧁āϰ⧋ page reload āύāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻž "Like" button āύ⧀āϞ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

Browser-āĻāϰ āĻŦāĻžāĻĄāĻŧāϤāĻŋāϗ⧁āϞ⧋ āĻšāϞ⧋ page-āĻāϰ āϝāĻž āϝāĻž āϞāĻžāϗ⧇āĨ¤ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϜāϰ⧁āϰāĻŋāϟāĻž document, āĻŽāĻžāύ⧇ page āύāĻŋāĻœā§‡āχ, āĻĒāĻĄāĻŧāĻž āφāϰ āĻŦāĻĻāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻšāĻžāϤ⧇āϰ āĻ•āĻžāϛ⧇āĨ¤ āφāϰ⧇āĻ•āϟāĻž window, āĻŽāĻžāύ⧇ page-āϟāĻžāϕ⧇ āϘāĻŋāϰ⧇ āĻĨāĻžāĻ•āĻž browser tabāĨ¤ āĻĻ⧁āχāϟāĻžāχ āϤ⧁āĻŽāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇ Module 14-āĻ, lesson-āĻāϰ āϭ⧇āϤāϰ⧇āϰ āĻāĻ•āϟāĻž āύāĻŋāϰāĻžāĻĒāĻĻ sandbox-āĻāĨ¤

Browser āϕ⧀ āĻĻ⧇āϝāĻŧ āύāĻž, āϏ⧇āϟāĻžāĻ“ āϏāĻŽāĻžāύ āϜāϰ⧁āϰāĻŋāĨ¤ āĻāĻ•āϟāĻž web page āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇ āϤ⧋āĻŽāĻžāϰ laptop-āĻāϰ file āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ āĻœā§€āĻŦāύ⧇ āϝāϤ website āϖ⧁āϞ⧇āĻ›, āĻ“āχ āϏ⧀āĻŽāĻžāϟāĻžāχ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āϟāĻžāϰ āĻšāĻžāϤ āĻĨ⧇āϕ⧇ āϤ⧋āĻŽāĻžāϕ⧇ āĻŦāĻžāρāϚāĻŋāϝāĻŧ⧇ āϰ⧇āϖ⧇āϛ⧇āĨ¤

āϤāĻžāχ browser-āĻ JavaScript page āϛ⧁āρāϤ⧇ āĻĒāĻžāϰ⧇, āϤ⧋āĻŽāĻžāϰ file āϛ⧁āρāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

Server: Node.js

2009 āϏāĻžāϞ⧇ Ryan Dahl āύāĻžāĻŽā§‡ āĻāĻ•āϜāύ programmer Google Chrome-āĻāϰ engine, V8, āύāĻŋāϝāĻŧ⧇ āϏ⧇āϟāĻž browser-āĻāϰ āĻŦāĻžāχāϰ⧇ āϚāĻžāϞāĻžāϞ⧇āύāĨ¤ āϤāĻŋāύāĻŋ āϤāĻžāϤ⧇ server-āĻāϰ āĻĻāϰāĻ•āĻžāϰāĻŋ tool-āϗ⧁āϞ⧋ āϜ⧁āĻĄāĻŧ⧇ āĻĻāĻŋāϞ⧇āύ: file āĻĒāĻĄāĻŧāĻž āφāϰ āϞ⧇āĻ–āĻž, network-āĻ āĻ•āĻĨāĻž āĻŦāϞāĻž, āĻ…āĻ¨ā§āϝ program āϚāĻžāϞ⧁ āĻ•āϰāĻžāĨ¤ āĻĢāϞāϟāĻžāϰ āύāĻžāĻŽ āĻĻāĻŋāϞ⧇āύ Node.js, āϛ⧋āϟ āĻ•āϰ⧇ āϏāĻŦāĻžāχ āĻŦāϞ⧇ NodeāĨ¤

Node āύāϤ⧁āύ āϕ⧋āύ⧋ āĻ­āĻžāώāĻž āύāĻžāĨ¤ āĻāϟāĻž āĻāĻ•āχ JavaScript, āĻļ⧁āϧ⧁ āĻŦāĻžāĻĄāĻŧāϤāĻŋāϗ⧁āϞ⧋ āφāϞāĻžāĻĻāĻžāĨ¤ document-āĻāϰ āĻŦāĻĻāϞ⧇ āĻāĻ–āĻžāύ⧇ āφāϛ⧇ fs, āĻŽāĻžāύ⧇ file system module, āφāϰ process, āĻŽāĻžāύ⧇ āϚāϞāĻ¨ā§āϤ program-āϟāĻž āύāĻŋāĻœā§‡āχāĨ¤ Module 1-āĻāϰ starter code āϤ⧋āĻŽāĻžāϰ input āĻĒāĻĄāĻŧāϤ⧇ fs āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āĻŦāĻĄāĻŧ āĻŦāĻĄāĻŧ company āĻāϟāĻžāϰ āωāĻĒāϰ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ traffic āϚāĻžāϞāĻžāϝāĻŧāĨ¤ 2013 āϏāĻžāϞ⧇ PayPal āϤāĻžāĻĻ⧇āϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦā§āϝāĻ¸ā§āϤ page-āϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻž, account overview, āĻĻ⧁āχāĻŦāĻžāϰ āĻŦāĻžāύāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ: āĻāĻ•āĻŦāĻžāϰ Java-āϤ⧇, āĻāĻ•āĻŦāĻžāϰ Node-āĻāĨ¤ āĻ“āĻĻ⧇āϰ engineering blog āϜāĻžāύāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ, Node version-āϟāĻž āĻ•āĻŽ āϞ⧋āĻ• āĻĻāĻŋāϝāĻŧ⧇ āĻĒā§āϰāĻžāϝāĻŧ āĻĻā§āĻŦāĻŋāϗ⧁āĻŖ āĻĻā§āϰ⧁āϤ āĻŦāĻžāύāĻžāύ⧋ āϗ⧇āϛ⧇, āφāϰ āĻĒā§āϰāϤāĻŋāϟāĻž request-āĻāϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇ āĻ—āĻĄāĻŧ āϏāĻŽāϝāĻŧ 35% āĻ•āĻŽā§‡ āϗ⧇āϛ⧇āĨ¤

āϤāĻžāχ Node āĻŽāĻžāύ⧇ browser-āĻāϰ āĻŦāĻžāχāϰ⧇ V8, page-āĻāϰ āĻŦāĻĻāϞ⧇ file āφāϰ network āϏāĻšāĨ¤

āĻĢā§‹āύ āφāϰ desktop

āĻĢā§‹āύāĨ¤ React Native āĻŦāĻžāύāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ Facebook-āĻ (āĻāĻ–āύ Meta)āĨ¤ āĻāϟāĻž āĻĻāĻŋāϝāĻŧ⧇ JavaScript āĻāĻ•āϟāĻž āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āĻĢā§‹āύ app āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ Button āφāϰ list-āϗ⧁āϞ⧋ āĻĢā§‹āύ⧇āϰ āύāĻŋāĻœā§‡āϰ native āϜāĻŋāύāĻŋāϏ, āϕ⧋āύ⧋ web page āύāĻžāĨ¤ Meta āĻāϟāĻž Facebook āφāϰ Instagram app-āĻāϰ āĻ•āĻŋāϛ⧁ āĻ…āĻ‚āĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āφāϰ Instagram-āĻāϰ engineer-āϰāĻž screen-āϗ⧁āϞ⧋ āĻāϤ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āύ⧇āĻ“āϝāĻŧāĻž āύāĻŋāϝāĻŧ⧇ āϞāĻŋāϖ⧇āϛ⧇āύāĻ“āĨ¤

DesktopāĨ¤ Electron āĻāĻ•āϟāĻž browser engine āφāϰ Node-āϕ⧇ āĻāĻ•āϏāĻ™ā§āϗ⧇ āĻĒā§āϝāĻžāĻ• āĻ•āϰ⧇ āĻāĻ•āϟāĻž desktop program āĻŦāĻžāύāĻžāϝāĻŧāĨ¤ VS Code, āϝ⧇ code editor āĻ…āύ⧇āĻ• programmer āϰ⧋āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, Electron-āĻāϰ āωāĻĒāϰ āĻŦāĻžāύāĻžāύ⧋āĨ¤ Discord-āĻāϰ desktop app-āĻ“ āϤāĻžāχāĨ¤

āĻ āĻĻ⧁āχāϟāĻžāϰ āϕ⧋āύ⧋āϟāĻžāχ āĻĒā§āϰāĻĨāĻŽā§‡ āĻļ⧇āĻ–āĻžāϰ āϜāĻŋāύāĻŋāϏ āύāĻžāĨ¤ āĻĻ⧁āχāϟāĻžāχ āϏāĻžāϧāĻžāϰāĻŖ JavaScript āύāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻž āύāϤ⧁āύ socket-āĻ āĻŦāϏāĻžāϝāĻŧāĨ¤ āϏ⧇āϜāĻ¨ā§āϝāχ āĻāχ track āφāϗ⧇ āĻ­āĻžāώāĻžāϟāĻž āĻļ⧇āĻ–āĻžāϝāĻŧāĨ¤

āĻāĻ•āχ program, āĻĻ⧁āχāϟāĻž console-āĻ

Console āĻšāϞ⧋ āĻāĻ•āϟāĻž āϞ⧇āĻ–āĻžāϰ window, āϝ⧇āĻ–āĻžāύ⧇ program-āĻāϰ āĻ›āĻžāĻĒāĻž āϞāĻžāχāύāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž browser-āĻāϰ āϭ⧇āϤāϰ⧇ āĻāĻ•āϟāĻž āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇, āφāϰ Node āĻ›āĻžāĻĒ⧇ terminal-āĻ (āϝ⧇ āϞ⧇āĻ–āĻžāϰ window-āϤ⧇ āϤ⧁āĻŽāĻŋ command āϟāĻžāχāĻĒ āĻ•āϰ⧋)āĨ¤ āĻĻ⧁āχāϟāĻž āϕ⧀āĻ­āĻžāĻŦ⧇ āϖ⧁āϞāĻŦ⧇, āϏ⧇āϟāĻž Lesson 05 āĻĻ⧇āĻ–āĻžāĻŦ⧇āĨ¤

Example 1: āĻāĻ•āϟāĻž function, āĻĻ⧁āχ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ

āϛ⧋āϟ āĻāĻ•āϟāĻž function, āϝ⧇āϟāĻž āĻāĻ•āϟāĻž āφāϝāĻŧāϤāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰāĻĢāϞ āĻŦ⧇āϰ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻž āϞāĻžāχāύ āĻ›āĻžāĻĒ⧇āĨ¤ Function āĻ āĻŋāĻ•āĻŽāϤ⧋ āĻŦā§‹āĻāĻžāύ⧋ āĻšāĻŦ⧇ Module 5-āĻāĨ¤ āĻāĻ–āĻžāύ⧇ āĻāϟāĻžāϕ⧇ āĻĒāĻĄāĻŧā§‹ "āύāĻžāĻŽ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻāĻ•āϟāĻž āϰ⧇āϏāĻŋāĻĒāĻŋ, āϝ⧇āϟāĻž āĻāĻ•āϟāĻž āωāĻ¤ā§āϤāϰ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ" āĻšāĻŋāϏ⧇āĻŦ⧇āĨ¤

function area(width, height) {
  return width * height;
}

console.log("Area: " + area(4, 5));
Area: 20

āύāĻŋāĻšā§‡āϰ āĻĻ⧁āχāϟāĻž āĻ›āĻŦāĻŋāϤ⧇ āĻāĻ•āχ āĻĒāĻžāρāϚ āϞāĻžāχāύ āϚāĻžāϞāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ Chrome-āĻāϰ console-āĻ āφāϰ Node-āĻāĨ¤ āĻĻ⧁āχ āϜāĻžāϝāĻŧāĻ—āĻžāϤ⧇āχ āωāĻ¤ā§āϤāϰ āĻāĻ•āĨ¤

Compiler-āĻ āϚāĻžāϞāĻžāĻ“
Browser console-āĻ Example 1 Console Chrome DevTools, browser window-āĻāϰ āύāĻŋāĻšā§‡āϰ āĻĻāĻŋāϕ⧇ > function area(width, height) { return width * height; } console.log("Area: " + area(4, 5)); Area: 20 < undefined
āĻ›āĻŦāĻŋ 2āĨ¤ Browser console-āĻāĨ¤ āϧ⧂āϏāϰ undefined āĻšāϞ⧋ console-āĻāϰ āϜāĻžāύāĻžāύ⧋ āϝ⧇ āĻļ⧇āώ āϞāĻžāχāύāϟāĻž āϕ⧋āύ⧋ āĻŽāĻžāύ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāύāĻŋ; lesson 05 āĻāϟāĻž āĻŦ⧁āĻāĻŋāϝāĻŧ⧇ āĻŦāϞāĻŦ⧇āĨ¤
Node-āĻ Example 1, āĻāĻ•āϟāĻž file āĻĨ⧇āϕ⧇ Terminal āĻ“āχ āĻĒāĻžāρāϚ āϞāĻžāχāύ, area.js āύāĻžāĻŽā§‡ save āĻ•āϰāĻž $ node area.js Area: 20
āĻ›āĻŦāĻŋ 3āĨ¤ Node-āĻāĨ¤ āĻāĻ•āχ code, output-āĻāϰ āĻāĻ•āχ āϞāĻžāχāύ, āϕ⧋āĻĨāĻžāĻ“ āϕ⧋āύ⧋ browser āύ⧇āχāĨ¤

āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϟāĻž āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧ āĻļ⧁āϧ⧁ āϤāĻ–āύ, āϝāĻ–āύ program āϕ⧋āύ⧋ āϘāϰ⧇āϰ āĻŦāĻžāĻĄāĻŧāϤāĻŋ āϜāĻŋāύāĻŋāϏ⧇ āĻšāĻžāϤ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤ Example 2 āĻĒā§āϰāϤāĻŋāϟāĻž āϘāϰāϕ⧇ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧇, āϤāĻžāϰ āĻ•āĻžāϛ⧇ āϕ⧀ āφāϛ⧇āĨ¤

Example 2: āϘāϰāϕ⧇ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰāĻž, āϤ⧋āĻŽāĻžāϰ āĻ•āĻžāϛ⧇ āϕ⧀ āφāϛ⧇

typeof āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧇, āĻāĻ•āϟāĻž āύāĻžāĻŽā§‡āϰ āϭ⧇āϤāϰ⧇ āϕ⧋āύ āϧāϰāύ⧇āϰ āϜāĻŋāύāĻŋāϏ āφāϛ⧇āĨ¤ āĻĒ⧁āϰ⧋āϟāĻž āφāϏāĻŦ⧇ Module 1-āĻāĨ¤ āĻāĻ–āĻžāύ⧇ āĻāϟāĻž āĻāĻ•āϟāĻž āϏāĻšāϜ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ: āĻāχ āϘāϰ⧇ āĻ•āĻŋ āĻāĻ•āϟāĻž page, āĻāĻ•āϟāĻž tab āφāϰ āĻāĻ•āϟāĻž āϚāϞāĻ¨ā§āϤ process āφāϛ⧇?

console.log(typeof document, typeof window, typeof process);
undefined undefined object

āĻāϟāĻž Node-āĻāϰ āωāĻ¤ā§āϤāϰ, Playground-āĻāϰāĻ“: page āύ⧇āχ, tab āύ⧇āχ, āĻ•āĻŋāĻ¨ā§āϤ⧁ process āφāϛ⧇āĨ¤ āĻāĻ•āχ āϞāĻžāχāύ browser console-āĻ paste āĻ•āϰ⧋, āĻĒāĻžāĻŦ⧇ object object undefined, āĻāĻ•āĻĻāĻŽ āωāĻ˛ā§āĻŸā§‹āĨ¤

Compiler-āĻ āϚāĻžāϞāĻžāĻ“
Example 3: Node-āĻāϰ āύāĻŋāĻœā§‡āϰ āĻŦāĻžāĻĄāĻŧāϤāĻŋ āϜāĻŋāύāĻŋāϏ

āĻĻ⧁āχāϟāĻž āϜāĻŋāύāĻŋāϏ, āϝ⧇āϗ⧁āϞ⧋ browser-āĻ āύ⧇āχ: file system module āφāϰ processāĨ¤

const fs = require("fs");
console.log(typeof fs.readFileSync);
console.log(process.platform);
console.log(process.version.startsWith("v22"));
function
linux
true

readFileSync āĻāĻ•āϟāĻž āĻĒ⧁āϰ⧋ file āĻĒāĻĄāĻŧ⧇, āφāϰ Module 1-āĻāϰ starter āϤ⧋āĻŽāĻžāϰ input āĻĒāĻĄāĻŧāϤ⧇ āĻāϟāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ Playground āϚāϞ⧇ Linux-āĻ, āϤāĻžāχ āϞāĻžāχāύ 2 āĻŦāϞ⧇ linux; Windows laptop-āĻ āĻŦāϞāĻŦ⧇ win32āĨ¤ āϞāĻžāχāύ 3 āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ Node-āĻāϰ version 22āĨ¤

Compiler-āĻ āϚāĻžāϞāĻžāĻ“

Playground: āĻāĻ•āϟāĻž āĻŦāĻžāĻ•ā§āϏ⧇ Node.js 22

āĻāχ track-āĻāϰ āĻĒā§āϰāϤāĻŋāϟāĻž Run button āϤ⧋āĻŽāĻžāϰ code āĻĒāĻžāĻ āĻžāϝāĻŧ Progsity Playground-āĻāĨ¤ āĻ“āϟāĻž āĻ āĻŋāĻ• āϕ⧀, āĻāĻ–āĻžāύ⧇ āĻ–ā§‹āϞāĻžāϖ⧁āϞāĻŋ āĻŦāϞ⧇ āĻĻāĻŋāĻšā§āĻ›āĻŋ, āϝāĻžāϤ⧇ āĻ•āĻ–āύ⧋ āφāĻ¨ā§āĻĻāĻžāϜ āĻ•āϰāϤ⧇ āύāĻž āĻšāϝāĻŧāĨ¤

  • āĻāϟāĻž Node.js 22āĨ¤ āϤ⧋āĻŽāĻžāϰ code main.js āύāĻžāĻŽā§‡āϰ āĻāĻ•āϟāĻž file-āĻ save āĻšāϝāĻŧ, āφāϰ node command āĻĻāĻŋāϝāĻŧ⧇ āϚāϞ⧇, āĻāĻ•āϟāĻž sandbox-āĻāϰ āϭ⧇āϤāϰ⧇ (āϏāĻŽāϝāĻŧ āφāϰ memory-āϰ āϏ⧀āĻŽāĻž āĻŦāĻžāρāϧāĻž āĻāĻ•āϟāĻž āϤāĻžāϞāĻžāĻŦāĻ¨ā§āϧ āĻŦāĻžāĻ•ā§āϏ)āĨ¤
  • āĻāϤ⧇ stdin āφāϰ stdout āφāϛ⧇āĨ¤ stdin (standard input) āĻšāϞ⧋ Run āϚāĻžāĻĒāĻžāϰ āφāϗ⧇ Input box-āĻ āϤ⧁āĻŽāĻŋ āϝ⧇ āϞ⧇āĻ–āĻž āϟāĻžāχāĻĒ āĻ•āϰ⧋āĨ¤ stdout (standard output) āĻšāϞ⧋ āϤ⧋āĻŽāĻžāϰ program āϝāĻž āĻ•āĻŋāϛ⧁ āĻ›āĻžāĻĒ⧇āĨ¤
  • āĻāϤ⧇ āϕ⧋āύ⧋ page āύ⧇āχāĨ¤ document āύ⧇āχ, window-āĻ“ āύ⧇āχ, Example 2-āϤ⧇āχ āĻĻ⧇āϖ⧇āĻ›āĨ¤ Module 14-āĻāϰ browser lesson-āϗ⧁āϞ⧋ āϚāϞ⧇ lesson-āĻāϰ āϭ⧇āϤāϰ⧇āϰ āφāϞāĻžāĻĻāĻž āĻāĻ•āϟāĻž sandbox-āĻāĨ¤
  • āĻāϤ⧇ internet āύ⧇āχāĨ¤ āϕ⧋āύ⧋ program āĻ•āĻŋāϛ⧁ download āĻ•āϰāϤ⧇ āϚāĻžāχāϞ⧇ fail āĻ•āϰ⧇, āύāĻŋāĻšā§‡āϰ āĻĻ⧁āχ āύāĻŽā§āĻŦāϰ āϭ⧁āϞāϟāĻžāϝāĻŧ āϝ⧇āĻŽāύ āĻĻ⧇āĻ–āĻŦ⧇āĨ¤

āĻāχ track-āĻāϰ judged problem-āϗ⧁āϞ⧋āĻ“ āĻāĻ•āχ āĻŦāĻžāĻ•ā§āϏ⧇ āϚāϞ⧇āĨ¤ āϏ⧇āϜāĻ¨ā§āϝāχ āĻĒā§āϰāϤāĻŋāϟāĻž problem āϤāĻžāϰ input āĻĒāĻĄāĻŧ⧇ stdin āĻĨ⧇āϕ⧇, āωāĻ¤ā§āϤāϰ āĻ›āĻžāĻĒ⧇, āφāϰ āĻ•āĻ–āύ⧋ page āϛ⧋āρāϝāĻŧ āύāĻžāĨ¤

āϤāĻžāχ Playground āĻŽāĻžāύ⧇ input āφāϰ output āϏāĻš Node 22, āĻāϰ āĻŦ⧇āĻļāĻŋ āĻ•āĻŋāϛ⧁ āύāĻžāĨ¤

āĻāϟāĻž āϕ⧋āĻĨāĻžāϝāĻŧ āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āϛ⧇

  • BrowserāĨ¤ āϤ⧁āĻŽāĻŋ āϝāϤ website āĻ–ā§‹āϞ⧋, āϏāĻŦāϗ⧁āϞ⧋āϰ page-āĻ JavaScript āϚāϞ⧇āĨ¤ Google Maps-āĻ map āĻŸā§‡āύ⧇ āϏāϰāĻžāϞ⧇ JavaScript-āχ map-āϟāĻž āύāϤ⧁āύ āĻ•āϰ⧇ āφāρāϕ⧇, page reload āύāĻž āĻ•āϰ⧇āχāĨ¤
  • Server: Netflix āφāϰ PayPalāĨ¤ Netflix āϤāĻžāĻĻ⧇āϰ website-āĻāϰ page-āϗ⧁āϞ⧋ Node āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ PayPal 2013 āϏāĻžāϞ⧇ āϤāĻžāĻĻ⧇āϰ account overview page Node-āĻ āϏāϰāĻŋāϝāĻŧ⧇ āύ⧇āϝāĻŧ, āφāϰ āωāĻĒāϰ⧇ āĻŦāϞāĻž āĻ—āϤāĻŋāϰ āĻšāĻŋāϏāĻžāĻŦāϟāĻž āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇āĨ¤
  • āĻĢā§‹āύ: React NativeāĨ¤ Meta-āϰ Facebook āφāϰ Instagram app-āĻāϰ āĻ•āĻŋāϛ⧁ āĻ…āĻ‚āĻļ React Native āĻĻāĻŋāϝāĻŧ⧇ JavaScript-āĻ āϞ⧇āĻ–āĻž, āφāϰ āϏ⧇āϗ⧁āϞ⧋ āĻĢā§‹āύ⧇āϰ āύāĻŋāĻœā§‡āϰ native screen āφāρāϕ⧇āĨ¤
  • Desktop: ElectronāĨ¤ VS Code āφāϰ Discord-āĻāϰ desktop app āĻšāϞ⧋ Electron-āĻ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ JavaScript programāĨ¤ āϤāĻžāχ āĻāĻ•āϟāĻžāχ codebase Windows, macOS āφāϰ Linux-āĻ āϚāϞ⧇āĨ¤

āϝ⧇ āϭ⧁āϞāϗ⧁āϞ⧋ āϏāĻŦāĻžāχ āĻ•āϰ⧇

ā§§. Playground-āĻ page āϖ⧁āρāϜāϤ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāĨ¤

const title = document.querySelector("h1");
console.log(title);

Node.js 22 āϞāĻžāχāύ 1-āĻāχ āĻĨ⧇āĻŽā§‡ āϝāĻžāϝāĻŧ: ReferenceError: document is not definedāĨ¤ Node-āĻ āϕ⧋āύ⧋ page āύ⧇āχ, āϤāĻžāχ document āύāĻžāĻŽā§‡ āĻ•āĻŋāϛ⧁āχ āύ⧇āχāĨ¤ āϕ⧋āύ⧋ tutorial āĻĨ⧇āϕ⧇ browser-āĻāϰ code copy āĻ•āϰāĻžāϰ āĻĒāϰ āĻāχ āϭ⧁āϞāϟāĻž āϤ⧁āĻŽāĻŋ āĻ•āϰāĻŦ⧇āχāĨ¤ Page-āĻāϰ code āϚāĻžāϞāĻžāĻ“ browser-āĻ, āφāϰ judged problem āϚāĻžāϞāĻžāĻ“ stdin āĻĻāĻŋāϝāĻŧ⧇āĨ¤

⧍. Playground internet-āĻ āϝ⧇āϤ⧇ āĻĒāĻžāϰāĻŦ⧇, āĻāϟāĻž āϧāϰ⧇ āύ⧇āĻ“āϝāĻŧāĻžāĨ¤

fetch("https://example.com").then((response) => console.log(response.status));

Playground-āĻ āĻāϟāĻž āĻļ⧇āώ āĻšāϝāĻŧ TypeError: fetch failed āĻĻāĻŋāϝāĻŧ⧇, āφāϰ āĻ•āĻžāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĨāĻžāϕ⧇ getaddrinfo EAI_AGAIN example.com: āĻŦāĻžāĻ•ā§āϏāϟāĻž address-āϟāĻž āϖ⧁āρāĻœā§‡āχ āĻĒāĻžāϝāĻŧāύāĻŋāĨ¤ āύāĻŋāĻœā§‡āϰ āĻŽā§‡āĻļāĻŋāύ⧇ āĻāĻ•āχ āϞāĻžāχāύ āĻ›āĻžāĻĒ⧇ 200āĨ¤ Sandbox-āĻ network āχāĻšā§āĻ›āĻž āĻ•āϰ⧇āχ āϰāĻžāĻ–āĻž āĻšāϝāĻŧāύāĻŋ, āϝāĻžāϤ⧇ āϕ⧋āύ⧋ judged program āĻŦāĻžāχāϰ⧇ āĻĨ⧇āϕ⧇ āωāĻ¤ā§āϤāϰ āĻāύ⧇ āύāĻŋāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇āĨ¤

ā§Š. Frontend āφāϰ backend JavaScript āĻĻ⧁āχāϟāĻž āφāϞāĻžāĻĻāĻž āĻ­āĻžāώāĻž, āĻāϟāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāĻžāĨ¤

āϕ⧋āύ⧋ error āĻāϟāĻž āϤ⧋āĻŽāĻžāϕ⧇ āĻŦāϞāĻŦ⧇ āύāĻž; āϤ⧁āĻŽāĻŋ āĻļ⧁āϧ⧁ āĻāĻ•āχ āϜāĻŋāύāĻŋāϏ āĻĻ⧁āχāĻŦāĻžāϰ āĻļāĻŋāĻ–āĻŦ⧇āĨ¤ Example 1 āĻāĻ•āχ āϞāĻžāχāύ āϛ⧇āĻĒ⧇āϛ⧇ browser-āĻ āφāϰ Node-āĻāĨ¤ āĻ­āĻžāώāĻžāϟāĻž āĻāĻ•āĻŦāĻžāϰ āĻļ⧇āĻ–ā§‹, āϤāĻžāϰāĻĒāϰ āĻĻāϰāĻ•āĻžāϰ āĻĒāĻĄāĻŧāϞ⧇ āĻĒā§āϰāϤāĻŋāϟāĻž āϘāϰ⧇āϰ āĻŦāĻžāĻĄāĻŧāϤāĻŋāϗ⧁āϞ⧋ āĻļāĻŋāϖ⧇ āύāĻŋāĻ“āĨ¤

ā§Ē. Node.js-āϕ⧇ āĻ­āĻžāώāĻž āĻŦāĻž framework āĻŦāϞāĻžāĨ¤

Node āĻāĻ•āϟāĻž runtime: āĻāĻ•āϟāĻž engine, āϏāĻ™ā§āϗ⧇ āĻ•āĻŋāϛ⧁ toolāĨ¤ Interview-āϤ⧇ "āφāĻŽāĻŋ Node āϜāĻžāύāĻŋ, āĻ•āĻŋāĻ¨ā§āϤ⧁ JavaScript āϜāĻžāύāĻŋ āύāĻž" āĻŦāϞāϞ⧇ āĻ•āĻĨāĻžāϟāĻžāϰ āϕ⧋āύ⧋ āĻŽāĻžāύ⧇āχ āĻšāϝāĻŧ āύāĻžāĨ¤ āĻŦāϞ⧋ "āφāĻŽāĻŋ JavaScript āϞāĻŋāĻ–āĻŋ, āφāϰ server-āĻ Node āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤"

āĻŽāĻžāĻĨāĻž āĻ–āĻžāϟāĻžāĻ“

āĻāχ āĻāĻ• āϞāĻžāχāύ browser console-āĻ āϚāĻžāϞāĻžāϞ⧇ āĻāĻ•āϟāĻž āϛ⧋āϟ message box āϭ⧇āϏ⧇ āĻ“āϠ⧇:

alert("hi");

āĻāĻŦāĻžāϰ āĻāϟāĻž Playground-āĻ āϚāĻžāϞāĻžāĻ“āĨ¤ āϕ⧀ āĻšāĻŦ⧇, āφāϰ āϕ⧇āύ? Run āϚāĻžāĻĒāĻžāϰ āφāϗ⧇āχ āĻŦāϞ⧋, āϕ⧋āύ āϧāϰāύ⧇āϰ error āφāϏāĻŦ⧇āĨ¤

Message box āĻāĻŽāύ āϜāĻŋāύāĻŋāϏ, āϝ⧇āϟāĻž āĻāĻ•āϟāĻž browser tab āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āύāĻŋāĻœā§‡āϕ⧇ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧋, āϚāĻžāϰāϟāĻž āϘāϰ⧇āϰ āϕ⧋āύāϟāĻžāϝāĻŧ tab āφāϛ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ Example 2 window-āĻāϰ āϜāĻ¨ā§āϝ āϕ⧀ āϛ⧇āĻĒ⧇āĻ›āĻŋāϞ, āϏ⧇āϟāĻž āφāĻŦāĻžāϰ āĻĻ⧇āĻ–ā§‹āĨ¤

āĻ…āύ⧁āĻļā§€āϞāύ ā§§āϏāĻšāϜ

Example 1 āϤāĻžāϰ Run link āĻĻāĻŋāϝāĻŧ⧇ āϚāĻžāϞāĻžāĻ“āĨ¤ āϤāĻžāϰāĻĒāϰ area(4, 5) āĻŦāĻĻāϞ⧇ area(7, 3) āĻ•āϰ⧋, āφāϰ āφāĻŦāĻžāϰ āϚāĻžāϞāĻžāĻ“āĨ¤

āύāĻŋāĻœā§‡ āϝāĻžāϚāĻžāχ āĻ•āϰ⧋āĨ¤ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāĻŦāĻžāϰ āĻ›āĻžāĻĒāĻŦ⧇ Area: 21āĨ¤ āφāĻŦāĻžāϰāĻ“ Area: 20 āĻĒ⧇āϞ⧇ āĻŦ⧁āĻāĻŦ⧇, Run āϚāĻžāĻĒāĻžāϰ āφāϗ⧇ āĻŦāĻĻāϞāϟāĻž save āĻšāϝāĻŧāύāĻŋāĨ¤

āĻ…āύ⧁āĻļā§€āϞāύ ⧍āĻŽāĻžāĻāĻžāϰāĻŋ

āϚāĻžāϰ āϏāĻžāϰāĻŋāϰ āĻāĻ•āϟāĻž āϛ⧋āϟ table āĻŦāĻžāύāĻžāĻ“, āĻĒā§āϰāϤāĻŋāϟāĻž āϘāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻž āϏāĻžāϰāĻŋ: browser, Node, React Native āφāϰ ElectronāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž āϏāĻžāϰāĻŋāϤ⧇ āĻĻ⧁āχāϟāĻž āĻ•āϞāĻžāĻŽ āϰāĻžāĻ–ā§‹: "page āϛ⧁āρāϤ⧇ āĻĒāĻžāϰ⧇" āφāϰ "file āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇"āĨ¤

āύāĻŋāϝāĻŧāĻŽāĨ¤ āωāĻ¤ā§āϤāϰ āĻĻ⧇āĻŦ⧇ āĻļ⧁āϧ⧁ āĻāχ lesson āĻĨ⧇āϕ⧇, āĻšā§āϝāĻžāρ āĻŦāĻž āύāĻž āĻĻāĻŋāϝāĻŧ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž āϏāĻžāϰāĻŋāϤ⧇ āĻāĻ•āϟāĻž āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ product āϝ⧋āĻ— āĻ•āϰ⧋āĨ¤

āύāĻŋāĻœā§‡ āϝāĻžāϚāĻžāχ āĻ•āϰ⧋āĨ¤ Browser-āĻāϰ āϏāĻžāϰāĻŋ "āĻšā§āϝāĻžāρ, āύāĻž"āĨ¤ Node-āĻāϰ āϏāĻžāϰāĻŋ "āύāĻž, āĻšā§āϝāĻžāρ"āĨ¤ Electron-āĻāϰ āϭ⧇āϤāϰ⧇ browser engine āφāϰ Node āĻĻ⧁āχāϟāĻžāχ āφāϛ⧇, āϤāĻžāχ āĻ­āĻžāĻŦā§‹ āĻāϤ⧇ āϏ⧇ āϕ⧀ āĻĒāĻžāϝāĻŧāĨ¤ React Native native screen āφāρāϕ⧇, web page āύāĻžāĨ¤

āĻ…āύ⧁āĻļā§€āϞāύ ā§ŠāĻ•āĻ āĻŋāύ

āĻāĻ• āĻŦāĻ¨ā§āϧ⧁ āĻāĻ•āϟāĻž judged problem āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϤ⧇ āϚāĻžāϝāĻŧāĨ¤ āϏ⧇ input āĻĒāĻĄāĻŧāĻŦ⧇ web page-āĻāϰ āĻāĻ•āϟāĻž text box āĻĨ⧇āϕ⧇, document.querySelector āĻĻāĻŋāϝāĻŧ⧇āĨ¤ āϤāĻŋāύ āĻŦāĻžāĻ•ā§āϝ⧇ āĻŦ⧁āĻāĻŋāϝāĻŧ⧇ āĻŦāϞ⧋, āĻāχ track-āĻ āϏ⧇āϟāĻž āϕ⧇āύ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āύāĻž, āφāϰ program-āϟāĻžāϰ āĻŦāĻĻāϞ⧇ āϕ⧀ āĻĒāĻĄāĻŧāĻž āωāϚāĻŋāϤāĨ¤

āύāĻŋāĻœā§‡ āϝāĻžāϚāĻžāχ āĻ•āϰ⧋āĨ¤ āĻ­āĻžāϞ⧋ āωāĻ¤ā§āϤāϰ⧇ āĻĨāĻžāϕ⧇ judge āϕ⧋āύ āϘāϰ⧇ āϚāϞ⧇, āĻŦāĻ¨ā§āϧ⧁ āϕ⧋āύ error āĻĻ⧇āĻ–āĻŦ⧇, āφāϰ stdināĨ¤ Module 1-āĻāϰ lesson 05 stdin āĻĒāĻĄāĻŧāĻžāϰ āĻšā§āĻŦāĻšā§ āϞāĻžāχāύāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤

āϝ⧇ āĻĒā§āϰāĻļā§āύāϗ⧁āϞ⧋ āϏāĻŦāĻžāϰ āĻŽāύ⧇ āφāϏ⧇

  • Node.js āĻ•āĻŋ āĻāĻ•āϟāĻž programming language?

    āύāĻžāĨ¤ Node āĻāĻ•āϟāĻž runtime: V8 engine, āϏāĻ™ā§āϗ⧇ file, network āφāϰ process-āĻāϰ toolāĨ¤ Node-āĻ āϤ⧁āĻŽāĻŋ āϝ⧇ āĻ­āĻžāώāĻžāϝāĻŧ āϞ⧇āĻ–ā§‹, āϏ⧇āϟāĻž JavaScriptāĨ¤

  • āĻāĻ–āύāχ āĻ•āĻŋ frontend āύāĻžāĻ•āĻŋ backend, āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ?

    āĻāĻ–āύ⧋ āύāĻžāĨ¤ āĻĻ⧁āχāϟāĻžāϤ⧇āχ āĻāĻ•āχ āĻ­āĻžāώāĻž āϞāĻžāϗ⧇, āφāϰ Module 1 āĻĨ⧇āϕ⧇ 13 āϏ⧇āϟāĻžāχ āĻļ⧇āĻ–āĻžāϝāĻŧāĨ¤ āϤāĻžāϰāĻĒāϰ Module 14 browser-āĻāϰ āĻŦāĻžāĻĄāĻŧāϤāĻŋāϗ⧁āϞ⧋ āĻ–ā§‹āϞ⧇āĨ¤ āϤāĻ–āύ āĻšāĻžāϤ⧇ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āύāĻŋāϝāĻŧ⧇ āĻŦāĻžāĻ›āϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

  • Deno āφāϰ Bun āϕ⧀?

    Node-āĻāϰ āĻŽāϤ⧋āχ āĻĻ⧁āχāϟāĻž āύāϤ⧁āύ runtimeāĨ¤ Deno āĻļ⧁āϰ⧁ āĻ•āϰ⧇āϛ⧇āύ Node-āĻāϰ āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻž āύāĻŋāĻœā§‡āχ, āφāϰ āĻāϟāĻžāĻ“ V8 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ Bun āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ JavaScriptCore, āĻŽāĻžāύ⧇ Safari-āϰ engineāĨ¤ āϤ⧋āĻŽāĻžāϰ JavaScript āϤāĻŋāύāϟāĻžāϤ⧇āχ āϚāϞ⧇āĨ¤

  • āĻāĻ•āϟāĻž āĻĢā§‹āύ app JavaScript-āĻ āϞ⧇āĻ–āĻž āĻšāϞ⧇, āĻ“āϟāĻž āĻ•āĻŋ āφāϏāϞ⧇ āĻāĻ•āϟāĻž website?

    React Native-āĻ āύāĻžāĨ¤ āϕ⧀ āĻĻ⧇āĻ–āĻžāĻŦ⧇ āϏ⧇āϟāĻž āĻ āĻŋāĻ• āĻ•āϰ⧇ JavaScript, āĻ•āĻŋāĻ¨ā§āϤ⧁ button āφāϰ list-āϗ⧁āϞ⧋ āĻĢā§‹āύ⧇āϰ āύāĻŋāĻœā§‡āϰ native āĻ…āĻ‚āĻļāĨ¤ āϏ⧇āϜāĻ¨ā§āϝāχ āĻāĻŽāύ app āĻšāĻžāϤ⧇ āύāĻŋāϞ⧇ āϏāĻžāϧāĻžāϰāĻŖ āĻĢā§‹āύ app-āĻāϰ āĻŽāϤ⧋āχ āϞāĻžāϗ⧇āĨ¤

  • āϞ⧋āϕ⧇ āϕ⧇āύ āĻŦāϞ⧇ Electron app āĻ­āĻžāϰ⧀?

    āĻĒā§āϰāϤāĻŋāϟāĻž Electron app āύāĻŋāĻœā§‡āϰ āϏāĻ™ā§āϗ⧇ āĻāĻ•āϟāĻž browser engine-āĻāϰ āφāϞāĻžāĻĻāĻž āĻ•āĻĒāĻŋ āύāĻŋāϝāĻŧ⧇ āφāϏ⧇āĨ¤ āϤāĻžāχ native app-āĻāϰ āĻšā§‡āϝāĻŧ⧇ download āĻŦāĻĄāĻŧ āĻšāϝāĻŧ, memory-āĻ“ āĻŦ⧇āĻļāĻŋ āϞāĻžāϗ⧇āĨ¤ āϤāĻŦ⧁ VS Code āĻĻ⧇āĻ–āĻžāϝāĻŧ, āϝāĻ¤ā§āύ āĻ•āϰ⧇ āĻ•āĻžāϜ āĻ•āϰāϞ⧇ āĻāĻŽāύ app-āĻ“ āĻĻā§āϰ⧁āϤ āϰāĻžāĻ–āĻž āϝāĻžāϝāĻŧāĨ¤

āĻŽā§‚āϞ āĻ•āĻĨāĻž

  • JavaScript āϚāϞ⧇ āϚāĻžāϰ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ: browser, server (Node.js), āĻĢā§‹āύ (React Native) āφāϰ desktop (Electron)āĨ¤
  • āĻ­āĻžāώāĻž āϏāĻŦāĻ–āĻžāύ⧇ āĻāĻ•āχ, āφāϰ āĻĒā§āϰāϤāĻŋāϟāĻž āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻāĻ•āϟāĻž engine āϏ⧇āϟāĻž āϚāĻžāϞāĻžāϝāĻŧ; āĻŦāĻĻāϞāĻžāϝāĻŧ āĻļ⧁āϧ⧁, āϕ⧋āύ āϜāĻžāϝāĻŧāĻ—āĻž code-āϕ⧇ āϕ⧀ āϛ⧁āρāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤
  • Browser-āĻ āφāϛ⧇ page (document, window); Node-āĻ āφāϛ⧇ file āφāϰ process (fs, process)āĨ¤
  • Node.js āĻšāϞ⧋ browser-āĻāϰ āĻŦāĻžāχāϰ⧇ āϚāĻžāϞāĻžāύ⧋ V8 engine, 2009 āϏāĻžāϞ⧇ Ryan Dahl-āĻāϰ āĻŦāĻžāύāĻžāύ⧋āĨ¤
  • Playground āĻšāϞ⧋ sandbox-āĻ Node.js 22: stdin āĻĻāĻŋāϝāĻŧ⧇ input āĻĸā§‹āϕ⧇, stdout āĻĻāĻŋāϝāĻŧ⧇ output āĻŦ⧇āϰ āĻšāϝāĻŧ, page āύ⧇āχ, internet āύ⧇āχāĨ¤

āĻĒāϰ⧇āϰ lesson-āĻ āĻ…āĻ¨ā§āϝ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻž āĻĒā§āϰāĻļā§āύ: āϤ⧋āĻŽāĻžāϰ career-āĻ JavaScript āϕ⧀ āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āĻŦ⧇, āϏāĻ‚āĻ–ā§āϝāĻž āφāϰ āϤāĻžāĻĻ⧇āϰ āĻ‰ā§ŽāϏ āϏāĻšāĨ¤

lesson ⧍ āĻļ⧇āώ

āĻļ⧇āώ āĻšāϞ⧇ āϚāĻŋāĻšā§āύ āĻĻāĻŋāύ, āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āφāĻĒāύāĻžāϰ āϏāĻžāĻĨ⧇ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

āĻĒāϰ⧇āϰāϟāĻž: āϚāĻžāĻ•āϰāĻŋāϰ āĻŦāĻžāϜāĻžāϰ, āϏ⧋āϜāĻžāϏāĻžāĻĒā§āϟāĻž: JavaScript āĻĻāĻŋāϝāĻŧ⧇ āϕ⧀ āĻšāϝāĻŧ, āϕ⧀ āĻšāϝāĻŧ āύāĻž

āϕ⧋āĻĨāĻžāϝāĻŧ āϚāϞ⧇: browser, server, phone, desktop | Learn JavaScript | Progsity