精华内容
下载资源
问答
  • 作用:造出一个函数作用域,防止污染全局变量,它既不会提升,也不会污染全局对象,尽量把功能封装在函数中 首先得知道, 只有表达式才能被执行符号执行 被执行符号执行表达式他名字会被自动忽略 当函数成为一...

    立即执行函数

    定义:此类函数没有声明,在一次执行过后即释放。适合做初始化工作。
    作用:造出一个函数作用域,防止污染全局变量,它既不会提升,也不会污染全局对象,尽量的把功能封装在函数中
    首先得知道,

    • 只有表达式才能被执行符号执行
    • 被执行符号执行的表达式他的名字会被自动忽略

    当函数成为一个表达式时,它既不会提升,也不会污染全局对象。将函数变为一个函数表达式的方式之一,将函数用小括号括起来。
    然而,这样一来,函数无法通过名称调用。如果书写一个函数表达式,然后将立即调用,该函数称之为立即执行函数 IIFE(Imdiately Invoked Function Expression)。
    由于大部分情况下,函数表达式的函数名没有实际意义,因此,可以省略函数名。没有名字的函数,称之为匿名函数

    //w3c建议写法:
        (function () {
                var a = 1,
                    b = 2,
                    c = 3;
                console.log(a, b, c);
            }());
    //2.
     (function (){
                var a = 1,
                    b = 2,
                    c = 3;
                console.log(a, b, c);
            })(); 
    

    上面说到了只有表达式才能被执行符号执行负责就会报错,但是有这个特殊情况

     function test(a, b, c,d) {
                console.log(a + b + C + d) ;
                }(1,2,3,4);
    

    这里他不会报错,但也不会执行…他会分开执行

    function test(a, b, c,d) {
                console.log(a + b + C + d) ;
                }
    
    
    
    
    (1,2,3,4);
    

    tip:>(免费获取最新完整前端课程关注vx公众号:前端拓路者coder,回复:资料
    如果这个文章对你有用的话,欢迎点赞转发关注,让更多的小伙伴看到呀,毕竟分享是一个程序员最基本的美德!!!
    如果有不对的请大佬指教)

    展开全文
  • 函数的作用如下面有一个问题,计算三个三角形的面积。如果只运用之前所学的知识,我们需要复制粘贴三遍之前我们写的海伦公式代码:而函数的出现可以使我们将这类功能封进函数里,每当我们想要调用此功能时,我们只...

    本文以GitHub上为素材,规划为约100天的练习,每次的学习和总结均发在这里。有错误的地方还请朋友们指正。

    函数的作用

    如下面有一个问题,计算三个三角形的面积。如果只运用之前所学的知识,我们需要复制粘贴三遍之前我们写的海伦公式代码:

    42bca7c56796d9821f2a88b8db9b3b9f.png

    而函数的出现可以使我们将这类功能封进函数里,每当我们想要调用此功能时,我们只需要调用该函数即可。例如:

    c244fae94e1364fd5dd571d0523714c4.png

    定义函数

    参照上面的例子,我们使用关键词def来构建函数,后面的括号内可以放入传进函数内的参数,python的函数定义和数学中的函数定义类似,传入函数的参数可以理解为自变量,经过函数变换后我们可以使用return返回需要的结果,可以理解为函数中的因变量。

    函数的参数

    函数的参数有多种写法,除将变量名写进括号内外,我们也可以采用默认值,即预先规定好参数的值,例如我们写一个扔骰子并求和的函数,默认函数内有两个筛子:

    ab5d7ee26a98e669d68fbfae5e86de01.png

    这样子是默认两个骰子扔出并求和,如果想要3个筛子求和,就直接输入Throw_the_dice(3)即可。

    但在我们利用函数解决问题的过程中,可能我们并不知道函数具体要传入几个参数(例如求和问题中我们可能事先不知道是几个数求和)。我们可以使用可变参数。

    下面利用求和函数来演示

    556ffa17a5d64be313e2056a249049ec.png

    *args 可以承载多个数据传入函数中,例如:

    1550317ef2da371d6cae5b706225c7aa.png

    用模块管理函数

    有时候我们在和别人共同开发时,会遇到函数名冲突的情况,例如:

    d7c5475e26aa170ecf58a7019dcbb0df.png

    那么最后结果只会打印第二个函数的结果,因为第一个函数已经被覆盖住。如果想两个函数都被打印出来,我们可以采用模块管理函数。

    还是用两个foo函数举例。

    新建一个python文件命名为module2.py

    f6265e596c109caca8305e97ffa5c916.png

    再新建一个python文件名为module3.py

    580d45a56fb78087031ece5620802181.png

    如果我们想分别使用这两个函数,可以引用模块:

    242bcd8a27ddf23dff3bbd3b9d2c14b7.png

    这样子两个函数都可以打印但当这样子引用的时候:

    9d1f7b45cec722da5aabea38cdd31e98.png

    则打印结果出来的都是第二个函数的结果,因为第一个函数也被覆盖了。

    在模块中我们还会遇到别的代码,例如:

    29a2f83c684443a5f5d5881e48e9a65c.png

    如果引用这个模块使用foo函数,那么module3内的其余执行代码也会一并执行,输出两行文字。

    为了避免这种情况,我们可以这样写

    7e0ca9b3a6e22dace1e58ff9cd0f5f51.png

    这样子只有在直接执行文件时才可以运行全部代码,而导入模块时他的名字时module3而不是main

    练习部分

    实现计算最大公约数和最小公倍数

    代码如下:

    92785cc1b493a47b0c0585a04d4f15ae.png

    官方代码如下:

    0fb925f47a10708e2a0846bea64d3322.png

    判断一个数是不是回文数

    Tips:回文数即从前往后和往后往前看时一样的

    d121395186c4d613ed2b52ae510d8bb8.png

    官方代码如下:

    a5d296b3040288120f751ab810a963d0.png

    判断一个数是不是素数

    4dcafb2ab267940cd012d3a1629f56d9.png

    官方代码如下:

    cde22506e0b811d39d0b29431c65ce21.png

    判断输入的正整数是不是回文素数

    30a9ef04298c7ce6b9cad6dc739b324d.png

    官方如下:

    10343e021627c44624662b0580f99da8.png

    在这里我们看到,如果我们将两个函数组合起来可以解决更复杂的问题,这就是我们构建函数的意义。

    变量作用域

    最后我们讨论变量作用域的问题。参考一下代码:

    2cf766407c4e344d2625b1e82a2f716f.png

    最终打印输出的a的值是多少呢?是100。因为在函数内a就寻找到100的取值,就不需要再去全局寻找变量值了。

    变量作用域分为4种,分别为全局变量、嵌套变量、局部变量和内置变量。全局变量意思为跳脱函数外对于全局都有影响的变量,由于函数内部也可以嵌套函数,则第一层函数内、第二层函数外的变量即为嵌套变量,函数内的是局部变量,因为该变量只影响局部。内置变量即def、if、else等这些关键词。

    下面用一段代码统一演示:

    bbb6a8b05ca0e6b1bb57c18688689ec1.png

    再回到最开始的例子,那么如何改变a的值,使得打印的a也为200呢?我们可以使用下面的方法:

    1c03455040aba256708af0935d55ebe5.png

    通过global a来指示函数内a的值置于全局,即使全局没有该变量,在后面仍可以使用这个变量。

    在我们正常编程当中,应当避免使用过多的全局变量,因为全局变量的生命周期长、影响过于广泛。

    展开全文
  • SQL语句灵活运用

    2019-06-25 09:39:36
    一、运用SQL语句查询一段时期内的数据  方法1:  DATEDIFF函数  语法: ...department:一个参数,SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写 //查...

    一、运用SQL语句查询一段时期内的数据
     方法1:
     DATEDIFF函数
     语法:

    DATEDIFF(department, startdate, enddate)
    1
    DATEDIFF函数,主要作用于返回两个日期差的一个函数
    department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写

            //查询当天的数据
            select sum(balance) from student_Info where DATEDIFF(dd, date, date)=0

            //查询近7天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)<=7

            //查询近30天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(dd, date, date)<=30

            //查询昨天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)=1

            //查询季度数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(qq, date, date)=0

            //查询一年的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(yy, date, date)=0
     方法2:
     使用between
     between表示两者之间,查询结果更灵活,范围更广泛
     语法:

    字段名 between startdate and enddate

     代码展示

    //查询student_info表中balance列在一段时间范围内的总和
    select sum(balance) from student_info where status=1 and ispay='未结账' and date between @date1 and @date2 
    //sum:sql语句中求和函数,括号内为要求和的列。date为表中的日期列,@date1,@date2为U层给的具体日期,也可称为实参

    二、运用SQL语句查询最新数据
    方法1
    查询最新日期,可查出最新最近生成的数据

    select * from orderlist_info where cardid=@cardid and ispay='未付款' and date=(select max(date)from orderlist_info

    方法二
    查询最新时间的数据,用于数据生成日期相同,时间不同的情况

    select * from orderlist_info where cardid=@cardid and ispay='未付款' and time=(select max(time)from orderlist_info

    方法三
    运用order by 排序,倒序查询,查询结果是最新最近的数据

    select top 1 * from OrderList_info where cardid=123 and ispay='未付款'  order by id desc

    三、SQL语句的计算类查询

    总数:select count  from 表名
    求和:select sum(列名) from 表名
    平均:select avg(列名) from 表名
    最大:select max(列名) from 表名
    最小:select min(列名) from 表名

    四、随机查询数据库中数据,随机生成随机数
     应用背景:查看客户的反馈意见与留言。

    select top 1 * ,NEWID() as random from Ideas_Info where status='未处理' order by random 
     

    展开全文
  • 享有“电子表格先生”美誉国际知名作者John Walkenbach这种常用公式和函数,并给出大量实例帮读者理解这些公式和函数的运用及技巧。能过学习本书,读者可以掌握Excel精华,制作出精美实用电子表格,成为...
  • 享有“电子表格先生”美誉国际知名作者John Walkenbach这种常用公式和函数,并给出大量实例帮读者理解这些公式和函数的运用及技巧。能过学习本书,读者可以掌握Excel精华,制作出精美实用电子表格,成为...
  • C#机房重构随笔记之SQL语句灵活运用

    热门讨论 2019-06-06 18:00:18
    一、运用SQL语句查询一段时期内的数据  方法1:  DATEDIFF函数 ...department:一个参数,SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写 //查询当天的数据 ...

    一、运用SQL语句查询一段时期内的数据
     方法1:
     DATEDIFF函数
     语法:

    DATEDIFF(department, startdate, enddate)
    

    DATEDIFF函数,主要作用于返回两个日期差的一个函数
    department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写

    		//查询当天的数据
            select sum(balance) from student_Info where DATEDIFF(dd, date, date)=0
    		//查询24小时内的数据
    		select * from T_ChargeInfo where ischeck='未结账' and DateDiff(hh, time, getDate()) <= 24
            //查询近7天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)<=7
    
            //查询近30天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(dd, date, date)<=30
    
            //查询昨天的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)=1
    
            //查询季度数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(qq, date, date)=0
    
            //查询一年的数据
            select sum(addmoney) from ReCharge_Info where DATEDIFF(yy, date, date)=0
    

     方法2:
     使用between
     between表示两者之间,查询结果更灵活,范围更广泛
     语法:

    字段名 between startdate and enddate
    

     代码展示

    //查询student_info表中balance列在一段时间范围内的总和
    select sum(balance) from student_info where status=1 and ispay='未结账' and date between @date1 and @date2 
    //sum:sql语句中求和函数,括号内为要求和的列。date为表中的日期列,@date1,@date2为U层给的具体日期,也可称为实参
    

    二、运用SQL语句查询最新数据
    方法1
    查询最新日期,可查出最新最近生成的数据

    select * from orderlist_info where cardid=@cardid and ispay='未付款' and date=(select max(date)from orderlist_info
    

    方法二
    查询最新时间的数据,用于数据生成日期相同,时间不同的情况

    select * from orderlist_info where cardid=@cardid and ispay='未付款' and time=(select max(time)from orderlist_info
    

    方法三
    运用order by 排序,倒序查询,查询结果是最新最近的数据

    select top 1 * from OrderList_info where cardid=123 and ispay='未付款'  order by id desc
    

    三、SQL语句的计算类查询

    总数:select count  from 表名
    求和:select sum(列名) from 表名
    平均:select avg(列名) from 表名
    最大:select max(列名) from 表名
    最小:select min(列名) from 表名
    

    四、随机查询数据库中数据,随机生成随机数
     应用背景:查看客户的反馈意见与留言。

    select top 1 * ,NEWID() as random from Ideas_Info where status='未处理' order by random 
    

     当点击下一条的时候,随机生成未处理的用户投诉反馈,效果图
    在这里插入图片描述

     随笔记!希望对您能有所帮助,欢迎评论区留言!

    展开全文
  • IDL帮助(中文).doc

    热门讨论 2011-03-14 00:21:36
    过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号函数的调用 190 使用程序控制语句 191 IDL表达式的真和假 191 ...
  • 作用效果有点像C语言中的printf()函数。 常用转换符: ①通用浮点数: 比%f,%a长度更短的一种格式输出,显示6位有效数字,而且会进行四舍五入。 ②散列码: 不必用冗长的线性搜索技术来查找一个键,而是用一个
  • excel使用

    2012-11-25 17:06:01
    首先打开“工具”菜单,单击“宏”命令中的“Visual Basic编辑器”,进入Visual Basic编辑环境,“工程-VBAobject”栏中的当前表上单击鼠标右键,选择“插入”-“模块”,右边栏创建下面的函数rrr,代码如下: ...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.11 extern在函数声明是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,typedef 和#define有什么区别? 7 1.14 我似乎不能成功定义一个链表。我试过...
  • 1.11 extern在函数声明是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *...
  • 1.11 extern在函数声明是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *...
  • 9.2.2 在函数之间共享变量 336 9.3 调用自己函数:递归 338 9.4 变元个数可变函数 341 9.4.1 复制va_list 344 9.4.2 长度可变变元列表基本规则 344 9.5 main()函数 345 9.6 结束程序 346 9.7 函数库...
  • 9.2.2 在函数之间共享变量 336 9.3 调用自己函数:递归 338 9.4 变元个数可变函数 341 9.4.1 复制va_list 344 9.4.2 长度可变变元列表基本规则 344 9.5 main()函数 345 9.6 结束程序 346 9.7 函数库...
  • php高级开发教程说明

    2008-11-27 11:39:22
    的底部是诸如一行中的词序或是一个词中的字母顺序的一些东西。 逻辑分析过程将提取这些形式信息,然后按顺序遍历此树,并设法将信息译成有意义的结 果,这是一种语法上的翻译(这个句子有什么样的结构?),还是一种...
  • IDL入门教程.doc

    2011-09-21 18:29:16
    过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号函数的调用 190 使用程序控制语句 191 IDL表达式的真和假 191 ...
  • IDL编程语言入门教程

    2009-04-14 22:11:35
    过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号函数的调用 190 使用程序控制语句 191 IDL表达式的真和假 191 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕... C#语言.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 ...
  • C#微软培训资料

    2014-01-22 14:10:17
    C#语言.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出...
  • VB.Net常用语法

    2009-03-15 23:47:02
    您可以在函数中调用,包括在API(当然VB.Net不再使用winAPI). 甚至一些至关紧要过程也不例外:如new过程(此方法王国荣文章 有介绍) 如: class class1 Overloads Public Sub New() 。。。。。。 ...
  • C# Primer Plus中文版

    热门讨论 2009-05-24 00:25:01
    8.7 变量的作用域 205 8.8 goto语句 208 8.9 switch语句 210 8.9.1 switch语句规则1 213 8.9.2 switch语句规则2 214 8.9.3 switch语句规则3 216 8.9.4 switch语句规则4 218 8.9.5 使用switch语句 218 8.10 条件操作...
  • 2009达内SQL学习笔记

    2010-02-10 19:46:58
    保存oracle数据库中的所有操作细节: spool oracleday01.txt :开始记录 spool off :开始保存细节 四、SELECT语句:选择操作、投影操作。 select:从一个或多个表中检索一个或多个数据列。包含信息:想选择...
  • 当设定为[Enabled](启动)时,如果你系统所安装硬盘有更动,POST开机过程,屏幕会出现一道提示讯息。 First Boot Device / Second Boot Device / Third Boot Device / Boot Other Device: [First ...
  • JAVA 正则表达式

    热门讨论 2010-01-15 11:16:37
    使用 Pattern.compile 函数时,可以加入控制正则表达式匹配行为参数: Pattern Pattern.compile(String regex, int flag) flag 取值范围如下: Pattern.CANON_EQ 当且仅当两个字符"正规分解(canonical ...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

中括号在函数运用中的作用