初:函数

函数声明:一个函数的定义有几个关键字组成/1.function关键字/2.函数名称/3.()参数/4.{} 执行语句块组成。

函数声明跟函数表达式的区别:
/函数声明是以function关键字开始的 /函数声明一定要有名字 / 函数表达式有名字,也可以没有名字(匿名函数)/
栗子:function fn(){} //函数声明
var fn = function() {} //函数表达式

函数声明里面的函数不会改变全局变量的值/这个变量是一个固定的值
栗子:var a = 1;
function fn(a) {
a = a * 10;
return a;
} console.log(fn(a)) //a = 1; 不会改变全局中的变量a

function fn() {
var b = 1;
b = b * 10;
return b;
} console.log(fn()) // b = 10; 局部中的变量b的值改变

如果传递的参数是一个数组(Array)或者一个自定义对象,修改数组对象中的属性,对全局是起作用,可见。

栗子:function fn(arrList) {
arrList.make = ‘just‘;
}
var mycar = {make: "Honda", model: "Accord", year: 199};
var x, y;
console.log(x = mycar.make); //Honda
fn(mycar);
console.log(y = mycar.make); //jUST

多层嵌套函数,最里面的函数可以访问外面的函数,外面的不能访问里面的
栗子: function A(x) {
function B(y) {
function C(z) {
console.log(x+y+z)
}
C(3);
}
B(2);
}
A(1); // 6,C可以访问B,B属于A,C能访问B / A访问不了B跟C

命名冲突:如果变量命名发生了冲突,则要看他们的作用域,里面的最用域高于外面的作用域。
栗子: function A() {
var x = 10;
function B(x) {
return x;
}
return B;
}
fn = A()(20) //20,因为会采用B作用域中的20赋值

闭包:函数中包含函数的时候,当里面的函数用到了外部函数的变量或者方法,而里面的函数或者引用到的变量被返回 / 执行 / 被外部调用时就产生了闭包。 闭包里面的作用域不会被回收销毁。

时间: 2024-08-07 14:00:53

初:函数的相关文章

使用 acl 库的 C 库编写多线程程序

一.概述 在当今强调多核开发的年代,要求程序员能够写出高并发的程序,而利用多个核一般有两种方式:采用多线程方式或多进程方式.每处理一个新任务时如果临时 产生一个线程或进程且处理完任务后线程或进程便立即退出,显示这种方式是非常低效的,于是人们一般采用线程池的模型(这在JAVA 或 .NET 中非常普遍)或多进程进程池模型(这一般在UNIX平台应用较多).此外,对于线程池或进程池模型又分为两种情形:常驻留内存或半驻留内存,常驻内存是指 预先产生一批线程或进程,等待新任务到达,这些线程或进程即使在空闲

Welcome to Swift (苹果官方Swift文档初译与注解三十五)---248~253页(第五章-- 函数 完)

Function Types as Return Types (函数类型作为返回值类型) 一个函数的类型可以作为另一个函数的返回值类型.可以在一个函数的返回值箭头后面写上一个完整的函数类型. 例如: 下面的例子定义了两个简单的函数,分别为stepForward 和 stepBackward.其中stepForward函数返回值比它的输入值多1,stepBackward函数返回值比它输入值少1.这两个函数的 类型都是(Int) -> Int: func stepForward(input: Int

初窥c++11:lambda函数

为什么需要lambda函数 匿名函数是许多编程语言都支持的概念,有函数体,没有函数名.1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值.正因为有这样的需求,c++引入了lambda 函数,你可以在你的源码中内联一个lambda函数,这就使得创建快速的,一次性的函数变得简单了.例如,你可以把lambda函数可在参数中传递给std::sort函数 #include <algorithm> #include <cmath> void abssort(float*

Welcome to Swift (苹果官方Swift文档初译与注解三十三)---235~240页(第五章-- 函数)

Default Parameter Values (参数默认值) 在定义函数的时候,你可以给任何参数定义一个默认的值,如果定义了默认值,在调用这个函数的时候,你可以忽略这个参数. 注意: 设置参数默认值的时候,需要按照函数的参数列表最后的开始,这可以确保在调用函数的时候,即使没默认值的参数也可以按顺序的对应上,也使得函数在调用的时候更加清晰. 下面的代码例子是join函数的新版本,它使用了默认参数: func join(string s1: String, toString s2: String

Welcome to Swift (苹果官方Swift文档初译与注解三十)---225~230页(第五章-- 函数)

Functions (函数) 函数是一个执行特定任务的代码段.通过名称来标识和调用它们. 在Swift中,每个函数都有类型,包括函数的参数类型和返回值类型.这些类型与Swift中的其他类型使用起来一样,这使得函数可以作为参数传递给另一个函数,以及可以从一个函数中返 回函数,一个函数也可以写在另一个函数内部,这样可以更有效的封装和嵌套. Defining and Calling Functions (定义和调用函数) 当你在定义函数的时候,你可以选择性的命名一个或者多个参数类型值,以及函数执行后的

Welcome to Swift (苹果官方Swift文档初译与注解三十四)---241~247页(第五章-- 函数)

In-Out Parameters (全局参数) 像前面描述的参数变量,只能在函数体内进行修改,如果你需要函数修改的它的参数值,并且希望这些改变在函数调用结束后仍然有效,可以定义使用全局参数. 定义全局参数使用关键字inout,全局参数的值在函数调用的时候进行传递,在函数体内进行修改,最后函数回传新值来替换之前的值. 全局参数在函数中,只能使用变量来当作参数,不能使用常量或者文本值作为参数.因为常量或者文本值不可以被修改.为了表明参数变量可以被修改,要在变量名的前面直接添加一个& 符号. 注意

[基础] AHK函数对象初窥 ① _实例2_实际可用版

;# 母文章 https://zhuanlan.zhihu.com/p/48977298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 脚本名称:函数对象初窥①_实例2 [直接可用版本] ; 脚本版本号 v0.2 ; AHK版本: 1.1.30 ; 语言:中文 ; 作者:心如止水<QQ:2531574300> <Autohotkey高手群(34

Python中函数的初览

Python中函数的初览 一.函数 1.什么是函数 为了完成某一功能的代码的集合,叫做函数,函数就是行为,就是动作 2.定义 Python中函数的定义,使用关键字def(define function 定义函数) 3.函数的调用 函数定义后,不会自动执行,需要调用者调用才会执行. 4.函数的分类 1)有无参数 2)有无返回值 例:这是一个有参数且有返回值的函数 原文地址:https://www.cnblogs.com/Mr-Liu---/p/11553210.html

python:关于函数的初认识

一.函数 函数是指逻辑结构化和过程化的一种编程方式,将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 (1)使用函数的好处是:代码的重用性:即通过调用函数,减少重复代码.保持代码的一致性.使代码更具扩展性 (2)主要分为:(面向过程和面向对象的区别是:面向对象是有返回值的,而面向过程是没有返回值的函数) 1.面向过程 def func(): print("in the func") x=fun() print("from fun retu

Python函数之初体验

定义函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们先定义一个求字符串长度的函数(无参数.无return)为例: 1 #函数定义 2 def mylen(): 3 """计算s1的长度""" 4 s1 = "hello world" 5 length = 0 6 for i in s1: 7 length =