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