"use strict";
/*
* String Object Example
* ---------------------
* Demonstrates:
* - Creating strings
* - Accessing characters
* - Common String methods
* - String searching
* - String modification
* - Template literals
* - Custom functions
*/
/*
The most commonly used methods are:
-----------------------------------
trim()
toUpperCase()
toLowerCase()
includes()
startsWith()
endsWith()
slice()
replace()
split()
*/
// Create a string (recommended approach)
const message = " Hello JavaScript World! ";
/**
* Converts a string to title case.
*
* Example:
* "hello world" => "Hello World"
*
* @param {string} text
* @returns {string}
*/
function toTitleCase(text) {
return text
.toLowerCase()
.split(" ")
.map(word => {
if (word.length === 0) {
return "";
}
return word[0].toUpperCase() + word.slice(1);
})
.join(" ");
}
/**
* Counts the number of words in a string.
*
* @param {string} text
* @returns {number}
*/
function countWords(text) {
return text
.trim()
.split(/\s+/)
.filter(word => word.length > 0)
.length;
}
// --------------------------------------------------
// Original String
// --------------------------------------------------
console.log("=== Original String ===");
console.log(message);
// --------------------------------------------------
// Remove Leading and Trailing Spaces
// --------------------------------------------------
const trimmedMessage = message.trim();
console.log("\n=== trim() ===");
console.log(trimmedMessage);
// --------------------------------------------------
// String Length
// --------------------------------------------------
console.log("\n=== length ===");
console.log(trimmedMessage.length);
// --------------------------------------------------
// Access Characters
// --------------------------------------------------
console.log("\n=== Character Access ===");
console.log(trimmedMessage[0]);
console.log(trimmedMessage.charAt(1));
// --------------------------------------------------
// Convert Case
// --------------------------------------------------
console.log("\n=== Case Conversion ===");
console.log(trimmedMessage.toUpperCase());
console.log(trimmedMessage.toLowerCase());
// --------------------------------------------------
// Search Within a String
// --------------------------------------------------
console.log("\n=== Search Methods ===");
console.log(trimmedMessage.includes("JavaScript"));
console.log(trimmedMessage.startsWith("Hello"));
console.log(trimmedMessage.endsWith("World!"));
console.log(trimmedMessage.indexOf("JavaScript"));
// --------------------------------------------------
// Extract Text
// --------------------------------------------------
console.log("\n=== Extract Text ===");
console.log(trimmedMessage.slice(6, 16));
console.log(trimmedMessage.substring(6, 16));
// --------------------------------------------------
// Replace Text
// --------------------------------------------------
console.log("\n=== Replace Text ===");
const updatedMessage = trimmedMessage.replace(
"JavaScript",
"TypeScript"
);
console.log(updatedMessage);
// --------------------------------------------------
// Split into Array
// --------------------------------------------------
console.log("\n=== split() ===");
const words = trimmedMessage.split(" ");
console.log(words);
// --------------------------------------------------
// Repeat a String
// --------------------------------------------------
console.log("\n=== repeat() ===");
console.log("=".repeat(20));
// --------------------------------------------------
// Template Literals
// --------------------------------------------------
console.log("\n=== Template Literals ===");
const language = "JavaScript";
const version = "ES2024";
const description =
`${language} programming (${version})`;
console.log(description);
// --------------------------------------------------
// Custom Function Examples
// --------------------------------------------------
console.log("\n=== Custom Functions ===");
const title = toTitleCase("learning javascript is fun");
console.log(title);
const wordCount = countWords(trimmedMessage);
console.log(`Word count: ${wordCount}`);
/*
run:
=== Original String ===
Hello JavaScript World!
=== trim() ===
Hello JavaScript World!
=== length ===
23
=== Character Access ===
H
e
=== Case Conversion ===
HELLO JAVASCRIPT WORLD!
hello javascript world!
=== Search Methods ===
true
true
true
6
=== Extract Text ===
JavaScript
JavaScript
=== Replace Text ===
Hello TypeScript World!
=== split() ===
[ 'Hello', 'JavaScript', 'World!' ]
=== repeat() ===
====================
=== Template Literals ===
JavaScript programming (ES2024)
=== Custom Functions ===
Learning Javascript Is Fun
Word count: 3
*/