javaScript 基礎(chǔ) 01

1.變量

var 申明一個變量

如果一個變量沒有通過var申明就被使用枫耳,那么該變量就自動被申明為全局變量:

i = 10; ? //i 現(xiàn)在時全局變量

使用var申明的變量則不是全局變量咽块,它的范圍被限制在該變量被申明的函數(shù)體內(nèi)(函數(shù)的概念將稍后講解)霹疫,同名變量在不同的函數(shù)體內(nèi)互不沖突。

為了修補JavaScript這一嚴(yán)重設(shè)計缺陷岛杀,ECMA在后續(xù)規(guī)范中推出了strict模式憎妙,在strict模式下運行的JavaScript代碼,強制通過var申明變量绞吁,未使用var申明變量就使用的,將導(dǎo)致運行錯誤寡键。

啟用strict模式的方法是在JavaScript代碼的第一行寫上:

'use strict';

2.字符串

JavaScript的字符串就是用''或""括起來的字符表示。

如果'本身也是一個字符雪隧,那就可以用""括起來西轩,比如"I'm OK"包含的字符是I,'脑沿,m藕畔,空格,O庄拇,K這6個字符注服。

如果字符串內(nèi)部既包含'又包含"怎么辦?可以用轉(zhuǎn)義字符\來標(biāo)識措近,比如:

'I\'m \"OK\"!';

表示的字符串內(nèi)容是:I'm?"OK"!

需要特別注意的是溶弟,字符串是不可變的,如果對字符串的某個索引賦值瞭郑,不會有任何錯誤辜御,但是,也沒有任何效果:

vars?='Test';

s[0]?='X';

alert(s);//?s仍然為'Test’

2.1 字符串語法:

toUpperCase

vars?='Hello';

s.toUpperCase();//?返回'HELLO'

toLowerCase

toLowerCase()把一個字符串全部變?yōu)樾懀?/p>

vars ='Hello';varlower = s.toLowerCase();// 返回'hello'并賦值給變量lowerlower;// 'hello'

indexOf

indexOf()會搜索指定字符串出現(xiàn)的位置:

vars ='hello, world';s.indexOf('world');// 返回7s.indexOf('World');// 沒有找到指定的子串屈张,返回-1

substring

substring()返回指定索引區(qū)間的子串:

vars?='hello,?world'

s.substring(0,5);//?從索引0開始到5(不包括5)擒权,返回'hello'

s.substring(7);//?從索引7開始到結(jié)束,返回'world'

3.數(shù)組

vararr?=?[1,2,3.14,'Hello',?null,?true];

arr.length;//?6

slice()就是對應(yīng)String的substring()版本阁谆,它截取Array的部分元素碳抄,然后返回一個新的Array:

vararr = ['A','B','C','D','E','F','G'];arr.slice(0,3);// 從索引0開始,到索引3結(jié)束场绿,但不包括索引3: ['A', 'B', 'C']arr.slice(3);// 從索引3開始到結(jié)束: ['D', 'E', 'F', 'G']

注意到slice()的起止參數(shù)包括開始索引剖效,不包括結(jié)束索引。

如果不給slice()傳遞任何參數(shù)焰盗,它就會從頭到尾截取所有元素贱鄙。利用這一點,我們可以很容易地復(fù)制一個Array:

vararr = ['A','B','C','D','E','F','G'];varaCopy = arr.slice();aCopy;// ['A', 'B', 'C', 'D', 'E', 'F', 'G']aCopy === arr;// false

push和pop

push()向Array的末尾添加若干元素姨谷,pop()則把Array的最后一個元素刪除掉:

vararr = [1,2];arr.push('A','B');// 返回Array新的長度: 4arr;// [1, 2, 'A', 'B']arr.pop();// pop()返回'B'arr;// [1, 2, 'A']arr.pop(); arr.pop(); arr.pop();// 連續(xù)pop 3次arr;// []arr.pop();// 空數(shù)組繼續(xù)pop不會報錯逗宁,而是返回undefinedarr;// []

unshift和shift

如果要往Array的頭部添加若干元素,使用unshift()方法梦湘,shift()方法則把Array的第一個元素刪掉:

