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设置和去除disabled属性的5种方法总结
May 16 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
Jun 18 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
jQuery EasyUI菜单与按钮详解
Jul 13 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
Aug 29 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
Angular中使用better-scroll插件的方法
Mar 27 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
May 23 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
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中的CMS的涵义
2007/03/11 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP面向对象精要总结
2014/11/07 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
windows系统下Python环境搭建教程
2017/03/28 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python格式化日期时间操作示例
2018/06/28 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
详解python中eval函数的作用
2019/10/22 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
python实现学生管理系统开发
2020/07/24 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
求职简历自荐信
2014/06/18 职场文书
法学院毕业生求职信
2014/06/25 职场文书
销售顾问工作计划书
2014/08/15 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
jquery插件实现悬浮的菜单
2021/04/24 jQuery
基于Golang 高并发问题的解决方案
2021/05/08 Golang
使用numpy nonzero 找出非0元素
2021/05/14 Python