メインコンテンツまでスキップ

JavaScript Features

Core Language Features

Variables and Data Types

Variable Declarations

var oldWay = 'legacy';
let mutable = 'modern';
const immutable = 'constant';

Primitive Types

  • Number: Both integer and floating-point
  • String: Text data
  • Boolean: true/false
  • undefined: Uninitialized value
  • null: Intentional absence of value
  • Symbol: Unique identifier
  • BigInt: Large integers

Functions

Function Declarations

// Traditional function
function greet(name) {
return `Hello, ${name}!`;
}

// Arrow function
const greetArrow = (name) => `Hello, ${name}!`;

// Function with default parameters
function greetWithDefault(name = 'Guest') {
return `Hello, ${name}!`;
}

Objects and Classes

Object Literals

const person = {
name: 'John',
age: 30,
greet() {
return `Hello, I'm ${this.name}`;
},
};

Classes

class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}

greet() {
return `Hello, I'm ${this.name}`;
}
}

Modern JavaScript Features (ES6+)

Destructuring

Array Destructuring

const [first, second, ...rest] = [1, 2, 3, 4, 5];
console.log(first); // 1
console.log(rest); // [3, 4, 5]

Object Destructuring

const { name, age, ...other } = person;
console.log(name); // "John"

Spread Operator

// Array spread
const numbers = [1, 2, 3];
const moreNumbers = [...numbers, 4, 5];

// Object spread
const enhanced = { ...person, role: 'developer' };

Template Literals

const name = 'John';
const greeting = `Hello ${name},
Welcome to JavaScript!`;

Optional Chaining

const value = object?.property?.nestedProperty;
const result = array?.[0]?.property;

Nullish Coalescing

const value = null;
const fallback = value ?? 'default';

Modules

Exporting

// Named exports
export const helper = () => {};
export class Utils {}

// Default export
export default class MainClass {}

Importing

// Named imports
import { helper, Utils } from './module';

// Default import
import MainClass from './module';

// Namespace import
import * as module from './module';

Asynchronous Features

Promises

const fetchData = () => {
return new Promise((resolve, reject) => {
// Async operation
if (success) {
resolve(data);
} else {
reject(error);
}
});
};

Async/Await

async function getData() {
try {
const result = await fetchData();
return result;
} catch (error) {
console.error(error);
}
}

Iterators and Generators

// Iterator
const iterator = {
*[Symbol.iterator]() {
yield 1;
yield 2;
yield 3;
},
};

// Generator
function* numberGenerator() {
yield 1;
yield 2;
yield 3;
}

Next Steps

  1. Learn about the Advantages & Disadvantages of using JavaScript
  2. Set up your Development Environment
  3. Explore Core Concepts for advanced patterns