Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
們知道字符串(String)類型是 JavaScript 中的基本數據類型之一,也是最常用的數據類型啦。下面我們來學習一下關于字符串的屬性方法以及其的使用等。
JavaScript 字符串其實很好理解,就是被包圍在單引號或雙引號中的任意字符。字符串可以用于存儲和處理文本。
示例:
例如像下面這樣聲明的變量都是字符串類型:
var str1="123";
var str2='12356';
var str3="你好,俠課島";
var str4='hello summer';
var str5='good_boy';
一般情況下字符串就是一個或多個字符組成,除此之外,我們還可以使用 new 關鍵字將字符串定義為一個對象:
var name=new String("summer");
console.log(name); // 輸出:summer
不過一般情況下我們最好不要創建 String 對象,因為這可能會導致執行速度變慢。
在 JavaScript 語言中我們可以通過索引來訪問字符串中的每個字符,字符串的索引也是從 0 開始,第一個字符索引值為 [0],第二個字符索引值為[1],以此類推。
示例:
例如下述代碼中,我們定義了一個字符串類型的變量 username,然后輸出變量中索引值為1的字符:
var username="summer";
console.log(username[1]); // 輸出: u
因為索引是從 0 開始計數,那么索引為1,那應該就是字符串中的第二個字符串,也就是 u。
我們先來看下面這個字符串:
var hobby="basketball";
你能知道這個字符串的長度為多少嗎,其實你數一下就能知道,這個字符串的長度就是10。因為這個字符串有10個字符,所以它的長度為10。
這里要注意的是,字符串里面包含的空格也是會計入長度的,有1個空格長度加1,2個空格長度加2。
在 JavaScript 語言中,我們可以使用 length 屬性來獲取字符串長度,length 屬性用于返回字符串的長度(字符數)。
示例:
例如獲取下面這個變量 hobby 的長度并輸出:
var hobby="basketball";
console.log(hobby.length); // 輸出:10
實際使用時,可能會遇到帶有空格的字符串,那么空格會計入字符的長度嗎,我們來看看:
var str1="hello xkd";
console.log(str1.length); // 輸出:9
通過輸出結果我們可以知道,空格也會計入字符串的長度的。
從字符串的長度和索引的關系,我們可以得出一個結論,索引是從0開始,到length-1 結束的。
有些時候,字符串可能無法被解析,例如下面這個字符串:
var str1="嘿,你好呀~,"俠課島"";
console.log(str1); // Uncaught SyntaxError: Unexpected identifier
那這個時候要怎么辦呢,我們可以使用反斜桿 \ 來轉義字符串中的雙引號。
示例:
var str1="嘿,你好呀~,\"俠課島\"";
console.log(str1); //輸出:嘿,你好呀~,"俠課島"
轉義字符\可以用于轉義撇號,換行,引號,等其他特殊字符。下面是一些可以用于轉義字符轉義的特殊字符:
字符串的方法有很多,下面我們簡單來看一些比較常用到的幾個方法:
var str1="Hello XKD";
console.log(str1.toLocaleLowerCase());
//輸出: hello xkd
var str1="Hello XKD";
console.log(str1.toUpperCase());
//輸出: HELLO XKD
var str1="Hello";
console.log(str1.toString());
//輸出: Hello
var str1="Hello";
var str2="xkd";
console.log(str1.concat(str2));
//輸出: Helloxkd
var str1="Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));
//輸出: 6
var str1="Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));
//輸出: 31
var str1="Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8));
//輸出: xk
var str1="Hello xkd, Congratulations on login!";
console.log(str1.split(" "));
//輸出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
var str1="Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));
//輸出: Congra
var str1="Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));
//輸出: Hello summer, Congratulations on login!
們知道字符串(String)類型是 JavaScript 中的基本數據類型之一,也是最常用的數據類型啦。下面我們來學習一下關于字符串的屬性方法以及其的使用等。
JavaScript 字符串其實很好理解,就是被包圍在單引號或雙引號中的任意字符。字符串可以用于存儲和處理文本。
示例:
例如像下面這樣聲明的變量都是字符串類型:
var str1="123";
var str2='12356';
var str3="你好,俠課島";
var str4='hello summer';
var str5='good_boy';
一般情況下字符串就是一個或多個字符組成,除此之外,我們還可以使用 new 關鍵字將字符串定義為一個對象:
var name=new String("summer");
console.log(name); // 輸出:summer
不過一般情況下我們最好不要創建 String 對象,因為這可能會導致執行速度變慢。
在 JavaScript 語言中我們可以通過索引來訪問字符串中的每個字符,字符串的索引也是從 0 開始,第一個字符索引值為 [0],第二個字符索引值為[1],以此類推。
示例:
例如下述代碼中,我們定義了一個字符串類型的變量 username,然后輸出變量中索引值為1的字符:
var username="summer";
console.log(username[1]); // 輸出: u
因為索引是從 0 開始計數,那么索引為1,那應該就是字符串中的第二個字符串,也就是 u。
我們先來看下面這個字符串:
var hobby="basketball";
你能知道這個字符串的長度為多少嗎,其實你數一下就能知道,這個字符串的長度就是10。因為這個字符串有10個字符,所以它的長度為10。
這里要注意的是,字符串里面包含的空格也是會計入長度的,有1個空格長度加1,2個空格長度加2。
在 JavaScript 語言中,我們可以使用 length 屬性來獲取字符串長度,length 屬性用于返回字符串的長度(字符數)。
示例:
例如獲取下面這個變量 hobby 的長度并輸出:
var hobby="basketball";
console.log(hobby.length); // 輸出:10
實際使用時,可能會遇到帶有空格的字符串,那么空格會計入字符的長度嗎,我們來看看:
var str1="hello xkd";
console.log(str1.length); // 輸出:9
通過輸出結果我們可以知道,空格也會計入字符串的長度的。
從字符串的長度和索引的關系,我們可以得出一個結論,索引是從0開始,到length-1 結束的。
有些時候,字符串可能無法被解析,例如下面這個字符串:
var str1="嘿,你好呀~,"俠課島"";
console.log(str1); // Uncaught SyntaxError: Unexpected identifier
那這個時候要怎么辦呢,我們可以使用反斜桿 \ 來轉義字符串中的雙引號。
示例:
var str1="嘿,你好呀~,\"俠課島\"";
console.log(str1); //輸出:嘿,你好呀~,"俠課島"
轉義字符\可以用于轉義撇號,換行,引號,等其他特殊字符。下面是一些可以用于轉義字符轉義的特殊字符:
字符串的方法有很多,下面我們簡單來看一些比較常用到的幾個方法:
var str1="Hello XKD";
console.log(str1.toLocaleLowerCase());
//輸出: hello xkd
var str1="Hello XKD";
console.log(str1.toUpperCase());
//輸出: HELLO XKD
var str1="Hello";
console.log(str1.toString());
//輸出: Hello
var str1="Hello";
var str2="xkd";
console.log(str1.concat(str2));
//輸出: Helloxkd
var str1="Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));
//輸出: 6
var str1="Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));
//輸出: 31
var str1="Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8));
//輸出: xk
var str1="Hello xkd, Congratulations on login!";
console.log(str1.split(" "));
//輸出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
var str1="Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));
//輸出: Congra
var str1="Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));
//輸出: Hello summer, Congratulations on login!
arkdown 標記應該使內容更好。那么為什么它經常使內容變得更糟呢?
標記幫助計算機知道如何在用戶界面中呈現文本。沒有標記,文本是純文本——一串字符。這對于簡單的交流來說很好,但純文本無法表達更復雜的想法。
語法使單詞成為有意義的內容。標記是計算機的語法。但是計算機語法與作者和讀者使用的語法有很大不同。
HTML 是網絡的通用標記語言。Markdown 被定位為一些編寫應用程序和發布系統使用的 HTML 的輕量級替代品。一些內容開發人員將 Markdown 視為混合語法,為人類和機器提供一種通用語言,一種文本通信的“單一解決方案”。可悲的是,沒有一種語言對人類和機器同樣有意義。如果人和機器必須使用相同的語法,那么兩者都需要做出妥協,并且會遇到意想不到的結果。
標記是一種認知負擔。混入文本的代碼會干擾作者的話的意思,這就是為什么沒有人直接用 HTML 寫文章的原因。用標記裝飾的文本很難讓作家和編輯閱讀。它通過使用既不是單詞也不是標點符號的附加字符來包圍單詞,從而分散了文本所說的內容。當作者需要在他們的文本中插入標記時,他們很可能會犯錯誤,導致計算機也難以閱讀標記。
每天早上,在瀏覽我的 iPad 時,我都會看到標記給作者和讀者帶來的問題。
它們出現在 Apple News 的文章中,清晰地呈現在整潔的容器中。
蘋果新聞格式
Apple News 使用 HTML 或 Markdown 的子集發布文本內容。Apple 提醒作者需要確保任何包含的標記在語法上是正確的:
“標點符號很關鍵。當您嘗試預覽您的文章時,article.json 文件中不正確的標點符號(即使是放錯位置的逗號或彎引號而不是直引號)也會產生錯誤。”
這就是標記的麻煩——它在很大程度上取決于它的位置。缺少的空間或額外的空間可能會帶來麻煩。開發人員理解這一點,但內容作者不會期望他們的寫作格式會在 21 世紀的第三個十年出現問題。他們聽說人工智能將很快取代作者。當然,計算機足夠聰明,可以正確格式化書面文本。
通常,標記會觸發文本的計算機語法和代碼的計算機語法之間的沖突。保留字符尤其如此:計算機程序決定使用的特定字符,并且將優先于該字符的任何其他用途。計算機代碼和書面散文也使用一些相同的標點符號來表示含義。但與這些標點符號相關的意圖并不相同。
考慮星號。它可以充當文本中的腳注。在計算機代碼中,它可能會發出函數信號。在
Markdown 中,它可以是一個項目符號或表示文本的粗體。在下面的示例中,我們看到字母“f”周圍有兩個星號。作者的目標并不清楚,但看起來這些是為了給字母加粗,除了一個額外的空格阻止了加粗。
星號使用錯誤
如果有任何符號在邏輯上應該在含義和使用上標準化,那就是引號。畢竟,引號表示其中的文本未修改或不應修改。但是使用不同的字符來表達引用有多種約定。在機器和人之間,對于如何表達引號以及它們所傳達的內容沒有達成一致意見。
當引用的文本被打斷時,會發生高度可見的缺陷。引號中的文本應該很重要。下面的示例嘗試在短語周圍插入引號,卻錯誤呈現了單引號的 Unicode。
引用符號錯誤
這是另一個引用示例。作者試圖告訴代碼這些引號是要顯示的。但反斜杠轉義字符除了引號字符外還顯示。引號不是 Markdown 中要轉義的字符。我在 Apple News 上面的路透社帖子中反復看到這個問題。
無法理解的語法
這個例子有引號和撇號混合,可能還有一個破折號——都被渲染為“?”。代碼對作者的意圖感到困惑,讀者也是如此。
添加法語口音
添加了法語字符
有這樣一個令人困惑的現象:“null”開始一個新段落。也許一些 Javascript 代碼正在尋找它沒有找到的東西。由于 Null 遵循以引號結尾的鏈接,因此部分混淆似乎是由鏈接的編碼方式產生的。
錯誤引入了 Null
下面是鏈接問題的另一個示例。此介紹呈現得很拙劣,因為 Markdown 編碼不正確。作者在呈現鏈接文本時無法弄清楚在哪里顯示斜體,并且嘗試了太多。
歡迎語標記錯誤
所有這些例子都來自專業人員創建的付費媒體。如果依賴收入的出版商會犯這種錯誤,那么在那些不經常編寫網絡內容的企業中,這種錯誤似乎更常見。
作者不應該處理標記。不要假設任何類型的標記對作者來說都是簡單的。有些人認為
Markdown 是標記復雜性的答案。他們相信 Markdown 可以使標記變得民主化:任何人都可以容易地正確使用它。Markdown 可能看起來沒有 HTML 復雜,但這并不意味著它不復雜。它通過以高度嚴格的方式使用熟悉的設備(例如空格和標點符號)來隱藏其復雜性。
如果作者能夠弄亂標記,他們可能會。一些格式化場景可能很復雜,需要了解標記如何區分不同字符的優先級以及 Javascript 等代碼如何?期望字符串。例如,在 Markdown 顯示星號需要在 Apple News 使用兩個反斜杠進行兩次轉換。這不應該是內容作者在截止日期前擔心的那種細節。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。