vararr = [1,2];arr.unshift('A','B');// 返回Array新的長度: 4arr;// ['A', 'B', 1, 2]arr.shift();// 'A'arr;// ['B', 1, 2]arr.shift(); arr.shift(); arr.shift();// 連續(xù)shift 3次arr;// []arr.shift();// 空數(shù)組繼續(xù)shift不會報錯瞎颗,而是返回undefinedarr;// []

sort

sort()可以對當(dāng)前Array進行排序件甥,它會直接修改當(dāng)前Array的元素位置,直接調(diào)用時哼拔,按照默認順序排序:

vararr = ['B','C','A'];arr.sort();arr;// ['A', 'B', 'C']

能否按照我們自己指定的順序排序呢引有?完全可以,我們將在后面的函數(shù)中講到倦逐。

reverse

reverse()把整個Array的元素給掉個個譬正,也就是反轉(zhuǎn):

vararr = ['one','two','three'];arr.reverse(); arr;// ['three', 'two', 'one']

splice

splice()方法是修改Array的“萬能方法”,它可以從指定的索引開始刪除若干元素檬姥,然后再從該位置添加若干元素:

vararr = ['Microsoft','Apple','Yahoo','AOL','Excite','Oracle'];// 從索引2開始刪除3個元素,然后再添加兩個元素:arr.splice(2,3,'Google','Facebook');// 返回刪除的元素 ['Yahoo', 'AOL', 'Excite']arr;// ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']// 只刪除,不添加:arr.splice(2,2);// ['Google', 'Facebook']arr;// ['Microsoft', 'Apple', 'Oracle']// 只添加,不刪除:arr.splice(2,0,'Google','Facebook');// 返回[],因為沒有刪除任何元素arr;// ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

concat

concat()方法把當(dāng)前的Array和另一個Array連接起來曾我,并返回一個新的Array:

vararr = ['A','B','C'];varadded = arr.concat([1,2,3]);added;// ['A', 'B', 'C', 1, 2, 3]arr;// ['A', 'B', 'C']

請注意,concat()方法并沒有修改當(dāng)前Array健民,而是返回了一個新的Array抒巢。

實際上,concat()方法可以接收任意個元素和Array秉犹,并且自動把Array拆開蛉谜,然后全部添加到新的Array里:

vararr = ['A','B','C'];arr.concat(1,2, [3,4]);// ['A', 'B', 'C', 1, 2, 3, 4]

join

join()方法是一個非常實用的方法,它把當(dāng)前Array的每個元素都用指定的字符串連接起來崇堵,然后返回連接后的字符串:

vararr = ['A','B','C',1,2,3];arr.join('-');// 'A-B-C-1-2-3'

如果Array的元素不是字符串型诚,將自動轉(zhuǎn)換為字符串后再連接。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸳劳,一起剝皮案震驚了整個濱河市俺驶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棍辕,老刑警劉巖暮现,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異楚昭,居然都是意外死亡栖袋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門抚太,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塘幅,“玉大人,你說我怎么就攤上這事尿贫〉缦保” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵庆亡,是天一觀的道長匾乓。 經(jīng)常有香客問我,道長又谋,這世上最難降的妖魔是什么拼缝? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任娱局,我火速辦了婚禮,結(jié)果婚禮上咧七,老公的妹妹穿的比我還像新娘衰齐。我一直安慰自己,他們只是感情好继阻,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布耻涛。 她就那樣靜靜地躺著,像睡著了一般瘟檩。 火紅的嫁衣襯著肌膚如雪抹缕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天芒帕,我揣著相機與錄音歉嗓,去河邊找鬼丰介。 笑死背蟆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哮幢。 我是一名探鬼主播带膀,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼橙垢!你這毒婦竟也來了垛叨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤柜某,失蹤者是張志新(化名)和其女友劉穎嗽元,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喂击,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡剂癌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了翰绊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佩谷。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖监嗜,靈堂內(nèi)的尸體忽然破棺而出谐檀,到底是詐尸還是另有隱情,我是刑警寧澤裁奇,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布桐猬,位于F島的核電站,受9級特大地震影響刽肠,放射性物質(zhì)發(fā)生泄漏课幕。R本人自食惡果不足惜厦坛,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乍惊。 院中可真熱鬧杜秸,春花似錦、人聲如沸润绎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莉撇。三九已至呢蛤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棍郎,已是汗流浹背其障。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涂佃,地道東北人励翼。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像辜荠,于是被迫代替她去往敵國和親汽抚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容