自定义函数定义

1.函数通过function关键字创建,函数创建格式:

function 函数名称([参数,...]){
代码段;
return 返回值;
}

注意事项:

  • 函数名称不要包含特殊字符
  • 函数名称最好含义明确
  • 函数名称最好遵循驼峰标记法或者下划线法
  • 函数名称严格区分大小写
  • 函数名称如果重复会产生覆盖
  • 函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数
  • 函数通过return加返回值,如果没有return 默认返回undefined
  • 函数不调用不执行

匿名函数

  • 函数表达式可以存储在变量中,变量也可以作为一个函数使用
  • 可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能
  • 可以通过匿名函数来执行某些一次性的任务

通过Function()构造函数

通过内置JavaScrip函数构造器(Function)定义:

  • var myFunction=new Function('a','b','return a+b');
  • var myFunction=function(a,b){return a+b;};

注意:

  1. 以上两种方式是等价的
  2. 尽量避免使用new关键字

调用函数

  1. 作为一个函数调用:
    1. 通过函数名称()进行调用,如果有参数传递相应参数即可
    2. 在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象).所以函数会自动变为window对象的函数。也可以通过window.函数名称()进行调用
  2. 全局对象
    1. 当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对。
    2. 函数作为全局对象调用,会使this的值称为全局对象。使用window对象作为一个变量容易造成程序崩溃
  3. 函数作为方法调用
    1. 可以将函数定义为对象的方法进行调用
  4. 使用构造函数调用函数
    1. 如果在函数调用前使用了new关键字,则调用了构造函数
  5. 作为回调函数调用函数
    1. call()
    2. apply()

参数

  • 函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,某人设置为undefined
  • 在调用函数时候如果传递参数超过了定义时参数,js会忽略掉多余参数
  • js中不能直接写默认值,可以通过arguments对象来实现默认值效果
  • 可以通过arguments对象实现可变参数的函数
  • 通过值换地参数在函数体内对变量做修改不会影响变量本身
  • 通过对象传递参数在函数体内对变量做更改会影响变量本身

变量的作用域

  • 局部变量  

    • 在函数体内声明的变量,仅在函数体内可以用  
  • 全局变量
    • 函数体外生命的变量,在变量声明开始到脚本结束都可以使用  
  • 注意
    • 尽量控制全局变量的数量,容易引发bug
    • 最高使用var语句来声明变量  

javascrip全局函数

待续。。

特殊形式的函数

  • 函数也是数据

    • javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性  

      • 他们所包含的是代码
      • 他们是可执行的

JavaScrip:Function函数编程的更多相关文章

  1. 关于JSP中<body onload="fun()">body标签中onload中函数不执行问题

    问题描述: 在一个页面中,我们经常会初始化一下数据,而且会在指定的DOM元素初始化数据,这时候我们就会使用<body onload="fun()">来加载我们的数据.o ...

  2. JQuery返回Json日期格式的問題

    用JQuery Ajax返回一個Entity的Json數據時,如果Entity的屬性中有日期格式,那返回來的是一串字符串,如下圖所示: 在網上找了很久也沒有找到一個好的解決方案,最後自己寫一個java ...

  3. javascriptDOM编程

    DOM - Document Object Model,它是W3C国际组织的一套Web标准,它定义了访问HTML文档对象的一套属性,方法和事件. <html> <head> & ...

  4. 根据返回数据, 迭代数组, 构造HTML结构

    首先需要引入jQuery哈! 1. 要求用下面的格式制作目录, 结构如下: <ul> <li>xxxx</li> <li>xxxx</li> ...

  5. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  6. Java 8函数编程轻松入门(三)默认方法详解(default function)

    default出现的原因 Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容. 在Java 8中为Collection接口增加了stream方法,这意味着所有实现 ...

  7. python函数编程-偏函数partial function

    一般的,通过设定函数参数的默认值,可以减低函数调用的难度.比如:int()函数可以把字符串转换成整数: >>> int(') 123 事实上,int()函数还提供额外的base参数, ...

  8. JavaScript函数编程-Ramdajs

    在JavaScript语言世界,函数是第一等公民.JavaScript函数是继承自Function的对象,函数能作另一个函数的参数或者返回值使用,这便形成了我们常说的高阶函数(或称函数对象).这就构成 ...

  9. 解析JavaScrip之对象属性

    对于面向对象编程语言(如java,.net,php,python等)来说,其最大的特点在于“面向对象”,而"面向对象"较为显著的特征便是:封装,继承,多态.借助”面向对象“的这些特 ...

随机推荐

  1. Python绘制3d螺旋曲线图实例代码

    Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdir 绘制2D集合时使用 ...

  2. 观未见,行不止 —— Power BI 两周年技术和方案交流圆桌会议纪实

    作者:陈希章 发表于 2017年8月13日 2017年8月11日下午两点,Power BI 两周年技术和方案交流圆桌会议如期举行.线上和线下约有100位朋友参加了由我组织和主持的本次活动,在两个小时的 ...

  3. bzoj 4012: [HNOI2015]开店

    Description 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到 人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的 想法当然非常好啦,但是她们也发现 ...

  4. Python函数篇(6)-常用模块及简单的案列

    1.模块   函数的优点之一,就是可以使用函数将代码块与主程序分离,通过给函数指定一个描述性的名称,并将函数存储在被称为模块的独立文件中,再将模块导入主程序中,通过import语句允许在当前运行的程序 ...

  5. asp.net core 2.0+sqlsugar搭建个人网站系列(0)

    一些废话 马上就要过年了,回顾这一年最大的收获就是技术有了很大的提升,其他的方面没有什么改变,现在还是单身小屌丝一枚. 这一年来学习的主要重点就是asp.net core,中间也使用 core+EF做 ...

  6. git 的回退

    今天下午写了一下午的代码给合并没了 然后晚上觉得还是要好好学习一下git的使用 推荐几个git的教程 https://www.liaoxuefeng.com/wiki/0013739516305929 ...

  7. Spring之设置Bean值

    Java实例的属性值可以有很多种数据类型.基本类型值.字符串类型.java实例甚至其他的Bean实例.java集合.数组等.所以Spring允许通过如下几个元素为Bean实例的属性指定值: value ...

  8. golang 队列

    You have to perform NN operations on the queue. The operations are of following type: E xE x : Enque ...

  9. [js高手之路] html5 canvas教程 - 制作一个数码倒计时效果

    效果图: 这个实例主要注意: 1,剩余时间的计算 2,每个时间数字的绘制 时间主要有0-9和一个冒号组成,用数组来表示( 0: 就是不画圆,1:就是画一个蓝色的圆 ) num.js文件: var di ...

  10. [js高手之路]寄生组合式继承的优势

    在之前javascript面向对象系列的文章里面,我们已经探讨了组合继承和寄生继承,回顾下组合继承: function Person( uName ){ this.skills = [ 'php', ...