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- ...
随机推荐
- XWalkView+html 开发Android应用
在Android开发中有时候为了开发简洁和方便移植,采用了Html+WebView的开发模式,然而Android自带的WebView控件是调用的本机的浏览器内核,有些版本较老的手机浏览器和手机性能都不 ...
- Hadoop Hive与Hbase整合+thrift
Hadoop Hive与Hbase整合+thrift 1. 简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句 ...
- 商业模式画布及应用 - MBA智库文档
商业模式画布及应用 - MBA智库文档 商业模式画布及应用
- Python实现BBS自动登录并发帖
初学Python有了一段时间,寒假里又看了一些Web编程方面的知识,就写了一个实现bbs自动登录和发帖的Python脚本 由于本人学校BBS站首页使用js加载,貌似通过首页登录不大可行,然后就分析表单 ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
- BCB6.0是垃圾的二十条理由
我用的BCB6.0和windows2000 都是公司配的正版,我也有多年的开发经验. 1. IDE常常出现非法操作,有时重起动还会出错,须要重装BCB. 2. 自己主动完毕和智能提示功能超慢,慢到能够 ...
- CentOS 64位上编译 Hadoop 2.6.0
Hadoop不提供64位编译好的版本号,仅仅能用源代码自行编译64位版本号. 学习一项技术从安装開始.学习hadoop要从编译開始. 1.操作系统编译环境 yum install cmake lzo- ...
- Java简单记录
XML指令: <?xml version="1.0" encoding="UTF-8" standalone="no" ?> & ...
- Android:ListViewAdapter
MainActivity: package com.wyl.listview; import java.util.ArrayList; import java.util.HashMap; import ...
- BAAS
http://blogs.embarcadero.com/sarinadupont/category/baas-tutorials/?cid=701G0000000vH0A&elq=51f98 ...