JavaScrip:Function函数编程
自定义函数定义
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;};
注意:
- 以上两种方式是等价的
- 尽量避免使用new关键字
调用函数
- 作为一个函数调用:
- 通过函数名称()进行调用,如果有参数传递相应参数即可
- 在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象).所以函数会自动变为window对象的函数。也可以通过window.函数名称()进行调用
- 全局对象
- 当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对。
- 函数作为全局对象调用,会使this的值称为全局对象。使用window对象作为一个变量容易造成程序崩溃
- 函数作为方法调用
- 可以将函数定义为对象的方法进行调用
- 使用构造函数调用函数
- 如果在函数调用前使用了new关键字,则调用了构造函数
- 作为回调函数调用函数
- call()
- apply()
参数
- 函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,某人设置为undefined
- 在调用函数时候如果传递参数超过了定义时参数,js会忽略掉多余参数
- js中不能直接写默认值,可以通过arguments对象来实现默认值效果
- 可以通过arguments对象实现可变参数的函数
- 通过值换地参数在函数体内对变量做修改不会影响变量本身
- 通过对象传递参数在函数体内对变量做更改会影响变量本身
变量的作用域
- 局部变量
- 在函数体内声明的变量,仅在函数体内可以用
- 全局变量
- 函数体外生命的变量,在变量声明开始到脚本结束都可以使用
- 注意
- 尽量控制全局变量的数量,容易引发bug
- 最高使用var语句来声明变量
javascrip全局函数
待续。。
特殊形式的函数
- 函数也是数据
- javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性
- 他们所包含的是代码
- 他们是可执行的
- javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性
JavaScrip:Function函数编程的更多相关文章
- 关于JSP中<body onload="fun()">body标签中onload中函数不执行问题
问题描述: 在一个页面中,我们经常会初始化一下数据,而且会在指定的DOM元素初始化数据,这时候我们就会使用<body onload="fun()">来加载我们的数据.o ...
- JQuery返回Json日期格式的問題
用JQuery Ajax返回一個Entity的Json數據時,如果Entity的屬性中有日期格式,那返回來的是一串字符串,如下圖所示: 在網上找了很久也沒有找到一個好的解決方案,最後自己寫一個java ...
- javascriptDOM编程
DOM - Document Object Model,它是W3C国际组织的一套Web标准,它定义了访问HTML文档对象的一套属性,方法和事件. <html> <head> & ...
- 根据返回数据, 迭代数组, 构造HTML结构
首先需要引入jQuery哈! 1. 要求用下面的格式制作目录, 结构如下: <ul> <li>xxxx</li> <li>xxxx</li> ...
- 通过百度echarts实现数据图表展示功能
现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...
- Java 8函数编程轻松入门(三)默认方法详解(default function)
default出现的原因 Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容. 在Java 8中为Collection接口增加了stream方法,这意味着所有实现 ...
- python函数编程-偏函数partial function
一般的,通过设定函数参数的默认值,可以减低函数调用的难度.比如:int()函数可以把字符串转换成整数: >>> int(') 123 事实上,int()函数还提供额外的base参数, ...
- JavaScript函数编程-Ramdajs
在JavaScript语言世界,函数是第一等公民.JavaScript函数是继承自Function的对象,函数能作另一个函数的参数或者返回值使用,这便形成了我们常说的高阶函数(或称函数对象).这就构成 ...
- 解析JavaScrip之对象属性
对于面向对象编程语言(如java,.net,php,python等)来说,其最大的特点在于“面向对象”,而"面向对象"较为显著的特征便是:封装,继承,多态.借助”面向对象“的这些特 ...
随机推荐
- java中模拟http(https)请求的工具类
在java中,特别是java web中,我们经常需要碰到的一个场景是我们需要从服务端去发送http请求,获取到数据,而不是直接从浏览器输入请求网址获得相应.比如我们想访问微信接口,获取其返回信息. 在 ...
- Natas Wargame Level25 Writeup(头部注入+POST/GET注入)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAArsAAAC8CAYAAAB4+WYTAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF
- 后台程序处理(二) python threading - queue 模块使用
由于协程没办法完成(一)中所说的任务模式 接下来就尝试一下使用线程和队列来实现一下这个功能 在实现之前,我们先明确一个问题--python的线程是伪并发的.同一时间只能有一个线程在运行.具体怎样的运作 ...
- MyBatis学习总结(一)简单入门案例
MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...
- utf8、unicode与gbk
中国人民通过对 ASCII 编码(对于英文字母8位)的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字. 汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK (汉字:两个字 ...
- charles支持https抓包配置
自从公司站点全部启用https后,使用charles就不能像以前那样愉快的抓包啦!不过没关系,这里教你怎么配置charles,使其支持https抓包.之前有一篇介绍charles的使用,参考这篇:ht ...
- MySQL select into
MYSQL不支持: Select * Into new_table_name from old_table_name; Create table new_table_name (Select * fr ...
- Android Studio 提示android.support.v4不存在的解决方法
最近想学习仿QQ列表的侧滑删除功能,看完资料之后,发现有一堆错误,看了一下,说是不存在android.support.v4包不存在,浪费了一个多小时,终于是找到了解决方法,便是记录下来 打开file- ...
- (五):C++分布式实时应用框架——支撑复杂的业务通讯关系
C++分布式实时应用框架--支撑复杂的业务通讯关系 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法 ...
- arcgis api for js热力图优化篇-不依赖地图服务
前面我写过一篇文章,介绍如何实现arcgis api的热力图效果,但是依赖arcgis server发布的地图服务来获取热力图的数据源.实际应用中,很多业务数据来源数据库,并不一定是从地图服务来获取的 ...