学习 JavaScript (六)核心概念:函数

基本知识

函数对于我们来说,不算陌生的东西。中学就已经有了函数的概念,比如:

y = f(x)

输入一个数 x,能够得到与之对应的一个数 y。也就是说,f(x) 的有一个返回值,这是函数在数学上的定义。但是在 JavaSciprt 中,我们把函数看成是发生器,在内部可以进行一系列运算,可以有返回值,也可以没有返回值。

函数是用关键字 function 来声明,后面跟一组参数以及函数体,基本的语法如下所示:

function 函数名字 (参数 1,参数 2,参数 3){
    函数体
}

如果一个函数有返回值,我们可以看到关键字 return 。在 return 后面发生的一切都没有用了,执行完 return 函数立即退出。一个返回 Hello World 的示例:

function sayHello(arg1, arg2){
    return arg1 + arg2
    alert("猫咪")
}

sayHello("Hello", "World"); // 会返回 Hello World ,但是 "猫咪" 不会出现。

不用返回值,函数也可以运行的:

function sayHello(arg1, arg2){
    alert("我就不返回值")
}

sayHello("Hello", "World"); // 会弹提示框,而不是参数

函数要么有返回值,要么没有返回值。像 return 后面不跟东西,是不推荐这么干的,这样会导致调试困难。

关于参数

参数有很多有趣的地方,JavaScript 在定义函数的时候,标识符可以没有,可以有很多个;在使用函数的时候,传入的参数可以没有,可以有很多个。

我们应该了解的:

  1. 参数不能命名成 eval 或者 arguments;
  2. 参数在函数内部是以数组的形式存在,我们可以访问 argument 对象得到;
  3. 所有参数都是值,不可能通过引用传递参数;
  4. JavaScript 函数不能像 Java 那样实现重载(两个名字相同的函数却是两个不同的函数),后者会覆盖前者。这是因为参数是一个数组,没有函数签名的说法。可以判断参数的类型或者大小,return 不同的值,实现不完美的重载;
  5. 一般我们称 JavaScript 的参数为形参,是因为参数的名字和传入的值之间不受名称的影响,有的语言在调用函数时,传入的参数名称必须和定义的标识符一致才可以调用。这是因为解析器不会校验参数名,只关心参数的个数和相对位置。


欢迎大家关注微信公众号:** 可视化技术( visteacher )**

不仅有前端和可视化,还有算法、源码分析、书籍相送

个人网站:http://blog.kurryluo.com

各个分享平台的 KurryLuo 都是在下。

用心学习,认真生活,努力工作!

原文地址:https://www.cnblogs.com/kurryluo/p/9683442.html

时间: 2024-10-23 06:46:24

学习 JavaScript (六)核心概念:函数的相关文章

NIO学习系列:核心概念及基本读写

1.    引言    I/O流或者输入/输出流指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.新的输入/输出(NIO)库是在JDK 1.4中引入的.NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的.面向块的I/O.   原来的I/O库与NIO最重要的区别是数据打包和传输的方式的不同,原来的 I/O 以流 的方式处理数据,而 NIO 以块 的方式处理数据.    面向流的I/O系统一次一个字节地处理数据.一个输入流产生一个字节的数据,一个输出流消费一个字节的数

使用Firebug或chrome-devToolBar深入学习javascript语言核心

使用Firebug和chrome-devToolBar调试页面样式或脚本是前端开发每天必做之事.这个开发神器到底能给我们带来哪些更神奇的帮助呢?这几天看的一些资料中给了我启发,能不通过Firebug和chrome-devToolBar发现JS的全局对象的全部属性呢?能不能发现document对象中含有哪些不常用而又需要深刻理解的属性呢? 我们在此开8! 一.浅析for-in语句 for-in循环也被称为“枚举”,用在非数组对象的遍历上,这个语句可以返回对象中的属性或属性对应的值. 从技术上将,你

Docker 学习笔记之 核心概念

Docker核心概念: Docker Daemon Docker Container Docker Registry Docker Client 通过rest API 和Docker Daemon进程进行交互,控制Container的启动,运行和关闭.Daemon会向Registry拉image.

轻松学习JavaScript六:JavaScript的表达式与运算符

JavaScript脚本语言描述了一组用于操作数据值的运算符,包括一元运算符,布尔运算符,算术运算符,关系运 算符,三元运算符,位运算符和赋值运算符. 表达式是JavaScript语言的一个"短语",包含变量名(或字面量)和运算符.最简单的表达式时字面量或变量名.当 然也有合并简单的表达式来创建复杂的表达式. 一一元运算符 (1)递增++和递减-- var box1=100; ++box1;//相当于box=box+1 document.write("box1="+

Oracle学习笔记六 SQL常用函数

函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类: 单行函数对于从表中查询的每一行只返回一个值 可以出现在 SELECT 子句中和 WHERE 子句中 单行函数可以大致划分为: 1.日期函数 2.数字函数 3.字符函数 4.转换函数 5.其他函数 单行函数 日期函数 日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果 日期函数包括: 1.ADD_MONTHS 2.MONTHS_BETWEEN 3.LAST_D

javascript——对象的概念——函数 1 (函数对象的属性和方法)

一.函数相关的属性: 1.arguments:访问函数的输入参数,由脚本解释器自动创建,具有length属性,可以用序号访问每个参数. 2.callee:arguments的属性,表正在执行的函数对象. 3.calleer:函数对象的属性,表函数对象的父函数对象.

javascript——对象的概念——函数 3 (使用技巧)

1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1:

tensorflow 2.0 学习 (六) Himmelblua函数求极值

Himmelblua函数在(-6,6),(-6,6)的二维平面上求极值 函数的数学表达式:f(x, y) = (x**2 + y -11)**2 + (x + y**2 -7)**2: 如下图所示 等高线如下图所示: 代码如下: # encoding: utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl from mpl_toolkits

学习 JavaScript (四)核心概念:操作符

JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,前面三个上一篇文章已经讲解完了.后面三个内容超级多,这篇文章主要讲解的是操作符. 操作符 什么叫做操作符? 这是一种工具,帮助我们操作字符串.数字值.布尔值,乃至对象,运用一些操作符能够让代码更简洁.计算更高效.它包括以下几种: 赋值操作符 一元操作符(加.减) 位操作符 关系操作符 相等操作符 01 赋值操作符 赋值操作符就是我们常见的 "=",作用就是把右边的值赋给左边的变量.比如: let a =

如何正确学习JavaScript

学习时长:6-8周学习前提:中学水平,无需编程经验 更新(2014-1-7) 在Reddit上创建了一个学习小组January 2014, “Learn JavaScript” Study Group on Reddit 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:WebStorm 第一个项目-动态问答应用 5-6周(正则表达式,Window对象,事件,jQue