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- ...
随机推荐
- django最佳实践
导入的时候使用绝对导入或者清晰的相对导入 相对导入用法: from __future__ import absolute_import from .models import what_u_need ...
- 浏览器对body节点scrollTop解析的差异
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style t ...
- java 语法 java没学好,休想学好安卓!
int...a 里面的...表示可变参数,也就是说这是一个长度不定的数组 instanceof : instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的 ...
- MFC消息顺序
1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要 ...
- 解惑:NFC手机怎样轻松读取银行卡信息?
自支付宝钱包8.0推出了NFC新功能,仅仅要将支持NFC功能的手机靠近公交卡.银行卡等带有芯片的IC卡上,可迅速读取卡内剩余金额.卡的信息,还能够给卡进行充值,很贴心有用. 可是非常多网友表示担忧,要 ...
- Shell脚本运行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell推断hdfs文件文件夹是否存在
#!/bin/bash source /etc/profile; ################################################## # Author: ouyang ...
- ThinkPHP - 扩展个人类库 - 以验证码类为例子
首先,在项目目录下创建Class文件夹,用于存储个人类文件. 之后建立Data目录存放所需字体文件,其他的数据也可以放在这个文件夹下. 然后再Conf文件夹下创建verify.php配置文件. 在co ...
- 循环调用修正sic86
create or replace procedure rebuild_sic86_wyl(pi_aac001 in number, po_fhz out varchar2, po_msg out v ...
- C++ cout 如何保留小数输出
参考 : http://upliu.net/how-cout-out-2-precision.html 大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出 不过在 C ...
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈.VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上" ...