」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JS - 關於字串原語的一切

JS - 關於字串原語的一切

發佈於2024-11-01
瀏覽:211

JS - All about String Primitive

  • 字串是基元,但它們仍然具有可在物件上使用的方法。
  • 每當我們呼叫字串上的方法時,JS 都會在後台將 String 原語轉換為 String 對象,然後在該對像上呼叫方法。此過程稱為裝箱,因為 String 基元被取出並放入充當盒子的 String 物件內,即它將參數傳遞到「new String()」方法內,將字串基元轉換為字串物件。
  • 作業完成後,物件在背景從 String 物件轉換回 String 基元。
  • 傳遞到「new String()」的任何內容都會成為可以使用 typeof 運算子進行驗證的物件。
const car = 'Lamborghini Huracan EVO';

// Similarity of strings with arrays in JS
car[0];
car[car.length-1];
car.length;

// From begin
car.indexOf('o');
car.indexOf('Huracan');

// From end
car.lastIndexOf('E');

// index(begin, end) are used to extract part of string which are then passed to slice() as argument.
car.slice(car.indexOf('o'));
car.slice(8);
car.slice(8,15);  // Extracted string length will be (end-begin) as mentioned below

// String are primitives, hence immutable. Always use a data-structure to return a new string after the operation.

// Extract till a particular location inside an index.
car.slice(0, car.indexOf(' '));

// Extract the last word.
car.slice(car.lastIndexOf(' ')); // extracts along with space
car.slice(car.lastIndexOf(' ')   1); //  1 added to exclude the space

// Extract from the end using negative values
car.slice(-7);
car.slice(1, -1);
car.slice(0, -1);

function knowYourSeatLocation(seat){
  const x = seat.slice(-1);
  if(x === 'W'){     console.log("Window Seat");  }
  if(x === 'M'){    console.log("Middle Seat");  }
  if(x === 'A'){    console.log("Aisle Seat");  }
}
knowYourSeatLocation('43W');
knowYourSeatLocation('12A');
knowYourSeatLocation('67M');

// Common Methods:
car.toLowerCase();
car.toUpperCase();
car.trim();
car.trimStart();
car.trimEnd();

// Methods returning boolean: Very good for conditional statements.
car.includes('Lambo');
car.startsWith('Lam');
car.endsWith('EVO');

// On taking user i/p convert it to lowercase before performing any operations on the text. It would eliminate a lot of error sources related to letter-case.

// Usage: Converting first letter to uppercase incase user enters name in mixed case to maintain consistency
// Usage: Email validation for characters esp whitespace, invalid characters etc.

// String replacement: (ToBeReplaced, ReplceWith)
// replace() : A case-sensitive method. Immutable Methods for functional Programming:
car.replace(' ','_');
car.replaceAll(' ','_');

// Using RegEx: Target text has to be enclosed between // with flag at the end. Desired text to be passed as second argument.
car.replace(/ini/g,'123456');

// .split(): split the text based on condition, return the elements in the form of an array
// .join(): opposite of .split()
car.split(''); // as characters
car.split(' '); // as words
car.split('i'); // based on a character

// Destrucutring makes it easier as compared to using .slice()
const name = 'Peter Parker';
const [fName, lName] = name.split(' ');
fName;
lName;

//  Adding saluttations to the name:
const title = ['Mr.', fName, lName.toUpperCase()].join(' ');
title;

// Usage: First letter of a Name capitalization
const capitalizeName = function(name){
  const names = name.split(' ');
  const namesUpper = [];

  for(const n of names){
    // Method 1 and Method 2 are listed below in two lines. Both work.
    // namesUpper.push(n[0].toUpperCase()   n.slice(1));
    namesUpper.push(n.replace(n[0],n[0].toUpperCase()));
  }
  console.log(namesUpper.join(' '));
};

capitalizeName('amar akbar anthony amarjeet');


// Padding a string i.e adding certain characters until a desired length is achieved.
// (DesiredLength, ToBePaddedWith)
const msg = 'Welcome to JS';
msg.padStart(20,'x');
msg.padEnd(20,'x');

// Convert a no into its string form by using: String()
// Another way is to add an '' to a number i.e When one operand of a   sign is string, all operands are converted into string form.

// Usage: Masking certain numbers of important documents
const maskedId = function(id){
  const str = id   '';
  const lastFour = str.slice(-4);
  return lastFour.padStart(str.length, '*');
}
maskedId(92837483297492);
maskedId('r438t7h4irgrgTAFE');


