一、運算子
複製代碼 代碼如下:. [] () 屬性存取及函數調用
delete new typeof + - ! 一元運算子
* / % 乘法,除法,模數
+ - 加法/串連,減法
>= <= > < 不等式運算子
=== !== 等式運算子
&& 邏輯與
|| 邏輯或
?: 三元運算子
二、語句:
1.if語句 複製代碼 代碼如下:var dayOfWeek=0;
if(day===6){
}
else if(dayOfWeek===0){
}
else{
}
2.switch語句
複製代碼 代碼如下:var dayOfWeek=0;
switch (dayOfWeek){
case 6:
break;
case 0:
break;
default:
break;
}
switch語句將switch運算式的值和所有指定的Case運算式進行精確匹配(===)。當找到一個匹配時,執行匹配的case從句中的語句。如果沒有找到任何匹配,則執行可選的default語句。
3.while語句 複製代碼 代碼如下:var count=0;
while (count<=10){
count++;
}
4.do/while語句 複製代碼 代碼如下:var count=0;
do{
count++;
}while (count<=10);
5.for語句
複製代碼 代碼如下:for (var count=0;count<=10;count++){
}
6.for/in語句
複製代碼 代碼如下:var colors=["Red","Yellow","Blue"];
for (var color in colors){
}
7.try/catch語句 複製代碼 代碼如下:try{
}
catch(e){
}
8.throw語句 複製代碼 代碼如下:throw{
name:'ArgumentOutOfRangeError',
message:'year must > 0'
}
9.return語句
return "Red";
return語句會使一個函數提前返回。它也可以指定要被返回的值。如果沒有指定返回運算式,那麼其值是undefined。
三、類型:
1.數字
var value=1.0;
JavaScript只有一個單一的數字類型。他在內部被表示為64位的浮點數。
特殊數值:
NaN 非數位特殊值
Infinity 無窮大的特殊值
2.字串
var value="One";
JavaScript字串是一個由16位的Unicode字元組成的序列。字串字面量可以被包圍在單引號或雙引號中。
字串轉義:
\" \' \\
\b 退格符
\f 換頁符
\n 分行符號
\r 斷行符號符
\t 定位字元
\uXXXX 由4位16進位XXXX指定的Unicode字元
3.布爾值
var value=true;
布爾值只有2個值:true和false。
下列值被當作假值:
false
null
undefined
Null 字元串''
數字0
數字NaN
4.null
var value=null; //null
JavaScript中null是一個特殊的值,表示“無值”。
5.undefined
var value; //undefined
JavaScript中undefined是一個特殊的值。在使用一個未聲明的變數,或已聲明但還未賦值的變數,以及並不存在的對象屬性時,將返回undefined。
6.對象 複製代碼 代碼如下:var car={
brand:"Honda",
color:"Red",
run:function(){
//run
}
};
var value=car.brand;
JavaScript中的對象是可變的索引值集合。對象是屬性的容器,其中每個屬性都擁有名字和值。屬性的名字可以是包括Null 字元串在內的任一字元串。屬性值可以是除undefined值之外的任何值。 複製代碼 代碼如下:car.prototype.stop=function(){
//stop
};
car.run();
每個對象都串連到一個原型對象,並且它可以從中繼承屬性。原型串連在更新時是不起作用的。它只有在檢索值的時候才被使用。
模組化: 複製代碼 代碼如下:var App={};
App.employee={
name:"Joyce"
}
App.customer={
name:"Jason"
}
7.函數 複製代碼 代碼如下:var add=function(a,b){
return a+b;
};
add(1+2);
JavaScript中函數就是對象。函數可以被定義在其它函數中。一個內建函式可以訪問包圍它的外部函數的參數和變數。這被稱為閉包。
閉包: 複製代碼 代碼如下:var car=function(brand,color){
return {
getBrand:function(){
return brand;
},
getColor:function(){
return color;
}
};
};
var myCar=car("Honda","Red");
myCar.getBrand();
函數化繼承:
複製代碼 代碼如下:var mammal = function (spec) {
var that = {};
that.getName = function () {
return spec.name;
};
that.says = function () {
return spec.saying || '';
};
return that;
};
var myMammal = mammal({name: 'Herb'});
var cat = function (spec) {
spec.saying = spec.saying || 'meow';
var that = mammal(spec);
that.purr = function (n) {
//purr
};
that.getName = function () {
return that.says() + ' ' + spec.name + ' ' + that.says();
};
return that;
};
var myCat = cat({name: 'Henrietta'});
8.數組
var colors=["Red","Yellow","Blue"];
var value=colors[0]; //"Red"
數組和對象一樣是索引值集合。所不同的是,數組可以用整數做為屬性名稱。數組還提供了一套非常有用的內建方法。
每個數組都有一個length屬性。length屬性的值是這個數組的最大整數屬性名稱加上1。它不一定等於數組裡的屬性的個數。
9.Regex 複製代碼 代碼如下:var numberRegex=/^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
numberRegex.test(1.2); //true
Regex分組:
() 捕獲型分組
(?:) 非捕獲型分組
Regex轉義:
\\ \/ \[ \] \( \) \{ \} \? \+ \* \| \. \^ \$
\f 換頁符
\n 分行符號
\r 斷行符號符
\t 定位字元
\uXXXX 由4位16進位XXXX指定的Unicode字元
\d 匹配一個數字(等同於[0-9])
\1 捕獲型分組1的引用(\2依此類推)
Regex類轉義:
\- \\ \/ \[ \] \^
\b 退格符
\f 換頁符
\n 分行符號
\r 斷行符號符
\t 定位字元
\uXXXX 由4位16進位XXXX指定的Unicode字元
\d 匹配一個數字(等同於[0-9])
Regex量詞:
? 匹配0或1次(同{0,1})
* 匹配0或多次(同{0,})
+ 匹配1或多次(同{1,})
{n} 匹配n次
{n,} 匹配至少n次
{n,m} 匹配至少n次,但不能超過m次
Regex標誌:
g 執行全域匹配(所有匹配)
i 執行不區分大小寫匹配
m 執行多行匹配(^和$能匹配行結束符)