1.switch可用於字符串: java
3 |
case 1: alert("number");break; |
4 |
case true:alert('boolean');break; |
5 |
case 'abc': alert('String');break; |
2.with語句:
4 |
}//這樣就不用每次都寫document.writeln(...) |
3.foreach語句: 數組
1 |
function Person(name ,gender){ |
4 |
this.shout = function (){return 'shut up !';} |
6 |
var p = new Person('macondo','male'); |
8 |
document.writeln(i+' = '+p[i]+'<br>'); |
這裏foreach語句比java中得更進一步,緣由是p.name也能夠寫成p['name']
4.數組:
01 |
var fruit = new Array(); |
02 |
fruit.push('apple');//等同於fruit[0] = 'apple' |
03 |
fruit.push('pear');//等同於fruit[1] = 'pear' |
04 |
//等同於var fruit = new Array('apple','pear'); |
05 |
//等同於var fruit = ['apple','pear']; |
06 |
fruit['a']='orange';//我以爲就像fruit.a='orange',其實它再也不數組裏,而是fruit的一個屬性 |
09 |
document.writeln(i+' = '+fruit[i]+'<br>'); |
11 |
var t = fruit.length;//這裏必須先把length賦給t |
12 |
for(var i=0;i<t;i++){//若再for循環裏用length, pop()一下length就被改變了 |
13 |
document.writeln('pop:'+fruit.pop()+'<br>'); |
15 |
document.writeln(fruit['a']);//下目標爲‘a'的元素沒被刪除,且不會被pop掉 |
5.js中的數據類型有:string,boolean,number,undefined,function(函數也是對象),其餘的都是object類型,能夠同typeof運算符獲得數據類型 app
01 |
function add(a,b){return a+b;} |
03 |
writeln(typeof e);//undefined |
04 |
writeln(typeof 4.5);//number |
05 |
writeln(typeof (1/0));//number |
06 |
writeln(typeof true);//boolean |
07 |
writeln(typeof '');//string |
08 |
writeln(typeof add);//function |
09 |
writeln(typeof new add());//object |
10 |
writeln(typeof null)//也是object? |
12 |
writeln(typeof new Boolean('abc'));//objcet,由於boolean也是繼承自object |
13 |
writeln(typeof Boolean('abc'));//boolean,這裏是強制類型轉換,把'abc'變成true |
14 |
writeln(typeof new String('abc'));//同上 |
15 |
writeln(typeof String(true)); |
不知爲何null居然也是object,個人理解是除了原始數據類型(number,boolean,string等)以外,其餘的包括(Boolean,String)都是object繼承來的。Boolean和boolean是有一點區別的 函數
6.函數能夠先使用,後聲明 ui
7.除了在函數裏面聲明的變量是local variable以外,在for,if等{}塊中聲明的變量是全局變量 this
8.js numbers are 64-bit floating point numbers (ex. var a=444;) spa
9.字符串可用<、>比較大小 對象