欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

javascript学习(二)javascript常见问题总结

时间:2020-10-14 10:04:18|栏目:JavaScript代码|点击:
1、JS中方法和变量都是区分大小写的

2、单引号、双引号在JS中没有特殊的区别,都可以用来创建字符串。但作为一般性规则,大多数开发人员喜欢用单引号而不是双引号,但是XHTML规范要求所有属性值都必须使用双引号括起来。这样在JS中使用单引号,而对XHTML使用双引号会使混合两者代码更方便也更清晰。
单引号可以包含双引号,同理,双引号也可以包含单引号。

3、括号
首先需要说明的是:JS中括号包含两种语义,可以是分隔符也可以是表达式。
a、分隔符大家非常熟悉(1+3)*3等于12
b、(function(){})();function之前的一对括号作为分隔符,后面的括号表示立即执行这个方法。

4、函数调用和引用
因为括号代表执行,所以:
var foo=example(); foo表示函数的返回值
var foo1=example; 将函数引用赋给一个值foo1

5、重载
JS不支持重载,因此这里所说有重载其实更类似于替换
JS不区别参数个数

6、作用域、闭包
作用域指对某一属性或方法具有访问权限的代码空间。如:
复制代码 代码如下:

function myFunction(){
var temp="abc";
}

上面的temp在函数外面无法访问。
闭包是与作用域相关的一个概念,它指的是内部函数即便在外部函数执行完成并终止后仍然可以其外部函数的属性。

下面我们就作用域和闭包来举个例子
我们建立如下html页面:
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript">
function init(){
for(var i=1;i<=3;i++){
author=document.getElementById("author"+i);
author.onclick=function(){
alert("author"+i);
}
}
}
window.onload=init;
</script>
</head>
<body>
<a id="author1" href="#">abc</a><br />
<a id="author2" href="#">abc</a><br />
<a id="author3" href="#">abc</a><br />
</body>
</html>

运行结果:
pic
可以看到,这并不是我们想要的。
进行修改后,关键代码如下:
复制代码 代码如下:

<script language="javascript" type="text/javascript">
function init(){
for(var i=1;i<=3;i++){
author=document.getElementById("author"+i);
registerListener(author,i);
}
}

function registerListener(author,i){
author.onclick=function(){
alert("author"+i);
}
}
window.onload=init;
</script>

这样,我们就得到了我们想要的结果。
这是因为init每次调用都产生function的一个实例,每个实例里都维护了一个新的i
而对于匿名函数的上一级已经有这个i,而且已经和init里的i不一样了。

上一篇:ajax的工作原理以及异步请求的封装介绍

栏    目:JavaScript代码

下一篇:JavaScript 调试器简介

本文标题:javascript学习(二)javascript常见问题总结

本文地址:http://www.codeinn.net/misctech/11060.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有