javascript笔记整理(函数)
javascript函数的声明和调用
将完成某一特定功能的代码集合起来,可以重复使用的代码块。
一、函数的声明方式(创建)
A.基本语法(function 关键字)
function 函数名([参数1],[参数2]....){
函数体
[retrun] //返回值
}
function a(){
alert(1)
};
B.字面量定义的形式(匿名函数)
var 变量=function ([参数1],[参数2]....){
函数体
[retrun] //返回值
}
var a=function(){
alert(1);
}
C.以对象的形式来声明(不推荐使用)
new 关键字。
var 变量=new Function([参数1],[参数2]...,"函数体");
var a=new Function(alert(1));
二、函数的调用方式
A.函数名() 、变量名();
function a(){
alert(1)
};
a();
var a=function(){
alert(1);
}
a();
B.直接调用执行;
(function () {
alert(1);
})();
//结果 1
三、两种声明方式的区别
基本语法
function a(){
alert(1)
};
//会先预编译
1.如果两个函数的命名相同,后面的将会覆盖前面的函数
function a(){alert(1)};
function a(){alert(2)};
a();
//结果 2
function a(){alert(1)};
var a=function(){alert(2)};
a();
//结果 2
var a=function(){alert(2)};
function a(){alert(1)};
a();
//结果 2
2.以基本语法声明的函数,会在代码运行的时候,提前加载到内存当中,以供以后使用,但是以字面量形式命名的函数,会在执行到的时候,才进行赋值
function a(){alert(1)};
a();
//结果 1
a();
function a(){alert(1)};
//结果 1
a();
var a=function (){alert(1)};
//结果 报错
3.在不同的<script></script>块中的函数,使用和调用的时候,应该先定义,后执行。
<script>
a();
</script> <script>
var a=function (){alert(1)};
</script> //结果 报错
javascript函数的参数和return语句
//金字塔
function a(num){
for(var i=1;i<=num;i++){
for(var b=1;b<=num-i;b++){
document.write('=');
}
for(var b=1;b<=i*2-1;b++){
document.write('8');
}
for(var b=1;b<=num-i;b++){
document.write('=');
}
document.write('<br>');
}
};
a(9);
效果:
aaarticlea/png;base64,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" alt="" />
一、参数(可以动态的改变函数体内对应的变量的类型或值,使同一函数体得到不同的结果)
形参:在定义函数的时候,函数括号中定义的变量叫做形参:function a(形参){}
实参:调用函数的时候,在括号中传入的变量或值叫做实参:a(实参)
1.参数的类型(可以是任何的数据类型)
2.参数的个数(最多是25)
a.实参和形参数量相等,一一对应。
b.形参的数量多于实参,不会报错,但是多出的参数他的值,会自动赋值为undefined
function a(a,b){
alert(a);
alert(b)
};
a(1);
结果:1-------------undefined
c.实参的数量多于形参。不会报错,但是要得到多出的实参的值,要用arguments对象
function a(a){
alert(a)
};
a(1,2);
//结果:1
二、arguments对象(每创建一个函数,该函数就会隐式创建一个arguments对象,他包含有实际传入参数的信息)
1.length(检测实际传入参数的个数)
function a(a){
alert(arguments.length);
};
a(1,2);
//结果 2
2.callee(对本身的调用)
function a(a){
alert(arguments.callee);
};
a(1,2);
//结果 function a(a){alert(arguments.callee)}
3.访问传入参数的具体的值([下标])
function a(a){
alert(arguments[2]);
};
a(1,2,3);
//结果 3
三、函数重载(同一个函数因为参数的类型或数量不同,可以对应多个函数的实现,每种实现对应一个函数体)
function a(){
for(i=0;i<arguments.length;i++){
alert(arguments[i]);
}
};
a(1,2,3);
//结果依次弹出 1、2、3
javascript笔记整理(函数)的更多相关文章
- javascript笔记整理(回调、递归、内置顶层函数)
1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...
- JavaScript笔记整理
整理一篇工作中的JavaScript脚本笔记,不定时更新,笔记来自网上资料或者自己经验归纳. (1) 获取Url绝对路径 function getUrlRelativePath() { var url ...
- javascript笔记整理(事件)
一.事件驱动 1.事件javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源引发事件的元素(发生在谁的身上) 3.事件处理程序对事件处理的程序或是函数 (发生了什么事) 二 ...
- javascript笔记整理(对象的继承顺序、分类)
Object.prototype.say=function(){ alert("我是顶层的方法"); } children.prototype=new parent(); pare ...
- javascript笔记整理(对象遍历封装继承)
一.javascript对象遍历 1.javascript属性访问 对象.属性名 对象['属性名'] var obj={name:'chen',red:function(){ alert(1);ret ...
- javascript笔记整理(对象基础)
一.名词解释 1.基于对象(一切皆对象,以对象的概念来编程) 2.面向对象编程(Object Oriented Programming,OOP) A.对象(JavaScript 中的所有事物都是对象) ...
- javascript笔记整理(变量作用域)
变量的作用域(作用域:指的就是一段代码的作用范围) 一.变量的作用域 1.全局变量(在代码中任何地方都能够访问得到的变量,拥有全局的作用域) A.最外层函数外面定义的变量 var a=1; funct ...
- javascript笔记整理(概述,变量,数据类型)
A.概述 1.输出工具: document.write()---可以是html alert()---字符串 prompt(text,defaultText) text---可选.要在对话框中显示的纯文 ...
- javascript笔记整理(正则)
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具 var re=/e/; var re=new RegExp('e'); 正则表达式的 String 对象的方法 1.search- ...
随机推荐
- 第四节 Code 39 码 / 三九码
39码是西元1974年发展出来的条码系统,是一种可供使用者双向扫瞄的分散式条码,也就是说相临两资料码之间,必须包含一个不具任何意义的空白(或细白,其逻辑值为0),且其具有支援文数字的能力,故应用较一般 ...
- XPath与多线程爬虫
XPath是一门在xml中查询信息的语言安装使用XPath 1.安装lxml库 window:pip install lxmllinux:sudo pip install lxml国内安装缓慢,建议到 ...
- 浅谈长尾理论--《Makers》读后感
近期有幸读了一本好书<Makers>,作者是克里斯·安德森.作为3D Robotics和DIY Drones的联合创始人,自然对于正步入的“第三次工业革命”有较为深刻的体会.清晰的逻辑中, ...
- CentOS下mysql最大连接数设置 1040 too many connection
当最大连接数比較小时,可能会出现"1040 too many connection"错误. 能够通过改动配置文件来改动最大连接数,但我连配置文件在哪都不知道,应该怎么办呢? 首先须 ...
- html里面自定义弹出窗口
网页上默认的提示框或对话框一般比较丑,可以利用div遮盖层来自定义对话框 1.定义一个按钮或者链接(项目里面是通过点击一个图片) <img src="images/zz.gif&quo ...
- C语言深度剖析---const关键字(转载)
const是constant的缩写,是恒定不变的意思.被const修饰的值,是只读变量. 1.const修饰只读变量,具有不变性 #include <stdio.h> int m ...
- CodeForces 189A 166E 【DP ·水】
非常感谢 Potaty 大大的援助使得我最后A出了这两题DP ================================== 189A : 求切分后的ribbon最多的数目,不过要求切分后只能存 ...
- iOS开发UITableViewCell的选中时的颜色设置
1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = ...
- cglib源码学习交流
背景 前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enancher等内容,以前虽大致知道一些内容,原 ...
- Pathchirp—有效的带宽估计方法(二)
上一个blog介绍了有效带宽估计方法:pathload.http://blog.csdn.net/ice110956/article/details/11126491. 做一个小小的总结:pathlo ...