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』.html(),.text()和.val()的概述及使用
Apr 22 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
Dec 15 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
Sep 27 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 Javascript
微信小程序前端promise封装代码实例
Aug 24 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 Javascript
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
使用 JavaScript 制作页面效果
Apr 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
PHP ajax 分页类代码
2008/11/13 PHP
PHP中比较时间大小实例
2014/08/21 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php中switch语句用法详解
2015/08/17 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
给Function做的OOP扩展
2009/05/07 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
vue项目实战总结篇
2018/02/11 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
python读文件逐行处理的示例代码分享
2013/12/27 Python
详解Python3中yield生成器的用法
2015/08/20 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
python实现代码审查自动回复消息
2021/02/01 Python
应聘自荐信
2013/12/14 职场文书
工作推荐信范文
2014/05/10 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
出国导师推荐信
2015/03/25 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Python OpenCV实现图形检测示例详解
2022/04/08 Python