// repeat(NoOfTimeToBeRepeated) : Repeat the same text multiple times
const msgText = 'Raining.\n';
msgText.repeat(5 );

const TrainsWaiting = function(x){
  console.log(`There are ${x} trains waiting on the station ${'?'.repeat(x)} \n`);
}

TrainsWaiting(4);
TrainsWaiting(16);
TrainsWaiting(8);

// Extract string from a long text received from an API based on some separator found in text.
const data = 'Departure';

版本聲明 本文轉載於:https://dev.to/mahf001/js-all-about-string-primitive-50bp?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 了解非同步 JavaScript
    了解非同步 JavaScript
    JavaScript 是一種單執行緒語言,這意味著它一次只能做一件事。然而,Web 應用程式通常需要執行從伺服器取得資料等任務,這可能需要一些時間。如果 JavaScript 必須等待每個任務完成才能繼續,那麼您的 Web 應用程式將會變得緩慢且無回應。這就是非同步(async)JavaScript...
    程式設計 發佈於2024-11-07
  • 您應該避免的錯誤(以及如何修復它們)
    您應該避免的錯誤(以及如何修復它們)
    身為 React 開發人員,很容易陷入某些編碼模式,這些模式一開始看起來很方便,但最終可能會導致問題。在這篇文章中,我們將探討 5 個常見的 React 錯誤,並討論如何避免它們,確保您的程式碼保持高效、可維護和可擴展。 1. 濫用關鍵道具 錯誤: {myList.map((ite...
    程式設計 發佈於2024-11-07
  • 如何在 PHP 中存取 JavaScript 變數值?
    如何在 PHP 中存取 JavaScript 變數值?
    在PHP 中使用JavaScript 變數值使用同時涉及JavaScript 和PHP 的Web 應用程式時,通常需要在兩者之間交換資料兩種語言。然而,由於語言的執行環境不同,直接在 PHP 中存取 JavaScript 變數是不可能的。 PHP 在伺服器端執行,而 JavaScript 在客戶端運...
    程式設計 發佈於2024-11-07
  • Popver API VS 對話方塊模態:相同但不同
    Popver API VS 對話方塊模態:相同但不同
    我在閱讀一些科技新聞部落格時偶然發現標題 Popover API 登陸 Baseline。我很困惑,在我最近深入前端開發期間,我最近很難習慣在 HTML 中使用 Elements。在瀏覽部落格時,我一直對到目前為止我如何使用該元素感到困惑。 長話短說 選擇: 需要使用者焦點的模態彈...
    程式設計 發佈於2024-11-07
  • Go中不嵌入結構體可以實現方法繼承嗎?
    Go中不嵌入結構體可以實現方法繼承嗎?
    嵌入式結構:方法繼承的探索理解Go 中的方法繼承 In在Go 中,將方法從一種類型繼承到另一種類型的能力主要是透過嵌入結構來實現的。此技術涉及將一個結構嵌入另一個結構,允許外部結構存取和利用嵌入結構的方法。 嵌入結構的範例考慮以下內容程式碼片段:type Properties map[string]...
    程式設計 發佈於2024-11-07
  • 如何在 PHP 中的 Foreach 迴圈中檢索數組鍵
    如何在 PHP 中的 Foreach 迴圈中檢索數組鍵
    在Foreach 循環期間檢索數組鍵:PHP在PHP 中使用數組時,通常需要檢索其中的鍵和值foreach 循環。 key() 函數提供了一種在迭代期間存取當前鍵的便捷方法。但是,在某些情況下,它可能不會產生所需的結果。 考慮以下程式碼,其目的是從範例陣列產生 HTML 表:foreach($sam...
    程式設計 發佈於2024-11-07
  • 在 JavaScript 中建立物件的方法
    在 JavaScript 中建立物件的方法
    介紹 在 JavaScript 中建立物件的方法有很多種。 對象字面量 Object() 建構子 Object.create() 建構子 ES6 類 對象字面量 這可能是在 JavaScript 中建立物件最快、最簡單的方法。這也稱為物件初始值設定項,是一個由零對...
    程式設計 發佈於2024-11-07
  • 如何在 JavaScript 中擴充自訂異常的錯誤物件?
    如何在 JavaScript 中擴充自訂異常的錯誤物件?
    擴充JavaScript 中的錯誤物件在JavaScript 中拋出例外時,可能想要擴充內建Error 物件以建立自訂錯誤類型。這允許更具體和資訊豐富的異常處理。 在JavaScript 中,繼承不是透過子類化與Python 不同,在Python 中,異常通常是從Exception 基類進行子類化的...
    程式設計 發佈於2024-11-07
  • MySQL如何保證並發操作時資料的完整性?
    MySQL如何保證並發操作時資料的完整性?
    MySQL 並發:確保資料完整性如果您的MySQL 資料庫使用InnoDB 儲存引擎,您可能會擔心在執行過程中潛在的並發問題。同時記錄更新或插入。本文探討了 MySQL 如何處理並發以及是否需要在應用程式中加入額外的處理。 MySQL 的同時處理MySQL 採用原子性,這意味著單獨的 SQL 語句是...
    程式設計 發佈於2024-11-07
  • 如何使用 Go 在 SQL 查詢中有效連接字串和值?
    如何使用 Go 在 SQL 查詢中有效連接字串和值?
    在Go 中有效地製作SQL 查詢在Go 中將字串與文字SQL 查詢中的值連接起來可能有點棘手。與 Python 不同,Go 的字串格式化語法行為不同,導致常見錯誤,如此處遇到的錯誤。 元組語法錯誤初始程式碼片段嘗試使用 Python -style 元組,Go 中不支援。這會導致語法錯誤:query ...
    程式設計 發佈於2024-11-07
  • 為什麼 json_encode() 無法使用 Latin1 編碼對 MySQL 資料庫中的重音字元進行編碼?
    為什麼 json_encode() 無法使用 Latin1 編碼對 MySQL 資料庫中的重音字元進行編碼?
    MySQL 中UTF-8 字元的JSON 編碼難題當嘗試使用latin1_swedish_ci 編碼從資料庫中檢索重音字元並使用json_encode() 將它們編碼為JSON 時,結果可能出乎意料。預期結果(例如“Abord â Plouffe”)會轉換為“null”,從而使編碼的 JSON 無效...
    程式設計 發佈於2024-11-07
  • 如何在 MySQL 中將行轉置為列:綜合指南
    如何在 MySQL 中將行轉置為列:綜合指南
    在MySQL 中將行轉換為列在MySQL 中將行轉換為列在MySQL 查詢中將行轉換為列需要在應用程式中執行複雜的查詢或手動操作。 GROUP_CONCAT 解雖然 GROUP_CONCAT 可以將行轉換為單列,但它不提供整個結果集所需的轉置。 手動查詢方法對於更複雜的轉置,需要細緻的查詢,從原始行...
    程式設計 發佈於2024-11-07
  • 如何解決iOS後台模式下未收到GCM通知的問題
    如何解決iOS後台模式下未收到GCM通知的問題
    當應用程式在iOS 上處於後台模式時未收到GCM 通知當iOS 在後台收到通知但不處理時,會出現此問題它們在使用者介面中。若要解決此問題,請確保您的應用程式:啟用後台推播通知:檢查您的應用程式是否已要求並取得在背景接收推播通知的權限。 設定徽章應用程式圖示:驗證是否在應用程式的「設定」>「通知」部分...
    程式設計 發佈於2024-11-07
  • 為什麼在 Windows 7 中使用 CLASSPATH 時出現 ClassNotFoundException?
    為什麼在 Windows 7 中使用 CLASSPATH 時出現 ClassNotFoundException?
    儘管使用CLASSPATH 環境變數仍解決java.lang.ClassNotFoundException在Windows 7 中嘗試使用Java 連線至MySQL 資料庫時,設定CLASSPATH 環境變數以包含JDBC 驅動程式jar 檔案的路徑似乎無法解決java.lang.ClassNotF...
    程式設計 發佈於2024-11-07
  • 開發人員需要了解免費外匯 API
    開發人員需要了解免費外匯 API
    如果您是一名开发人员,您一定正在寻找可以帮助您更轻松地工作的工具,对吗?免费的外汇 API 就是其中之一!它使您无需支付任何费用即可获取外汇汇率。但是,许多开发人员对这些 API 不太了解。因此,本文旨在解释什么是免费外汇 API、它为何有用以及如何为您的项目选择一个 API。 什么是免费外汇 A...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3