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让Html中特殊字符不被转义
Nov 05 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
Aug 07 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
Dec 16 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
vue 自定义 select内置组件
Apr 10 Javascript
详解微信小程序缓存--缓存时效性
May 02 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
小程序实现悬浮搜索框
Jul 12 Javascript
javaScript把其它类型转换为Number类型
Oct 13 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加密解密函数详解
2015/10/28 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python实现在一个画布上画多个子图
2020/01/19 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
世界最大的票务市场:viagogo
2017/02/16 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
大学毕业生求职自荐信
2014/02/20 职场文书
辩论赛主持词
2014/03/18 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
涨价通知怎么写
2015/04/23 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js