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 相关文章推荐
javascript之对系统的toFixed()方法的修正
May 08 Javascript
原生javascript实现无间缝滚动示例
Jan 28 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
js生成随机数的方法实例
Oct 16 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
Apr 03 Javascript
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
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中随机显示图片的函数代码
2011/06/23 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
phpinfo的知识点总结
2019/10/10 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
pycharm安装图文教程
2017/05/02 Python
django输出html内容的实例
2018/05/27 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python使用minimax算法实现五子棋
2019/07/29 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
linux面试题参考答案(9)
2016/01/29 面试题
合法的离婚协议书范本
2014/10/23 职场文书
西安兵马俑导游词
2015/02/02 职场文书
语文教师个人工作总结
2015/02/06 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