什么是函数

函数的作用,可以写一次代码,然后反复地重用这个代码。

<h3 onload="add2(1,2,3);add3(4,5,6)"></h3>
<hr/>
<button style="width: 100px;height: 50px;" value="" onclick="add(10,20)">什么是函数</button>
<button style="width: 100px;height: 50px;" value="" onclick="sub()">定义函数</button>
<button style="width: 100px;height: 50px;" value="" onclick="FUNC()">函数叠加功能调用</button>
<hr/>
<h3>有参函数调用:</h3>
<button style="width: 100px;height: 50px;" value="" onclick="add4(10,20)">返回值函数</button>
<script type="text/javascript" src="../JS/jq/jquery-3.2.1.min.js"></script>
<script type="text/javascript">

function add(a1,a2) {
var sum=a1+a2;
alert(sum);
}

//调用函数

//add(10,20);
var sum=1;
function sub(argument) {//调用函数
sum+=1;
alert(sum);
}
function FUNC(){//函数调用
for (var i =0; i < 10; i++) {
sub();
}
}

//函数传参

function add2(x,y,z){
var sum = x + y +z;
document.write(x+"、"+y+"、"+z+"和:"+sum+"<hr/>");

}

function add3(x,y,z){
var sum = x + y +z;
document.write(x+"、"+y+"、"+z+"和:"+sum+"<hr/>");
}

//返回值函数

function add4(x,y){
var result=x+y
return result;
}
var value=add4(20,10);
document.write("返回值:"+value);
</script>

1、JS函数定义

含义:JS使用关键字function定义函数,函数可以同过声明定义,也可以是一个表达式。

一:函数声明

function save(){//函数体}

二:函数表达式

var x = function (a, b) {return a * b};

三:functiion构造函数

var myFunction = new Function("a", "b", "return a * b"); 
var x = myFunction(4, 3);

注意:在 JavaScript 中,很多时候,你需要避免使用 new 关键字

四:函数提升:

提升:是JS默认将当前作用域提升到前面去的行为。提升应用在变量的声明与函数的声明,因此,函数可以在申明之前调用。

myFunction(5);
function myFunction(y) {
    return y * y;
}

注意:使用表达式定义函数时无法提升

五:自调用函数:函数实际上是一个 匿名自我调用的函数 (没有函数名)。

(function () { 
    var x = "Hello!!";      // 我将调用自己 
})();

六:函数可作为一个值使用也可以作为表达式使用

function myFunction(a, b) { 
    return a * b; 
}

var x = myFunction(4, 3);

七:函数是对象

实列:

function myFunction(a, b) { 
    return arguments.length; 
}

toString()将函数作为一个字符串返回

2、JS函数参数

一:JavaScript 函数参数:

  1、显式参数:函数显式参数在函数定义时列出。

functionName(parameter1, parameter2, parameter3) {
    code to be executed
}

  2、隐藏参数:函数隐藏参数(arguments)在函数调用时传递给函数真正的值。

  3、默认参数:如果函数在调用时缺少参数,参数会默认设置为: undefined

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    } 
}

  4、Arguments 对象:JavaScript 函数有个内置的对象 arguments 对象.

  argument 对象包含了函数调用的参数数组。

实例

找出最大的值

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {

var i, max = arguments[0];

if(arguments.length < 2)return max;

for (i = 0; i < arguments.length; i++) {

if (arguments[i] > max) {

max = arguments[i];

}

}

return max;

}

  统计所有数值的和:

x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
    var i, sum = 0;
    for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}

  5、通过值传递参数:在函数中调用的参数是函数的参数。如果函数修改参数的值,将不会修改参数的初始值(在函数外定义)。

实例

var x = 1;
// 通过值传递参数
function myFunction(x) {
x++; //修改参数x的值,将不会修改在函数外定义的变量 x
console.log(x);
}
myFunction(x); // 2
console.log(x); // 1
  6、
通过对象传递参数:在JavaScript中,可以引用对象的值。因此我们在函数内部修改对象的属性就会修改其初始的值。修改对象属性可作用于函数外部(全局变量)。

实例

var obj = {x:1};
// 通过对象传递参数
function myFunction(obj) {
obj.x++; //修改参数对象obj.x的值,函数外定义的obj也将会被修改
console.log(obj.x);
}
myFunction(obj); // 2
console.log(obj.x); // 2
3、JS函数调用
  

