JavaScript基础——JavaScript函数(笔记)
avaScript 函数(笔记)
JavaScript 是函数式编程语言,在JavaScript脚本中可以随处看到函数,函数构成了JavaScript源代码的主体。
一、定义函数
定义函数的方法有两种:
- 使用function语句声明函数。
- 通过Function对象来构造函数。
使用function来定义函数有两种方式:
//方式1: 命名函数
function f(){
//函数体
} //方式2: 匿名函数
var f = function(){
//函数体
}
命名函数的方法也被称为声明式函数,而匿名函数的方法也被称为引用式函数或者函数表达式,即把函数看做一个复杂的表达式,并把表达式赋予给变量。
使用Function对象构造函数的语法如下:
var function_name = new Function(arg1, arg2, arg3,) ……,argN, function_body)
在上面语法形式中,每个arg都是一个函数参数,最后一个参数是函数主体(要执行的代码)。Function()的所有参数必须是字符串。
【示例1】在以下示例中,通过Funnction构造函数定义了一个自定义函数,该函数包含两个参数,在函数主体部分使用 document.write() 方法把两个参数包裹在 <h1> 标签中输出,显示效果如下所示:
<html>
<head>
<meta charset="utf-8">
<title>JavaScript 定义函数</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
</body>
</html>
var say = new Function("name", "say", "document.write('<h1>' + name + ':' + say + '</h1>');");
say("张三","Hi!");
【示例2】在实际开发中,使用function定义函数要比Function构造函数方便,且执行效率更高。Function仅用于特定的动态环境中,一般不建议使用。
var say = function(name, say){ //定义函数
document.write('<h1>' + name + ':' + say + '</h1>');
}
say("张三","Hi!"); //调用函数
【效果】

二、调用函数
调用函数使用小括号运算符来实现。在括号运算符内部可以包含多个参数列表,参数之间通过逗号进行分隔。
【示例】 在以下示例中使用小括号调用函数f,并把返回值传递给document.write()方法。
function f(){
return "Hello, World!"; //设置函数返回值
}
document.write(f()); //设置函数,并输出返回值
【提示】
一个函数可以包含多个return语句,但是在调用函数时只有第一个return语句被执,且被return语句后面的表达式的值作为函数的返回值被返回,return语句后面的代码将被忽略掉。
三、函数参数
参数可以分为两种:形参和实参。
形参:就是在定义函数时,传递给函数的参数,被称为形参,即形式上参数。
实参:就是当函数被调用时,传给函数的参数,这些参数被称为实参。
【示例1】在以下示例函数中,参数a和b就是形参,而调用函数中的23和34就是实参。
function add(a,b){ //形参a和b
return a+b;
}
alert(add(23,24)); //实参23和24
【效果1】

函数的形参没有限制,可以包括零个或多个。函数形参的数量可以通过函数的length属性获取。
【示例2】针对上面函数可以使用以下语句读取函数的形参个数。
function add(a,b){ //形参a和b
return a+b;
}
alert(add.length) //返回2,形参的个数
【效果2】

JavaScript基础——JavaScript函数(笔记)的更多相关文章
- (Frontend Newbie)JavaScript基础之函数
函数可以说是任何一门编程语言的核心概念.要能熟练掌握JavaScript,对于函数及其相关概念的学习是非常重要的一步.本篇从函数的基本知识.执行环境与作用域.闭包.this关键字等方面简单介绍Java ...
- JavaScript基础——JavaScript常量和变量(笔记)
JavaScript常量和变量(笔记) Javascript代码严格区分大小写. javascript暂不支持constant关键字,不允许用户自定义常量. javascript使用var关键字声明变 ...
- JavaScript基础学习-函数及作用域
函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常要用到这两部分内容,作为初学者,我经常有困惑,借助写此博文来巩固下之前学习的内容. (一)JavaS ...
- JavaScript 基础回顾——函数
在JavaScript中,函数也是一种数据类型,属于 function 类型,所以使用Function关键字标识函数名.函数可以在大括号内编写代码并且被调用,作为其他函数的参数或者对象的属性值. 1. ...
- Javascript 基础--JS函数(三)
一.基本概念:未完成某一个功能的代码(语句,指令)的集合. 二.函数的调用方式: 2.1.函数名(传递参数1,传递参数2) 基本语法 function 函数名(参数列表){ //代码; retur ...
- javascript基础(五)函数
原文http://pij.robinqu.me/ 通过call和apply间接调用函数(改变this) call 和 apply带有多个参数,call和apply把当前函数的this指向第一个参数给定 ...
- JavaScript基础教程复习笔记
document.write("<h1>这是一个标题</h1>"); 您只能在 HTML 输出中使用 document.write.如果您在文档加载后使用该 ...
- JavaScript基础——JavaScript语法基础(笔记)
JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...
- Javascript进阶篇——(函数)笔记整理
这节是根据慕课网和JavaScript DOM编程艺术一书加起来做的笔记 什么是函数如果需要多次使用同一段代码,可以把它们封装成一个函数.函数(function)就是一组允许在你的代码里随时调用的语句 ...
随机推荐
- 在Debian下利用URLOS快速安装SqlServer2017
SqlServer能在Debian上安装吗?答案是可以!网络上也能找到很多Linux系统下安装SqlServer的相关文章,也许经过一些折腾,你也能成功在Debian中安装sqlserver,但是其中 ...
- C#中StringBuilder类的使用总结
String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新 ...
- DFS(深度优先搜索)和BFS(广度优先搜索)
深度优先搜索算法(Depth-First-Search) 深度优先搜索算法(Depth-First-Search),是搜索算法的一种. 它沿着树的深度遍历树的节点,尽可能深的搜索树的分支. 当节点v的 ...
- java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: YES)
1.刚开始连接数据库提示是: java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: N ...
- 2019牛客暑期多校训练营(第二场)-E MAZE
题目链接:https://ac.nowcoder.com/acm/contest/882/E 题意:n×m的矩阵,0表示可以走,1表示墙,不能通过.有q中操作,一种是改变坐标(x,y)的状态,一种是询 ...
- 2019牛客暑期多校训练营(第一场)-A (单调栈)
题目链接:https://ac.nowcoder.com/acm/contest/881/A 题意:给定两个长度均为n的数组a和b,求最大的p使得(a1,ap)和(b1,bp)等价,等价的定义为其任意 ...
- codeforces 816B Karen and Coffee (差分思想)
题目链接 816B Karen and Coffee 题目分析 题意:有个人在学泡咖啡,因此看了很多关于泡咖啡温度的书,得到了n种推荐的泡咖啡温度范围[L1,R1] ,此人将有k种做法推荐的温度记为可 ...
- python-1:正则表达式(基础知识点)
1.简单匹配: \d →匹配一个数字 \w →匹配一个数字或字母 \s →匹配一个空格(包括tab等空白符) . →匹配任意字符 * →匹配任意个字符(包括0个) + →匹配至少一个字 ...
- python网络编程-socket套接字通信循环-粘包问题-struct模块-02
前置知识 不同计算机程序之间数据的传输 应用程序中的数据都是从程序所在计算机内存中读取的. 内存中的数据是从硬盘读取或者网络传输过来的 不同计算机程序数据传输需要经过七层协议物理连接介质才能到达目标程 ...
- windows下使用zookeeper
windows下dos窗口操作:https://blog.csdn.net/a632189007/article/details/78085858