1.javascript數組是變長的
var arrayObj = new Array([size]); //創建一個數組並指定長度,注意不是上限,是長度
2.js事件處理
3.split分割字符串
stringObject.split(separator,limit)//limit爲分割後取出的數組成員個數
例:
var mystr="86-010-85468578";
document.write( mystr.split('-',2) + "<br />");
//result: 86,010
4.loaction對象
5.window對象
6.js閉包
閉包可以用在許多地方。它的最大用處有兩個
- 可以讀取函數內部的變量
- 讓這些變量的值始終保持在內存中
由於在Javascript語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解成“定義在一個函數內部的函數”。
所以,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋樑
7.使用this來引用調用函數的標籤
for(var i=0;i<btn.length;i++){
btn[i].index=i;
btn[i].onclick=function() {
for(var j=0;j<txt.length;j++){
txt[j].style.display='none';
}
txt[this.index].style.display='block';//寫成txt[btn[i].index].style.display='block';會出問題
}
}
8.js變量作用域
Javascript在執行前會對整個腳本文件的聲明部分做完整分析(包括局部變量),從而確定實變量的作用域。怎麼理解呢?看下面一個例子:
<script>
var a =1;
function test(){
alert(a); //a爲undefined! 這個a並不是全局變量,這是因爲在function scope裏已經聲明瞭(函數體倒數第4行)一個重名的局部變量,
//所以全局變量a被覆蓋了,這說明了Javascript在執行前會對整個腳本文件的定義部分做完整分析,所以在函數test()執行前,
//函數體中的變量a就被指向內部的局部變量.而不是指向外部的全局變量. 但這時a只有聲明,還沒賦值,所以輸出undefined。
a=4
alert(a); //a爲4,沒懸念了吧? 這裏的a還是局部變量哦!
var a; //局部變量a在這行聲明
alert(a); //a還是爲4,這是因爲之前已把4賦給a了
}
test();
alert(a); //a爲1,這裏並不在function scope內,a的值爲全局變量的值
</script>
9、通過名稱name選取元素(getElementsByName)
1)使用方法:document.getElementsByName(“domName”)
其中,domName爲要選取元素的name屬性值
2)說明:
-
a. 返回值是一個nodeList集合(區別於Array)
-
b.和ID屬性不一樣,name屬性只在少數DOM元素中有效(form表單、表單元素、iframe、img)。這是因爲name屬性是爲了方便提交表單數據而打造的。
-
c.爲form、img、iframe、applet、embed、object元素設置name屬性時,會自動在Document對象中創建以該name屬性值命名的屬性。所以可以通過document.domName引用相應的dom對象
3)兼容性:IE中ID屬性值匹配的元素也會一起返回
10.js的函數參數不能加var
function func(var m){}//no
function func(m){}//yes
11.html中調用函數在不同js文件中存在同名函數,調用先聲明的js文件中函數
12.js聲明和使用
//js聲明必須用<script></script>不能用<script/>
<script src="xxx.js" ></script>
ps. html有雙標籤,單標籤之分
13.js中JSON使用
參考地址(http://blog.csdn.net/flysun3344/article/details/50279947##1)
sendResponse("{'userName':'"+localStorage.userName+"'}")//鍵也需要用引號括起
var resJSON=eval('(' + response + ')')//把字符串拼接起來,再解釋
eval是js中神奇的方法,自行百度瞭解
14.在引入jquery的script塊中寫代碼是無反應,必須再寫一個
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js">
</script>
<script type="text/javascript">
alert($("#id"));
</script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js">
alert($("#id"));//無反應
</script>
進一步測試js
正確:
//testSrc.html:
<body>
<script src="ww.js">
</script>
<script>
a();
</script>
</body>
//ww.js:
function a() {
alert("sss");
}
錯誤:
//testSrc.html:
<body>
<script src="ww.js">
a();
</script>
</body>
//ww.js:
function a() {
alert("sss");
}
結論:在使用src後,語句塊內部不能再寫js代碼
15.html標籤中引用js
<input type="button" onclick="javascript:alert('我是js腳本代碼');"/>
16.js 函數作爲參數
參考地址(http://blog.csdn.net/kaituozhe345/article/details/7236454)
function test1(Func){
Func(mydata);
}
function test3(data){
alert(data);
}
test1(test3("zhangran"));//彈出zhangran
17.函數的靈活調用
- 定義函數時無參,調用時添加參數也可調用
function a(){
alert("ss");
}
a("","ss");//也可調用出a函數
- 定義函數時有參,調用時無參也可調用
function a(b,c){
alert(b);//但是會彈出undefined
}
a();//也可調用出a函數
18.null和undefined的區別
理解概念沒什麼必要,複雜,瞭解出現場合就足夠了
-
null表示"沒有對象",即該處不應該有值。典型用法是:
-
(1) 作爲函數的參數,表示該函數的參數不是對象。
-
(2) 作爲對象原型鏈的終點。
-
-
undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:
- (1)變量被聲明瞭,但沒有賦值時,就等於undefined。
- (2) 調用函數時,應該提供的參數沒有提供,該參數等於undefined。
- (3)對象沒有賦值的屬性,該屬性的值爲undefined。
- (4)函數沒有返回值時,默認返回undefined。
var i;
i // undefined function
f(x){
console.log(x)
}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined
undefine == null //true
undefine === null //false
19.join()函數
定義和用法
join() 方法用於把數組中的所有元素放入一個字符串。
元素是通過指定的分隔符進行分隔的。
語法
arrayObject.join(separator)