【Javascript】javascript小白常用 基础知识

1.javascript数组是变长的

var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度

2.js事件处理

js事件

3.split分割字符串

stringObject.split(separator,limit)//limit为分割后取出的数组成员个数

例:

var mystr="86-010-85468578";
document.write( mystr.split('-',2) + "<br />");
//result: 86,010

4.loaction对象

location
href格式

5.window对象

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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章