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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
jQuery开发者都需要知道的5个小技巧
Jan 08 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
Mar 09 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
JS获取指定月份的天数两种实现方法
Jun 22 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
解决vuex刷新数据消失问题
Nov 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
php中函数的形参与实参的问题说明
2010/09/01 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
简单实现python爬虫功能
2015/12/31 Python
怎样使用Python脚本日志功能
2016/08/14 Python
Python解惑之整数比较详解
2017/04/24 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
Python字典实现伪切片功能
2020/10/28 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
教师自我剖析材料范文
2014/09/30 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
Django项目如何正确配置日志(logging)
2021/04/29 Python
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