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


Posted in Javascript onJanuary 02, 2013

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不一样了。
Javascript 相关文章推荐
jquery实现控制表格行高亮实例
Jun 05 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
JavaScript评论点赞功能的实现方法
Mar 13 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
javascript学习(一)构建自己的JS库
Jan 02 #Javascript
jQuery常见开发技巧详细整理
Jan 02 #Javascript
js显示时间 js显示最后修改时间
Jan 02 #Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 #Javascript
js 回车提交表单两种实现方法
Dec 31 #Javascript
event.currentTarget与event.target的区别介绍
Dec 31 #Javascript
jQuery $.data()方法使用注意细节
Dec 31 #Javascript
You might like
php实现单链表的实例代码
2013/03/22 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
深入理解React高阶组件
2017/09/28 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
tensorflow获取变量维度信息
2018/03/10 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
军校本科大学生自我评价
2014/01/14 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
求职信内容怎么写
2014/05/26 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
单位委托书
2014/10/15 职场文书
小学班主任工作总结2015
2015/04/07 职场文书