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实现的WEB页面跳转以及页面间传值方法
May 13 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
Apr 25 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 Javascript
js获取checkbox值的方法
Jan 28 Javascript
有关文件上传 非ajax提交 得到后台数据问题
Oct 12 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
使用node.js搭建服务器
May 20 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 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数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
javascript学习之json入门
2016/12/22 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
node实现基于token的身份验证
2018/04/09 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python对Excel的读取的示例代码
2020/02/14 Python
python连接mysql有哪些方法
2020/06/24 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
大一新生军训时的自我评价分享
2013/12/05 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
党校学习自我鉴定
2014/02/24 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang