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)該可以搞些事情了渴析。晚伙。吮龄。