語法基礎(chǔ)

js語法基本沿襲了c的語法特點两入,如果學(xué)過c的朋友來開發(fā)js是非常容易入門的

  • 變量/常量
   const a = 100; //定義常量,不可變先嬉,強制更改會報錯,另一種實現(xiàn)方式是閉包,請看javascript進階篇里的閉包
   var b = 'bob'; //定義變量矫钓,通過var可以定義任意類型(目前是這樣的哈)
   typeof(b); //輸出string,typeof方法是系統(tǒng)內(nèi)置函數(shù)毡琉,用來檢測變量類型
  • 定義變量可以通過var 來定義铁瞒,同時可以不用寫var 直接用 c=true,區(qū)別在于前者是局部變量,后者是全局變量桅滋,我們提倡全部使用var來定義慧耍,這樣不會對變量環(huán)境造成污染,如果你想定義一個全局變量丐谋,可以寫在函數(shù)(函數(shù)下面會講解)外面芍碧,或在js模塊的開始定義。

  • 數(shù)據(jù)類型
數(shù)據(jù)類型 含義
string 字符串
boolean 布爾true/false
number 數(shù)字
array 數(shù)組
object 對象
undefined 未定義 對象不含有值
null 空值
  • 操作實例
var str = 'hello'; //定義字符串
var str1 = str + 'world' //字符串拼接 輸出 helloworld
var bol = true; //定義布爾類型變量
typeof(bol);  //輸出變量類型boolean
var num = 10; //定義num數(shù)字變量
var num1 = num - 5.5; //數(shù)字變量操作号俐,輸出4.5 泌豆,num整型會自動轉(zhuǎn)化為浮點類型
var arr = ['he','llo','world','!']; //定義數(shù)組
arr1=arr.join('');  //數(shù)組拼接 輸出helloworld!
var obj = {'name':'bob','sex':'1'} //定義對象object
console.log(obj.name); //輸出bob
document.write(obj['sex']); 輸出1

  • 運算符
運算符 含義
+ 加號,數(shù)學(xué)運算和字符串連接符
- 減號萧落,位于字符串前可將字符串類型轉(zhuǎn)換為數(shù)字(取反)
*
/
% 取余
++ 自加
-- 自減
= 賦值
+= 符號左邊元素等于符號左邊元素加上右邊元素,可用于數(shù)值和字符串
-= 符號左邊元素等于符號左邊元素減去右邊元素暑认,數(shù)值運算
*= 符號左邊元素等于符號左邊元素乘右邊元素
/= 符號左邊元素等于符號左邊元素除右邊元素
%= 符號左邊元素等于符號左邊元素對右邊元素取余
delete 運算符刪除對以前定義的對象屬性或方法的引用
void 運算符對任何值返回 undefined柿隙,用于避免輸出不應(yīng)該輸出的值
位運算符 NOT
& 位運算符 AND
豎杠(編輯器原因) 位運算符 OR
^ XOR 當(dāng)前為兩個不同為1
<< 左移運算 1<<10 = 1024
>> 有符號右移
>>> 無符號右移
&& AND 并且
雙豎杠 OR 或者
> 大于
< 小于
>= 大于等于
<= 小于等于
== 當(dāng)且僅當(dāng)兩個運算數(shù)相等時敛滋,它返回 true (如果類型不同則轉(zhuǎn)換)
!= 當(dāng)且僅當(dāng)兩個運算數(shù)不相等時兴革,它返回 true (如果類型不同則轉(zhuǎn)換)
=== 當(dāng)且僅當(dāng)兩個運算數(shù)相等并且類型相同時绎晃,它返回 true ,不做類型轉(zhuǎn)換
b杂曲?c:d 如果b成立則執(zhí)行c庶艾,否則執(zhí)行d
* 運算符不做過多案例,下面的文章中都會慢慢滲透

  • 條件判斷IF-ELSE
var _a = 2; //定義一個變量_a
if(_a=1){   
    document.write(_a) //如果_a的值是1擎勘,則輸出1
}else{
    _a=1;  
   docuement.write('change!') //如果不是1,則把_a的值設(shè)為1,并輸出change咱揍!
}
//當(dāng)然else if(){}在多種條件并存的情況下就有用武之地了~

  • switch-case條件判斷語句和if-else語句都可以用來做條件判斷使用,if-else的使用范圍更廣棚饵,同時也更常用一些煤裙。而switch-case語句在特定條件下使用可以使文檔脈絡(luò)更加清晰。
