整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JavaScript 內(nèi)置對象之-String

          JavaScript 內(nèi)置對象之-String

          符串的創(chuàng)建方式:

          var a1='abc';  			 // 字面量
          
          var a2=new String('abc');  // 構(gòu)造函數(shù)
          
          typeof a1;       			 // "string"
          
          typeof a2;     			     // "object"
          
          // 上面代碼中,變量s1是字符串,s2是對象。所以,String對象也叫包裝對象。

          除了用作構(gòu)造函數(shù),String對象還可以當作工具方法使用;

          將任意類型的值轉(zhuǎn)為字符串。

          String(true); // "true"
          
          String(5); // "5"
          
          // 上面代碼將布爾值ture和數(shù)值5,分別轉(zhuǎn)換為字符串

          ①.length屬性:

          字符串實例的length屬性返回字符串的長度。

          例:

          'abcdefg'.length    // 7

          字符串對象是一個類似數(shù)組的對象(很像數(shù)組,但不是數(shù)組)。

          new String('cba');
          
          // String {0: "c", 1: "b", 2: "a", length: 3}
          (new String('cba'))[1] // "b"
          
          // 上面代碼中,字符串cba對應(yīng)的字符串對象,有數(shù)值鍵(0、1、2)和length屬性,
          
          // 所以可以像數(shù)組那樣取值。

          ②charAt()方法:

          charAt方法返回指定位置的字符,參數(shù)是從0開始編號的位置。

          var a=new String("abc");
          
          a.charAt(1);				 // "b"
          
          a.charAt(a.length - 1);   // "c"
          
          // 這個方法完全可以用數(shù)組下標來替代。
          
          'abc'.charAt(1); 		 // "b"
          
          'abc'[1];				 // "b"

          ③slice()方法:

          slice方法是用于從原來的字符串中取出子字符串并返回,且不改變原字符串。它的第一個參數(shù)是子字符串的開始位置,第二個參數(shù)是子字符串的結(jié)束位置(注意:不包含該位置)。

          'abcdefghij'.slice(0, 4);			// "abcd"
          
          // 如果省略第二個參數(shù),則表示子字符串一直到原字符串結(jié)束。
          
          'abcdefghij'.slice(4); 			// "efghij"
          
          // 如果參數(shù)是負值,表示從結(jié)尾開始倒數(shù)計算的位置,即該負值加上字符串長度。
          
          'abcdefghij'.slice(-6); 		// "efghij"
          
          'abcdefghij'.slice(0, -6);		// "abcd"
          
          'abcdefghij'.slice(-2, -1); 	// "i"
          
          // 如果第一個參數(shù)大于第二個參數(shù),slice方法返回一個空字符串。
          
          'abcdefghij'.slice(2, 1);

          ④substring()方法:

          substring方法用于從原字符串取出子字符串并返回,不改變原字符串,跟slice()方法很相像。它的第一個參數(shù)表示子字符串的開始位置,第二個位置表示結(jié)束位置(注意:返回結(jié)果不含該位置)。

          'abcdefghij'.substring(0, 4);  // "abcd"
          
          // 如果省略第二個參數(shù),則表示子字符串一直到原字符串的結(jié)束。
          
          'abcdefghij'.substring(4);	  // "efghij"
          
          // 如果第二個參數(shù)大于第一個參數(shù),substring方法會自動更換兩個參數(shù)的位置。
          
          'abcdefghij'.substring(10, 4); // "efghij"
          
          // 等同于
          
          'abcdefghij'.substring(4, 10); // "efghij"

          ⑤substr()方法:

          substr()方法用于從原字符串取出子字符串并返回,不改變原字符串,跟slice()和substring()方法的作用相同。

          substr()方法的第一個參數(shù)是子字符串的開始位置(從0開始計算),第二個參數(shù)是子字符串的長度。

          'abcdefghij'.substr(4, 6);	 // "efghij"
          
          // 如果省略第二個參數(shù),則表示子字符串一直到原字符串的結(jié)束。
          
          'abcdefghij'.substr(4); 		 // "efghij"
          
          // 如果第一個參數(shù)是負數(shù),表示倒數(shù)計算的字符位置。如果第二個參數(shù)是負數(shù),將被自動轉(zhuǎn)為0,
          
          // 因此會返回空字符串。
          
          'abcdefghij'.substr(-6);	// "efghij"
          
          'abcdefghij'.substr(4, -1); // ""
          
          // 上面代碼中,第二個例子的參數(shù)-1自動轉(zhuǎn)為0,表示子字符串長度為0,所以返回空字符串

          ⑥trim()方法:

          trim()方法用于去除字符串兩端的空格,返回一個新字符串,且不改變原字符串。

          "  hello world  ".trim();
          
          // "hello world"
          
          // 該方法去除的不僅是空格,還包括制表符(\t、\v)、換行符(\n)和回車符(\r)。
          
          '\r\naaa \t'.trim(); // 'aaa'

          ⑦toLowerCase()、toUpperCase()方法:

          toLowerCase()方法用于將一個字符串全部轉(zhuǎn)為小寫,toUpperCase()則是用于將一個字符串全部轉(zhuǎn)為大寫。

          它們都返回一個新字符串,且不改變原字符串。

          'ABC'.toLowerCase();
          
          // "abc"
          
          'abc'.toUpperCase();
          
          // "ABC"

          ⑧replace()方法:

          replace()方法用于替換匹配的子字符串,一般情況下只替換第一個匹配(帶有g(shù)修飾符的正則表達式除外)。

          'aaa'.replace('a', 'b')	 	 // "baa"
          
          'aaa'.replace(/a/g, 'b')	 // "bbb"

          ⑨split()方法:

          split()方法按照給定規(guī)則分割字符串,返回一個由分割出來的子字符串組成的數(shù)組。

          者 | Jonathan Saring

          編輯 | 無明

          JavaScript 仍然是 2018 年最受歡迎和使用最為廣泛的編程語言,因此 JavaScript 生態(tài)系統(tǒng)也會繼續(xù)發(fā)展壯大。

          然而,JavaScript 的標準庫仍然繼續(xù)保持“短小精悍”的身材。為了填補標準庫功能方面的空白,在過去幾年中,GitHub 上出現(xiàn)了很多流行的 JavaScript 庫。以下列出了 11 個有用的庫,這些庫的維護狀態(tài)均很活躍。

          1.Underscore 和 Lodash(dah)

          可能大多數(shù)人都知道這兩個庫。Underscore 的目的是為 JavaScript 中的常見任務(wù)提供實用的函數(shù)。Lodash 是下載量最大和被依賴最多的庫之一,旨在為數(shù)組、字符串、object 和 argument 對象提供更一致的跨環(huán)境迭代支持,并已成為 Underscore 的超集。這兩個庫由相同的核心貢獻者維護,在技術(shù)選型時完全可以考慮使用它們。

          Lodash - https://github.com/lodash/lodash

          Underscore - https://github.com/jashkenas/underscore

          2. Ramda

          在 GitHub 上的 Star 已經(jīng)超過 12,000,這個庫專為函數(shù)式編程而設(shè)計,可以輕松創(chuàng)建不改變用戶數(shù)據(jù)狀態(tài)的函數(shù)式管道。Ramda 的核心設(shè)計理念是創(chuàng)建具有不變性和無副作用的函數(shù)。所有的函數(shù)會被自動柯里化,并根據(jù)易用性安排參數(shù)的順序。

          Ramda - https://github.com/ramda/ramda

          3. MathJS

          在 GitHub 上的 Star 已經(jīng)超過 6000,這個庫是 JavaScript 和 Node.js 的數(shù)學擴展庫,與 JavaScript 內(nèi)置的 Math 庫兼容。該庫包含一個靈活的表達式解析器,能夠運行符號計算,并提供了一系列內(nèi)置函數(shù)和常量。用戶還可以對其進行擴展。

          MathJS - https://github.com/josdejong/mathjs

          4. Moment

          在 GitHub 上的 Star 已經(jīng)超過 37,000,是一個 JavaScript 日期和時間操作庫,用于解析、驗證、操作和格式化日期。Moment 可以在瀏覽器和 Node.js 中運行。從 2.10.0 版本開始遷移到 ECMAScript 6。

          Moment - https://github.com/moment/moment

          另外兩個同類的庫:

          Date-fns(10,000 個 Star)- https://github.com/date-fns/date-fns

          DateJS - https://github.com/datejs/Datejs

          5. Sugar

          在 GitHub 上的 Star 已經(jīng)超過 3500,主要用于處理本地對象。這個庫支持自定義構(gòu)建,還提供了模塊化的 npm 包,因此可以只使用其中必要的部分模塊(也可以與 Bit 結(jié)合使用),用戶還可以通過自定義方法或使用插件來應(yīng)對特定的使用場景。

          Sugar - https://github.com/andrewplummer/Sugar

          6. Lazy

          在 GitHub 上的 Star 將近 5000,是一個功能強大的 JavaScript 庫,它的 lazy 引擎“盡可能地少做一些工作”,同時保持足夠的靈活性。

          Lazy - https://github.com/dtao/lazy.js

          7. CollectJS

          在 GitHub 上的 Star 超過 3200,主要用于處理 JavaScript 中的數(shù)組和對象,無需其他依賴,提供了幾十個有用的功能和 API,這些 API 幾乎與 Laravel Collections 5.5 相同。該庫的維護狀態(tài)很活躍,值得關(guān)注。

          CollectJS - https://github.com/ecrmnn/collect.js

          8. ChanceJS

          Chance 在 GitHub 上的 Star 超過 3200,一個簡單的隨機對象生成器,用于生成隨機的字符串、數(shù)字等。在編寫自動化測試代碼或任何需要隨機對象的地方,可以用它來減少單調(diào)的工作。

          ChanceJS - https://github.com/chancejs/chancejs

          9. ChartJS

          在 GitHub 上的 Star 將近 40,000 個,提供了 8 種不同類型的數(shù)據(jù)可視化,每種類型都支持動畫和定制。借助 Chart.js,我們可以使用<canvas>標簽創(chuàng)建簡單的HTML5圖表,而且在所有現(xiàn)代瀏覽器中都具有出色的渲染性能。

          ChartJS - https://github.com/chartjs/Chart.js

          10. Polished

          在 GitHub 上的 Star 超過 3500 個,由 styled-components 團隊開發(fā),是一個非常優(yōu)秀的輕量級工具集,支持使用 JavaScript 編寫具有 SASS 風格輔助函數(shù)和 mixin 的樣式。該庫與 styled-components、Aphrodite、Radium 或簡單的內(nèi)聯(lián)樣式兼容。這個庫可以在 GitHub 上找到,Bit 社區(qū)(非官方)也單獨提供所有的功能,因此可以單獨安裝、導(dǎo)入和使用。

          Polished - https://github.com/styled-components/polished

          Bit 社區(qū)提供的單獨安裝版 - https://bitsrc.io/ranm8/polished

          11. Mout

          Mout.js 是一組模塊化的 JavaScript 庫,可以在瀏覽器或 node.js 中運行,提供類似于其他語言標準庫(Python、Ruby、PHP 等)中的輔助方法。mout.js 允許僅加載必需的模塊或函數(shù),并提供了一致的 API,規(guī)范了跨瀏覽器行為。

          Mout - https://github.com/mout/mout

          特別推薦

          Bit utils

          一個模塊化和高性能的庫,已經(jīng)被用在 Bit 的 web hub 中。這些函數(shù)可使用 NPM/Yarn 進行單獨安裝,用戶也可以創(chuàng)建自己的集合,并從不同的庫和項目中收集有用的功能。

          Bit utils - https://bitsrc.io/bit/utils

          Voca

          一個用于操作字符串的 JavaScript 庫。它提供的功能包括大小寫轉(zhuǎn)換、trim、pad、slugify、latinise、sprintf、truncate、escape 等。用戶可以加載單個函數(shù),以便最小化應(yīng)用程序的構(gòu)建。該庫具有很高的測試覆蓋率,并且不依賴其他庫。

          Voca - https://github.com/panzerdp/voca

          Licia

          只有 400 個 Star,這個有趣的項目基本上是一個簡單但有用的 JavaScript 片段集合,具有很高的測試覆蓋率,文檔也很齊全。

          Licia - https://github.com/liriliri/licia

          下是JavaScript的一些內(nèi)置對象代碼示例:

          1.Math對象:

          // 返回隨機數(shù)
          Math.random();
          
          // 返回1和10之間的隨機整數(shù)
          Math.floor(Math.random() * 10) + 1;
          
          // 返回數(shù)字的平方根
          Math.sqrt(25);
          

          2.Date對象:

          // 創(chuàng)建一個表示當前時間的Date對象
          const today=new Date();
          
          // 創(chuàng)建一個指定日期的Date對象
          const christmas=new Date(2023, 11, 25);
          
          // 返回當前月份
          today.getMonth();
          
          // 返回當前年份
          today.getFullYear();
          

          3.Array對象:

          // 創(chuàng)建一個數(shù)組
          const fruits=['apple', 'banana', 'orange'];
          
          // 添加元素到數(shù)組末尾
          fruits.push('grape');
          
          // 刪除數(shù)組末尾的元素
          fruits.pop();
          
          // 獲取數(shù)組長度
          fruits.length;
          

          4.String對象:

          // 創(chuàng)建一個字符串
          const greeting='Hello, world!';
          
          // 獲取字符串長度
          greeting.length;
          
          // 將字符串轉(zhuǎn)換為大寫
          greeting.toUpperCase();
          
          // 獲取子字符串
          greeting.slice(0, 5); // 'Hello'
          

          5.RegExp對象:


          主站蜘蛛池模板: 99精品高清视频一区二区| 亚洲国产AV一区二区三区四区| 日韩高清一区二区三区不卡| 无码国产精品一区二区免费16| 一区二区三区视频免费观看 | 色欲AV无码一区二区三区| 国产福利酱国产一区二区| 天堂va在线高清一区| 波多野结衣久久一区二区| 国产乱码一区二区三区四| 人妻无码第一区二区三区| 久久人做人爽一区二区三区| 亚洲福利一区二区三区| 亚洲av无一区二区三区| 日韩精品一区二区三区毛片| 精品女同一区二区三区免费播放| 日韩精品电影一区| 成人区人妻精品一区二区不卡网站 | 久夜色精品国产一区二区三区| 国产精品视频分类一区| 无码少妇一区二区三区浪潮AV| 国产亚洲一区二区精品| 怡红院一区二区三区| 风间由美性色一区二区三区| 中文字幕精品一区二区精品| 国产一区二区精品在线观看| 精品一区二区三区四区电影| 国产一区视频在线| 天码av无码一区二区三区四区| 久久青草精品一区二区三区| 人妻精品无码一区二区三区| 国产在线aaa片一区二区99| 成人精品视频一区二区三区| 色婷婷亚洲一区二区三区| 精品国产一区二区三区久久蜜臀| 无码午夜人妻一区二区三区不卡视频| 国产乱码精品一区二区三区四川人 | 中文字幕精品一区影音先锋| 国产一区二区在线看| 精品国产一区二区三区av片| 无码人妻精品一区二区蜜桃网站|