一.語法
(1)區分大小寫
(2)標識符:
1.第一個字符必須是字母,下劃線或$,其他字符可以是字母,下劃線,$或數字。
2.駝峰大小寫格式:firstSecond
(3)注釋:單行注釋// 多行注釋/* */
(4)嚴格模式:“use strict”
(5)語句:分號結尾; 在控制語句中(如if語句)使用代碼塊{}
二.關鍵字和保留字: 表示控制語句的開始或結束,不能用於標識符
三.變量
(1)松散類型
(2)局部變量:var name=“hello world”,age=29;變量在函數退出後就會銷毀
(3)全局變量:name=“hello world”;局部作用域中定義的全局變量很難維護,不推薦
四.數據類型
(1)typeof操作符:typeof 100;//"number“
(2)typeof返回值:
"undefined” “boolean” ”string” ”number“”object“(這個值是對象或null) "function”(這個值是函數)
(3)數據類型:
Undefined:使用var聲明變量但未對其初始化,這個變量的值就是undefined
Null:表示空對象指針,定義的變量還沒有真正保存對象,則讓該變量保存null值
Boolean:
1.兩個值true,false
2.所有類型的值都可以轉換為其對應的boolean值
例:
var message=2;
if(2){ //自動執行boolean轉換為true
alert("it is 2”);
}
Number:
1.整數字面量格式:十進制var number=55;八進制var number=071;十六進制var number=0x1f;
2.浮點數值: var number=2.1;
ECMAScript將小數點後邊帶6個零以上的浮點數值轉換為以e表示法表示的數值
例:var floatNum=3.1e7; (31000000)
浮點數值最高精度為17位小數,但在算數計算時精確度不如整數
3.數值范圍:最小Number.MIN_VALUE 為5e-324 最大Number.MAX_VALUE 為
isFinite()函數:參數位於最小與最大之間會返回true
例:alert(isFinite(2));//true
4.NaN:即非數值,是一個特殊的數值(任何數除以0會返回NaN)
isNaN()函數:將不能轉換為數值的值返回true
例:alert(isNaN(NaN));//true Boolean值true可以轉換為1
5.數值轉換:Number()
parseInt()
parseFloat()
String:
1.toString()方法:
數值,布爾值,對象,字符串都有toString()方法,null和undefined值沒有
例:
var message=10;
alert(message.toString());//10
alert(message.toString(2));//1010 通過傳遞參數 toString(參數)輸出二,八,十,十六進制,默認為十進制
2.轉型函數 String():
可將任何類型的值轉換為字符串
例:
var message=10;
alert(String(message));//"10”
Object()對象類型:
1.Object類型是所有它的實例的基礎,Object類型所具有的類型和方法也同樣存在於具體對象中
2.創建對象:var o=new Object();
五.操作符
(1)一元操作符: 1.前置遞增和遞減:在包含語句求值之前執行
var num=1;
var anotherNum=—num + 1;
alert(num);//0
alert(anotherNum);//1
2.後置遞增和遞減:在包含語句求值之後執行
var num=1;
var anotherNum=num—+ 1;
alert(num);//0
alert(anotherNum);//2
(2)一元加和一元減:+10 -10
(3)位操作符: 1.會求補碼
2.按位非:~
3.按位與:& 轉換為二進制,每一位對齊,都為1時為1
4.按位或:| 都為0時為0
5.按位異或:^ 相同為0
6.有沒有同或???
7.左移:<<
8.有符號右移:>> 以符號位的值填充空位
9.無符號右移:>>> 以零填充空位
(4)布爾操作符: 1.邏輯與:&&
2.邏輯或:|| 避免為變量賦null或undefined var myObject=oneObject || twoObject;
3.邏輯非:!
(5)乘性操作符:* / %
(6)加性操作符:+ —
(7)關系操作符:< > <= >=
(8)相等操作符:相等== 不相等 !=(先轉換再比較)
全等===不全等!===(不轉換只比較)
(9)條件操作符:var max =(num1>num2)? num1:num2;
(10)賦值操作符:var num=10;
num+=10;
(11)逗號操作符:
六.語句
if switch with break continue等 不詳述
七.函數
(1)function functionName(參數1,參數2, …){
聲明
}
(2)無須指定函數的返回值,位於return之後的任何代碼都不會執行
function functionName(num1,num2){
return num1+num2;
alert("hello world”); //不會執行
}
(3)參數:
1.ECMAScript中的參數在內部是用一個數組表示的,在函數體中可以通過arguments對象來訪問參數數組,如arguments[0],arguments[1]對應第一二個參數,且arguments的值與對應命名參數的值保持一致
2.參數的命名不是必須的,length屬性可以知道有多少個參數 arguments.length
(4)沒有重載,但可以模仿重載:
function myNum(num1,num2){
if(arguments.length==1){
alert(num1+10);
}else if(arguments.length==2){
alert(argumengs[0]+20);
}
}