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 相关文章推荐
详细介绍8款超实用JavaScript框架
Oct 25 Javascript
js实现简单登录功能的实例代码
Nov 09 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
分享一则javascript 调试技巧
Jan 02 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
Vue中正确使用jQuery的方法
Oct 30 jQuery
ES6中数组array新增方法实例总结
Nov 07 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
Aug 12 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
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
利用python绘制正态分布曲线
2021/01/04 Python
python asyncio 协程库的使用
2021/01/21 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
保密承诺书范文
2014/03/27 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
旷工辞退通知书
2015/04/17 职场文书
罚款通知怎么写
2015/04/22 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL