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)