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 相关文章推荐
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
Nov 08 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
Jul 04 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
小程序接口的promise化的实现方法
Dec 11 Javascript
vue-cli3使用mock数据的方法分析
Mar 16 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 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和XSS跨站攻击的防范
2007/04/17 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
python基础教程之lambda表达式使用方法
2014/02/12 Python
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Python实现调度算法代码详解
2017/12/01 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Python判断有效的数独算法示例
2019/02/23 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
写自荐信的七个技巧
2013/10/15 职场文书
小学科学教学反思
2014/01/26 职场文书
财务部经理岗位职责
2014/02/03 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
二审答辩状格式
2015/05/22 职场文书
教师读书笔记
2015/06/29 职场文书
学校团代会开幕词
2016/03/04 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
python - asyncio异步编程
2021/04/06 Python