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生成asp.net服务器控件的代码
Feb 04 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
JS 实现导航栏悬停效果(续)
Sep 24 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
玩转方法:call和apply
May 08 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
jQuery遍历json中多个map的方法
Feb 12 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
详解JavaScript的Polymer框架中的通知交互
Jul 29 Javascript
js格式化时间的简单实例
Nov 27 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
详解VUE 数组更新
2017/12/16 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
python访问抓取网页常用命令总结
2017/04/11 Python
浅谈对yield的初步理解
2017/05/29 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
Python中如何导入类示例详解
2019/04/17 Python
基于python实现百度翻译功能
2019/05/09 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
校园奶茶店创业计划书
2014/01/23 职场文书
欢送退休感言
2014/02/08 职场文书
物资采购方案
2014/06/12 职场文书
会计专业自荐书
2014/07/08 职场文书
大学毕业生推荐信
2014/07/09 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
委托证明模板
2014/09/16 职场文书
升职自荐信怎么写
2015/03/05 职场文书
小学语文教学反思范文
2016/03/03 职场文书