一、函数的种类

1.无参函数

function showName() {
alert("我是无参函数");
}

2.有参函数 在函数中的参数为“形式参数”

形式参数:定义函数时指定的参数,具体数据是由实际参数决定
实际参数:调用函数的时候指定的参数,实参的值会影响形式参数*/
function showName(name) {
alert(name);
}

二、函数的调用方式

1.直接调用

function showName(name) {
alert(name);
}
showName();

2:函数调用一般和元素的事件一起使用,调用格式(和元素事件绑定)

事件名=“函数名()”
onclick="showName('A')"

三、匿名函数

匿名函数用变量接收。变量名称+()可以让函数执行
var show = function () {
alert("1111");
};
show();
 

匿名函数的自调用

方法一
(function () {
alert("我是匿名函数!")
})();
方法二
(function () {
alert("我是匿名函数!")
}());
方法三
!function () {
alert("我是匿名函数!")
}();

四、return关键字

给主调函数返回一个被调函数的计算结果。
function calc(num1,c,num2) {
switch (c){
case '+' :
var result = num1 + num2 ;
break;
case '-' :
var result = num1 - num2 ;
break;
case '*' :
var result = num1 * num2 ;
break;
case '/' :
var result = num1 / num2 ;
break;
}
return result;
/*alert(result);*/
}
var r = calc(parseInt(prompt("请输入第一个数:")),prompt("请输入四则运算符:"), parseInt(prompt("请输入第二个数:")));
alert(r);

五、实参不确定的情况

1、在实参个数不确定的情况下,可以省略形参,在函数体内部使用arguments
argument是一个数组,里面包含了函数调用的所有实参!
function show() {
alert(arguments[0]);
}
show("aaa");
2、arguments.callee属性
arguments.callee属性指向函数本身,可以用于递归
function show() {
console.log(arguments.callee);
}
show("aab");
3.arguments的this属性
var zhangsan ={
name: "zhangsan",
age: "28",
height: "189",
say:function () {
alert(zhangsan.name);
/*按f12看console属性*/
console.log(this);
},
eat:function () {
alert("汉堡包!");
},
}
zhangsan.say();

六、变量作用域

全局变量

1.写在函数前面的变量
2.没用var修饰的变量
没用var修饰的变量,会一层一层的往上找,如果找到同名变量,就进行赋值,或覆盖原有值
如果到最后都没有找到同名变量,就声明一个同名全局变量。

局部变量

定义在函数内部的变量。
代码举例:
var num = 10;
function calc1() {
num = 5;
alert(num + 15);
}
function calc2() {
alert(num + 20);
}
calc1();
calc2();
 

JS——函数的更多相关文章

  1. 3.3 js函数

    1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...

  2. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  3. js函数表达式和函数声明的区别

    我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...

  4. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  5. 通用js函数集锦<来源于网络/自己> 【一】

    通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...

  6. 100多个基础常用JS函数和语法集合大全

    网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...

  7. JS函数

    1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏 ...

  8. js函数和运算符

    函数是由事件驱动或者它被调用时执行可重复使用的代码块. <script> function myFunction(){ Alert(“hello World!”): } </scri ...

  9. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

  10. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

随机推荐

  1. oozie note

    http://blog.sina.com.cn/s/blog_62a9902f01011ccd.html 实例:http://www.infoq.com/cn/articles/oozieexampl ...

  2. Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮

    自CRM2011引入多FORM窗体,并且对不同的窗体引入了角色控制,给我们的客制化开发带来了多样化,既然有了多窗体也就理所当然的有了在不同的窗体显示不同的Ribbon按钮的需求,具体怎么做见下面的博客 ...

  3. 【一天一道LeetCode】#50. Pow(x, n)

    一天一道LeetCode系列 (一)题目 Implement pow(x, n). (二)解题 题目很简单,实现x的n次方. /* 需要注意一下几点: 1.n==0时,返回值为1 2.x==1时,返回 ...

  4. Android 免Root实现Apk静默安装,覆盖兼容市场主流的98%的机型

    地址:http://blog.csdn.net/sk719887916/article/details/46746991 作者: skay 最近在做apk自我静默更新,在获取内置情况下,或者已root ...

  5. Ubuntu15.04 + Matlab2014a + MatConvNet install and compile

    MatConvNet is a MATLAB toolbox implementingConvolutional NeuralNetworks (CNNs) for computer vision a ...

  6. SpriteBuilder修改CCB文件中的子CCB文件需要注意的一个地方

    在SpriteBuilder中如果一个CCB(比如一个场景)中嵌入了另一个子CCB文件(比如一个player),那么当给该子CCB中的root对象添加若干属性的时候,必须注意到这个并没有应用到父CCB ...

  7. Linux下的 .o、.a、.so文件

    http://blog.sina.com.cn/s/blog_656681710100qzmy.html 工程里很多函数只是有声明,找不到实现的代码.因为那些实现代码已经编译成库所以看不见,我所看见的 ...

  8. Linux之ulimit详解(整理)

    修改:一般可以通过ulimit命令或编辑/etc/security/limits.conf重新加载的方式使之生效通过ulimit比较直接,但只在当前的session有效,limits.conf中可以根 ...

  9. mybatis ----数据级联查询(多对一)

    工程的目录结构: 有两个表,一个文章表article ,一个用户表user. create table article (id int(11) not null auto_increment, use ...

  10. centos 7下安装python 3.6笔记

    每次在centos上安装python 3都需要重新查资料,这次索性自己记下笔记. 首先安装gcc yum -y install gccyum install zlib-devel./configure ...