Head first javascript(四)
if语句
if ( test condition ) statement1; else statement2;
// comments
/* comments ... */
script level:直接在<script></script>里面声明的变量相当与全局变量,可以直接在每个函数里面访问。在函数里面生命的变量只能在该函数里面访问而不能在其他地方访问,如果可以的话尽量使用局部变量。
switch语句
switch ( test data ){ case ... : statement; break; ... default: statement; break; }
for循环
for ( initial condition ; test ; update ){ adtion; }
数组 var name = new Array()
二位数组
var seats = new Array(new Array(5), new Array(5),...);
var showTime = ["12:30", "2:45", "5:00", "8:24"];
while循环
while ( test ) { action; update; }
function:reduce, reuse, recycle
function name (args){ body return value; }
函数其实也是变量,函数名字是变量名,函数体是变量值
function showSeatStatus(seatNum){ alert("..."); } var showSeatStatus = function(seatNum){ alert("..."); }; var myShowSeatStatus = showSeatStatus;
上面两种形式其实是一样的,当一个函数体单独出现而没有名字的时候,就是一个所谓的字面函数(function literal),而且函数可以像变量一样进行赋值操作。调用函数的时候可以直接用myShowSeatStatus这样的变量名,因此函数名也可以被当作是函数引用(function reference).
在网页中调用函数的一种方法是在html中,如<body onload = "initSeats();">,另一种方法是直接写在js文件中,如window.onload = initSeats; onload事件是window对象的一个属性 第二种方式的好处是可以把html和js代码分开,不用在html中嵌套js代码,但同时也会造成调用函数时传递参数不方便的问题。因此就有了所谓的匿名函数(anonymous function),如下:
document.getElementById("...").onclick = function(evt){ showSeatStatus(...); };
这里evt传递的是一个event object,当然不需要传递参数的也可以这样调用,只是参数传递了没有使用而已。
onload事件可以绑定页面里的很多事件,可以作为很多事件的初始化函数:
window.onload = function(){ //wire other events... ... initSeats(); }