这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文通过示例向大家简单分析了 javascript 的事件和方法,文章简洁而不简单,是篇非常不错的基础文章,这里推荐给大家。
单击一个超链接触发事件
1. 用 a 标签的 onclick
<a href="#"onclick="js 代码 ">
这种写法呢,存在一种弊端,就是点击后会刷新一次页面,回到页面顶端。
想不刷新如何做的呢?
- <a href="javascript:void(0)" onclick="js代码">
2.# 与 javascript:void(0)的区别
超链接为 "死链" 时,使用 #与 javascript:void(0); 的区别。
Void(0)没有用的值, 不会去任何地方, 就没有意义了
而 #会刷新一次当前页面。
3. 再或者、用 a 标签的 href
<a href="javascript: js 代码 ">
只有超链接的 href 中的 JavaScript 中才需要加 "javascript:",
因为它不是事件,而是把 "javascript:" 看成像 "http:"、"ftp:"、"thunder://"、"ed2k://"、"mailto:" 一样的网络协议,交由 js 解析引擎处理。
方法的特别强调
1. 不要另起一行
一般在 js 中编写大括号都是直接跟在后面而不要另起一行,
原因是 js 会在语句末尾自动增加 "分号",如果将大括号另起一行,则 return 语句后自动增加 "分号" 后,返回值就变成了 undefined 了。
2. 不需要声明返回值类型
不需要声明返回值类型、参数类型。函数定义以 function 开头。
JavaScript 中不像 C# 和 java 那样要求所有路径都有返回值没有返回值就是 undefined。
3. 没有方法重载
JavaScript 中没有方法重载。
方法中写参数叫命名参数
用户调用计算多个数的和的方法,如何获取方法中有多少个参数呢
请使用 arguments 对象!
匿名函数
1. 方式一
- var f1 = function(p1, p2) {
- return p1 + p2;
- }; //将函数赋值给一个变量
匿名函数没法调用, 只能赋值给一个变量, 由于是赋值语句, 后面要加分号
应用:
- document.getElementById('btn').onclick=function(){}
2. 方式二
- (function(p1, p2) {
- alert(p1 + p2);
- })(20, 30);
3. 方式三
- var m1=new Function("p1","p2","p3","return p1+p2+p3");
- alert(m1(1,2,3));性能低
这种匿名函数的用法在 jQuery 中的非常多
扩展方法 prototype
通过类对象的 prototype 设置扩展方法,
扩展方法的声明要在使用扩展方法之前执行。JS 的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值就是 undefined,自己做判断来给默认值。
- var msg='xiaoming@111.com';
- String.prototype.isEmail = function(){
- return this.indexof('@')!= -1 ?true:false;
- };
- alert(msg.isEmail);
事件
1. 调用事件
2. 注册事件
一定是在页面加载完成了以后,才能给页面的元素注册事件。
所以 onload = function(){
// 在这里注册事件
};
页面加载事件
- <script type="text/javascript">
- //刷新
- //location.reload();
- onload=function(){
- alert("页面加载了");
- };
- onunload =function(){
- alert("页面关闭了");
- };
- onbeforeunload= function(){
- alert("页面关闭之前触发");
- };
- </script>
来源: http://www.phperz.com/article/17/0413/272600.html