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 相关文章推荐
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
Apr 08 Javascript
基于jquery实现省市联动效果
Nov 23 Javascript
你有必要知道的25个JavaScript面试题
Dec 29 Javascript
浅谈js中对象的使用
Aug 11 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 Javascript
ant design的table组件实现全选功能以及自定义分页
Nov 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
URL Rewrite的设置方法
2007/01/02 PHP
PHP 实例化类的一点摘记
2008/03/23 PHP
drupal 代码实现URL重写
2011/05/04 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
php中file_exists函数使用详解
2015/05/08 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
解析js如何获取css样式
2016/12/11 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
Python中random模块用法实例分析
2015/05/19 Python
python实现求最长回文子串长度
2018/01/22 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
电子信息毕业生自荐信
2013/11/16 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android