javaScript入门(函数)
JavaScript函数
函数是什么
函数是一种工具,他是用来将一些重复的功能封装到一起,之后去调用即可
第一种:
function 函数名() {
}
函数名();
第二种:
var a = function(){
}
a();
第三种:
var a = new Function();
tip:因为创建方式不够直观并且使用不便,所以基本不使用。
函数返回值
return : 将函数内部的值返回到函数的外部。从而实现在函数外部使用值的作用
tip : 如果一个函数没有返回值,结果为Undefined。
return特点:
return语句后面的代码将不能执行
在一个函数中同时生效的return语句只能有一个。
return只能返回一个结果而不能返回一段代码。
递归函数
递归函数是在一个函数通过名字调用自身的情况下构成的
function factorial(num){
if(num <= 1){
return 1;
}else{
return num * factorial(num-1);
}
}
匿名函数(anoymous)
创建一个函数并将它赋给变量,这种情况下创建的函数叫做匿名函数,因为function后面没有标识符,匿名函数的name属性时空字符串。(匿名函数有时也叫拉姆达函数)。
Tip : 在使用函数表达式的时候,最好不要写函数名字。即使写了,这个函数名字在函数外部也使用不了,只能在内部使用。
//匿名函数
var anoymous = function(args){
// 函数体
}
自执行函数(通过匿名函数实现)
(function(){
// 函数体
})();
第一个括号的作用让函数变成表达式。
第二个括号作用是执行函数。
回调函数
把一个函数当作一个参数传递给另一个函数,并且在另一个函数中去调用这个函数,即为回调函数。
var fn1 = function(function(){ <!--函数体-->}){
// 函数体
}
闭包函数
函数对象可以通过作用域相互关联起来,函数体内部的变量都可以保存在函数作用域内,这种特性在计算机科学文献中称为闭包
function createFunctions(){
return function(){
return 'hello world';
}
}
Tip: 闭包的缺点
程序常驻内存,不会被销毁.若是造成循环利用就会导致内存泄漏
构造函数
除了null和undefined,所有的数据类型都可以通过构造函数的形式创造出来,并且都是对象类型。
Tip:在js中,除了null和undefined,一切皆对象
var str = new String("hello world");//构造函数实例化
构造函数两大类
系统内置构造函数
自定义构造函数(创建出一个对象)
注意事项
使用函数名需要采用大驼峰
变量接受不在是返回值,而不是构造函数创建出来的一个对象
构造函数一般不设置return
函数属性
arguments
arguments是一个类数组对象,传给函数的实参都会储存在arguments里。通过arguments加方括号使用
this
this对象是在基于函数的执行环境绑定的。
1.当函数被当作方法调用时。this等于那个对象
2.在事件处理函数中,this等于事件源
3.在普通函数中this等于windows
内存划分
栈(stack)
自动分配内存大小,由系统自动释放
Tip:存在栈中的数据不可改变
堆(heap)
动态分配内存空间,大小也不一定释放
作用
1.基础数据类型储存在栈中,数据大小确定,内存空间大小可以分配,直接安值存放,也
按值读取。
2.引用数据类型存在堆中,在栈中仅存储一个地址
javaScript入门(函数)的更多相关文章
- JavaScript入门-函数function(二)
JavaScript入门-函数function(二) 递归函数 什么是递归函数? 递归简单理解就是,在函数体里,调用自己. //我们在求一个10的阶乘的时候,可能会这么做 //写一个循环 var to ...
- 05.Javascript——入门函数
//定义函数的方法1 function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述abs()函数的定义如下: func ...
- 开心菜鸟系列----函数作用域(javascript入门篇)
1 <!DOCTYPE html> 2 <html> 3 <script src="./jquery-1.7.2.js"></ ...
- 07.Javascript——入门高阶函数
高阶函数英文叫Higher-order function..JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...
- JavaScript入门篇 编程练习
编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...
- (转)Javascript匿名函数的写法、传参、递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...
- (转)javascript匿名函数的写法、传参和递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- JavaScript入门介绍(二)
JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...
随机推荐
- Python 使用OS模块调用 cmd
在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的 ...
- servlet中使用request.getHeader("referer")获取页面从哪跳转过来的
问题 servlet中使用request.getHeader("referer")获取页面从哪跳转过来的,利用这个方法可以判断网页是否正常登录.我做了一个javaweb小项目,其中 ...
- vue-cli中配置vuex流程和注意事项
本文目录 vue-cli下新建站 配置路由更改HelloWorld.vue组件到新建Home.vue组件 安装vuex 测试是否安装成功vuex一:vue-cli下新建站 a)新建文件夹vuexStu ...
- 为spring cloud config实现刷新动态掉的坑
正常搭建配置中心,网上教程多,这里不讨论,只记坑也是为了后来者少花时间在这里,由于是当时研究了好久才写的文章,所以只能提供问题的原因,当然会给出印证的思路,闲话不多说进入正题! 版本spring bo ...
- MySQL基础入门使用和命令的使用
数据库了解 概念 数据库就是一种特殊的文件,其中存储着需要的数据 一个数据库可以有多张表 MySQL是一种关系型数据库 具有关联性数据的就是关系型数据库 MySQL是一种软件可以用来创建mysql数据 ...
- P2919 [USACO08NOV]守护农场Guarding the Farm
链接:P2919 ----------------------------------- 一道非常暴力的搜索题 ----------------------------------- 注意的是,我们要 ...
- 浅谈python的第三方库——numpy(三)
numpy库中矩阵的常用方法 1 矩阵转置 从上图可以看出:使用方法a.T可以将矩阵a转置. 2 均值与方差 注意:方法a.mean()会对矩阵a的所有元素求均值,a.var()也是考虑矩阵a的所有元 ...
- SPFA的优化一览
目录 序 内容 嵬 序 spfa,是一个早已没人用的算法,就像那些麻木的人, 可谁有知道,他何时槃涅 一个已死的算法 ,重生 内容 关于\(NOI2018D1T1\)的惨案,为了以防spfa被卡. 关 ...
- 一种使用SOC精确控制脉冲的方法
在emfi测试中需要精确的控制脉冲时间.控制器产生的脉冲信号会经过控压的MOS管,这些组件会造成很严重的延时,但是尽管如此,控制系统的高精度也是必须的,因为控制系统的误差会逐级下延,引起更大的误差. ...
- JS中BOM操作知识点
JS BOM window对象 全局变量和全局方法都归在window上 alert-comfirm-prompt 让alert .confirm等弹出框上的提示文字实现换行:\n // confirm ...