var day=new Date().getDay();
switch (day)
{
case 0:
  x="Today it's Sunday";
  break;
case 1:
  x="Today it's Monday";
  break;
case 2:
  x="Today it's Tuesday";
  break;
case 3:
  x="Today it's Wednesday";
  break;
case 4:
  x="Today it's Thursday";
  break;
case 5:
  x="Today it's Friday";
  break;
case 6:
  x="Today it's Saturday";
  break;
}
//這里從W3C上找來一個例子噪漾,在我經(jīng)歷過的項目中硼砰,使用switch來做條件判斷的真不多。

  • 循環(huán)遍歷
    • for 循環(huán) (a,b,c) a語句為循環(huán)開始前定義欣硼,b是循環(huán)運行條件题翰,c是代碼塊執(zhí)行一次后運行代碼
var count=0;   //定義變量count,用于存儲和
for(var i =0;i<=10;i++){   //定義開始條件i=0;循環(huán)運行條件i<=10;代碼塊執(zhí)行一次后運行代碼i++;
   count+=i;  //求和 0-10
}
document.write(count);  //輸出0-10 的和
  • for-in循環(huán)诈胜,一般用于遍歷json對象
var _list=[{'name':'bob','sex':'1'},{'name':'lisa','sex':'0'}];   //定義一個json數(shù)組
for(x in _list){      
   document.write(x['name']);  //遍歷數(shù)組豹障,輸出對象的名字
}
  • while 循環(huán),一般用于單條件
var x=0;                 //同樣使用for循環(huán)的例子,求0-10的和
var count=0;
while(x<11){
    count+=x;
    x+=1;
}
  • do-while 循環(huán)耘斩,和while相同沼填,只是無論條件是否成立,都執(zhí)行一次代碼塊
var x=0,count=0;
do{                          //同樣使用for循環(huán)的例子括授,求0-10的和坞笙,但先執(zhí)行do模塊,然后再判斷while條件荚虚。
  count+=x;
    x+=1;
}while(x<11);

  • try-catch-finally 錯誤捕捉薛夜,我們不能說優(yōu)秀的程序員都會用,但我認為嚴(yán)謹(jǐn)?shù)脑秤蒙线€是靠譜的版述。
try{
    //TODO something               業(yè)務(wù)邏輯都寫在這里面
}catch(e){
     //當(dāng)然這里也是可以執(zhí)行代碼的
     console.log('報錯啦:'+e);
}finally{
    //去做你想做的事梯澜,誰也阻擋不了你
    console.log('我在最后執(zhí)行,無論上面是否捕捉到錯誤~');
}

看到這里應(yīng)該可以搞些事情了渴析。晚伙。吮龄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咆疗,隨后出現(xiàn)的幾起案子漓帚,更是在濱河造成了極大的恐慌,老刑警劉巖午磁,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尝抖,死亡現(xiàn)場離奇詭異,居然都是意外死亡迅皇,警方通過查閱死者的電腦和手機昧辽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來登颓,“玉大人搅荞,你說我怎么就攤上這事⊥荩” “怎么了取具?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扁耐。 經(jīng)常有香客問我,道長产阱,這世上最難降的妖魔是什么婉称? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮构蹬,結(jié)果婚禮上王暗,老公的妹妹穿的比我還像新娘。我一直安慰自己庄敛,他們只是感情好俗壹,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藻烤,像睡著了一般绷雏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怖亭,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天涎显,我揣著相機與錄音,去河邊找鬼兴猩。 笑死期吓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倾芝。 我是一名探鬼主播讨勤,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼箭跳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了潭千?” 一聲冷哼從身側(cè)響起衅码,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脊岳,沒想到半個月后逝段,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡割捅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年奶躯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亿驾。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘹黔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莫瞬,到底是詐尸還是另有隱情儡蔓,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布疼邀,位于F島的核電站喂江,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏旁振。R本人自食惡果不足惜获询,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拐袜。 院中可真熱鬧吉嚣,春花似錦、人聲如沸蹬铺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甜攀。三九已至秋泄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赴邻,已是汗流浹背印衔。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姥敛,地道東北人奸焙。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親与帆。 傳聞我的和親對象是個殘疾皇子了赌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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