JS函数篇【2】的更多相关文章

  1. js函数篇

    1.闭包函数,作用:不污染全局变量,  定义:与外界隔离的独立作用域被称为闭包,使用函数实现该功能称为函数闭包: 写法: (function(){ function sayHello(){ conso ...

  2. Node.js进阶篇-koa、钩子函数、websocket、嵌入式开发

    代码地址如下:http://www.demodashi.com/demo/12932.html 一.简介     koa是由Express原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的We ...

  3. 如何编写高质量的 JS 函数(1) -- 敲山震虎篇

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/7lCK9cHmunvYlbm7Xi7JxQ作者:杨昆 一千个读者,有一千个哈姆雷特. 此系列文 ...

  4. 如何编写高质量的 JS 函数(2) -- 命名/注释/鲁棒篇

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/sd2oX0Z_cMY8_GvFg8pO4Q作者:杨昆 上篇<如何编写高质量的 JS 函数 ...

  5. 如何编写高质量的 JS 函数(3) --函数式编程[理论篇]

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EWSqZuujHIRyx8Eb2SSidQ作者:杨昆 [编写高质量函数系列]中, <如何 ...

  6. 如何编写高质量的 JS 函数(4) --函数式编程[实战篇]

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ZoXYbjuezOWgNyJKmSQmTw作者:杨昆 [编写高质量函数系列],往期精彩内容: ...

  7. JS创建对象篇

    JS创建对象篇 Object构造函数创建 var person = new Object(); person.name = "Tom"; person.age = 10; pers ...

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

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

  9. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

随机推荐

  1. DataTable.NET 使用server-side processing

    https://datatables.net/examples/server_side/simple.html 當頁面上要顯示的數據在10萬筆以上時,可以使用server-side processin ...

  2. 【sql server inject】使用动态查询执行sql语句实例

    应某少年要求授权测试一个存在报错注入点的站点,可读取数据库名,但是sqlmap执行–os-shell选项就会莫名当掉: 分步骤测试了几次,发现xp_cmdshell是开启状态,但用sqlmap注入却无 ...

  3. bootstrapTable:获取选中行的数据

    必须要有checkbox:true和singleSelect:true,然后就可以通过var row=$("#mytab").bootstrapTable('getSelectio ...

  4. Python爬取网址中多个页面的信息

    通过上一篇博客了解到爬取数据的操作,但对于存在多个页面的网址来说,使用上一篇博客中的代码爬取下来的资料并不完整.接下来就是讲解该如何爬取之后的页面信息. 一.审查元素 鼠标移至页码处右键,选择检查元素 ...

  5. 【Chrome插件】右键搜--多站点搜索

    写在前面:看文章前请先看文章写作时间,避免浪费时间.2019-09-10 使用场景 一次输入,同时在多个网站进行内容搜索,比如一键在不同网站搜索电影.一键获取多个搜索引擎的搜索结果. 操作演示 评分 ...

  6. 【VS开发】从sockaddr中取得客户端或者数据源的Ip地址和端口号

    在socket编程中,服务器端accept()等待一个客户端的连接,当连接成功后,accept拷贝客户端的地址信息到sin_addr里面,我们如何从sin_addr取得此客户端的Ip地址和端口号呢? ...

  7. [转帖]谷歌宣称首次实现量子优越性,IBM“不服”,中国同行咋看?

    谷歌宣称首次实现量子优越性,IBM“不服”,中国同行咋看? 投递人 itwriter 发布于 2019-10-24 15:46 评论(7) 有306人阅读 原文链接 [收藏] « » https:// ...

  8. 《Mysql - Count(*) 的优化》

    一:Count(*) 的实现方式? - 要明确的是,在不同的 MySQL 引擎中,count(*) 有不同的实现方式. - MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) ...

  9. java中selenium判断某个元素是否存在

    selenium工具 直接通过findElement方法获取某个元素,如果该元素不存在肯定会报错,selenium又没有可以判断该元素是否存在的方法 于是我们可以手写一个工具类,来判断这个元素是否存在 ...

  10. go语言的3个包——strconv、os.Args、flag

    1. strconv包: 2. os.Args: 获取运行程序时给出的参数,可以通过os包来实现.看代码: package main import ( "fmt" "os ...