1、字符串的創(chuàng)建

創(chuàng)新互聯(lián)公司是一家集成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負責(zé)任的原則,為您進行細心、貼心、認真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。
創(chuàng)建一個字符串有幾種方法。最簡單的是用引號將一組字符包含起來,可以將其賦值給一個字符串變量。
var myStr = "Hello, String!";
我們在上面腳本創(chuàng)建了字符串,但本質(zhì)上,它們并不是真正的字符串對象,準確地說,它們是字符串類型的值。要創(chuàng)建一個字符串對象,可使用如下語句:var strObj = new String("Hello, String!");
使用typeof運算符查看會發(fā)現(xiàn),上面的myStr類型為string,而strObj類型為object。
如果想知道字符串的長度,使用其length屬性:string.length。
得到字符串的指定位置的字符使用方法:string.charAt(index);
2、字符串的拼接
非常簡單,就用一個"+"將兩個字符串"相加":
var longString = "One piece " + "plus one more piece.";
要將多個字符串累積為一個字符串,還可以使用"+="操作符:
var result = "";
result += "My name is Anders"
result += " and my age is 25";
要在字符串中添加換行符,需要使用轉(zhuǎn)義字符"/n":
var confirmString = "You did not enter a response to the last " +
"question./n/nSubmit form anyway?";
var confirmValue = confirm(confirmString);
但這種方法只能用在像警告、確認對話框之類的情況下,如果將這段文本作為HTML內(nèi)容呈現(xiàn),就無效了,此時用"br"代替它:
var htmlString = "First line of string.brSecond line of string.";
document.write(htmlString);
String對象還提供了方法concat(),它完成與"+"相同的功能:
string.concat(value1, value2, ...)
不過concat()方法顯然不如"+"來得直觀簡潔。
3、訪問字符串的子串
使用substring()或slice()方法(NN4+, IE4+),下面說明它們的具體用法。
substring()的原型為: string.substring(from, to)
第一個參數(shù)from指定了子字符串在原字符串中的起始位置(基于0的索引);第二個參數(shù)to是可選的,它指定了子字符串在原字符串的結(jié)束位置(基于0的索引),一般情況下,它應(yīng)比from大,如果它被省略,那么子字符串將一直到原字符串的結(jié)尾處。
如果參數(shù)from不小心比參數(shù)to大了會怎樣?JavaScript會自動調(diào)解子字符串的起止位置,也就是說,substring()總是從兩個參數(shù)中較小的那個開始,到較大的那個結(jié)束。不過要注意,它包含起始位置的那個字符,但不包含結(jié)束位置的那個字符。
var fullString = "Every dog has his day.";
var section = fullString.substring(0, 4); // section is "Ever".
slice()的原型為: string.slice(start, end)
參數(shù)start表示子串的起始位置,如果為負數(shù),那么可以理解為倒數(shù)第幾個開始,例如-3表示從倒數(shù)第三個開始;參數(shù)end表示結(jié)束位置,與start一樣,它也可以為負數(shù),其含義也表示到倒數(shù)第幾個結(jié)束。slice()的參數(shù)可以為負數(shù),所以要比substring()更加靈活,但沒那么寬容了,如果start比end要大,它將返回一個空字符串(示例略)。
還有一個方法是substr(),其原型為: string.substr(start, length)
從原型可以看出它的參數(shù)的含義,start表示起始位置,length則表示子字符串的長度。JavaScript標準不提倡使用該方法。
4、字符串的大小寫轉(zhuǎn)換
使用toLowerCase()和toUpperCase()方法:
var city = "ShanGHai";
city = city.toLowerCase(); // city is "shanghai" now.
5、判斷兩個字符串是否相等
先將用戶的輸入值全部轉(zhuǎn)換為大寫(或小寫),然后再行比較:
var name = document.form1.txtUserName.value.toLowerCase();
if(name == "urname")
{
// statements go here.
}
JavaScript有兩種相等運算符。一種是完全向后兼容的,標準的"==",如果兩個操作數(shù)類型不一致,它會在某些時候自動對操作數(shù)進行類型轉(zhuǎn)換,考慮下面的賦值語句:
var strA = "i love you!";
var strB = new String("i love you!");
這兩個變量含有相同的字符序列,但數(shù)據(jù)類型卻不同,前者為string,后者為object,在使用"=="操作符時,JavaScript會嘗試各種求值,以檢測兩者是否會在某種情況下相等。所以下面的表達式結(jié)果為true: strA == strB。
第二種操作符是"嚴格"的"===",它在求值時不會這么寬容,不會進行類型轉(zhuǎn)換。所以表達式strA === strB的值為false,雖然兩個變量持有的值相同。
有時代碼的邏輯要求你判斷兩個值是否不相等,這里也有兩個選擇:"!="和嚴格的"!==",它們的關(guān)系就類似于"=="和"==="。
討論:
"=="和"!="在求值時會盡可能地尋找值的匹配性,但你可能還是想在比較前進行顯式的類型轉(zhuǎn)換,以"幫助"它們完成工作。比如,如果想判斷一個用戶的輸入值(字符串)是否等于一個數(shù)字,你可以讓"=="幫你完成類型轉(zhuǎn)換:
if(document.form1.txtAge.value == someNumericVar) { ... }
也可以提前轉(zhuǎn)換:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
如果你比較習(xí)慣于強類型的編程語言(比如C#,Java等),那么這里你可以延續(xù)你的習(xí)慣(類型轉(zhuǎn)換),這樣也會增強程序的可讀性。
有一種情況需要注意,就是計算機的區(qū)域設(shè)置。如果用""和""來比較字符串,那么JavaScript把它們作為Unicode來比較,但顯然,人們在瀏覽網(wǎng)頁時不會把文本當作Unicode來閱讀:) 比如在西班牙語中,按照傳統(tǒng)的排序,"ch"將作為一個字符排在"c"和"d"之間。localeCompare()提供了一種方式,可以幫助你使用默認區(qū)域設(shè)置下的字符排序規(guī)則。
var strings; // 要排序的字符串數(shù)組,假設(shè)已經(jīng)得到初始化
strings.sort(function(a,b) { return a.localeCompare(b) }); // 調(diào)用sort()方法進行排序
6、字符串的查找
使用string的indexOf()方法:
strObj.indexOf(subString[, startIndex])
strObj為要進行判斷的字符串,subString為要在strObj查找的子字符串,startIndex是可選的,表示查找的開始位置(基于0的索引),如果startIndex省略,則從strObj開始處查找,如果startIndex小于0,則從0開始,如果startIndex大于最大索引,則從最大索引處開始。
indexOf()返回strObj中subString的開始位置,如果沒有找到,則返回-1。在腳本中,可以這么使用:
if(largeString.indexOf(shortString) != -1)
{
// 如果包含,進行相應(yīng)處理;
}
也許一個字符串會包含另一字符串不止一次,這時第二個參數(shù)startIndex也許會派上用場,下面這個函數(shù)演示如何求得一個字符串包含另外一個字符串的次數(shù):
function countInstances(mainStr, subStr)
{
var count = 0;
var offset = 0;
do
{
offset = mainStr.indexOf(subStr, offset);
if(offset != -1)
{
count++;
offset += subStr.length;
}
}while(offset != -1)
return count;
}
String對象有一個與indexOf()對應(yīng)的方法,lastIndexOf():
strObj.lastIndexOf(substring[, startindex])
strObj為要進行判斷的字符串,subString為要在strObj查找的子字符串,startIndex是可選的,表示查找的開始位置(基于0的索引),如果startIndex省略,則從strObj末尾處查找,如果startIndex小于0,則從0開始,如果startIndex大于最大索引,則從最大索引處開始。該方法自右向左查找,返回subString在strObj中最后出現(xiàn)的位置,如果沒有找到,返回-1。
1. 在HTML里面加入JavaScript;方法非常簡單,就是通過一對標簽,然后在標簽里面書寫代碼即可;2. 標簽位置;按照以前傳統(tǒng)的方法,我們的script標簽都是放在head標簽里面的。但是由于瀏覽器進行渲染的時候是由上往下進行渲染,這樣會導(dǎo)致瀏覽器在呈現(xiàn)頁面的時候出現(xiàn)延遲。延遲的時候就是空白,影響用戶體驗。所以現(xiàn)在的方法,都是講script標簽寫body里面,元素的后面。;3. 外部JS文件;1)可維護性高;2)可緩存:例如有兩個HTML文件(A,B)都是用的同一個JS文件。當用戶請求A頁面的時候,A頁面的HTML文件和JS文件一起被下載到本地。接下來用戶再請求B頁面的時候,只需要下載B頁面的HTML頁面即可,因為JS文件已經(jīng)有了。4. JavaScript語法;1)JavaScript區(qū)分大小寫test和Test表示不同變量2)標識符;JavaScript里面的標識符由數(shù)字,字母,下劃線(_)和$組成,不能以數(shù)字開頭3)注釋:JavaScript注釋有兩種:多行注釋和單行注釋
首先我會把Chrome瀏覽器裝好,在dev tools = console里直接練習(xí)熟悉基本語法,變量,數(shù)據(jù)類型,數(shù)學(xué)運算,字符串運算,條件,循環(huán)基本結(jié)構(gòu),簡單函數(shù)定義和調(diào)用這些,之所以用chrome dev tools,是因為這時候我不想費勁折騰單獨的編輯器,也不需要在開文件和文件夾,然后去配一些工具最終才接觸到真正的JS編程,我想盡可能直接而少干擾就開始寫JS,這是最重要的,我學(xué)JS,當然應(yīng)該盡快寫JS
熟悉了基本語法以后,我會在devtools = console 里編幾個稍微有挑戰(zhàn)點的小程序,比如實現(xiàn)fibonaci 數(shù)列這種簡單的,比如打印一個99乘法表,你也可以自己給自己出幾個題,或者網(wǎng)上隨機找感興趣的題目,別人寫過沒寫過不是重點,重點是找點事情做,讓自己寫代碼,別小看這些看起來無聊的程序,在你的熟練度達到可以開始第一個項目之前,這些沒有的小程序是最適合練手的,因為它們不牽涉其他方面的知識(比如DOM),所以你不會受到過多干擾,只需要關(guān)注用正確的語法寫出正確的程序,這個過程會讓你更熟悉JS語言本身。
當前文章:如何javascript,如何恢復(fù)刪除的微信聊天記錄
分享URL:http://chinadenli.net/article20/dseseco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App開發(fā)、移動網(wǎng)站建設(shè)、建站公司、定制開發(fā)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)