JavaScript函数

函数是什么

函数是一种工具,他是用来将一些重复的功能封装到一起,之后去调用即可

第一种:
function 函数名() { }
函数名();
第二种:
var a = function(){ }
a();
第三种:
var a = new Function();
tip:因为创建方式不够直观并且使用不便,所以基本不使用。

函数返回值

return : 将函数内部的值返回到函数的外部。从而实现在函数外部使用值的作用

tip : 如果一个函数没有返回值,结果为Undefined。

return特点:

  1. return语句后面的代码将不能执行

  2. 在一个函数中同时生效的return语句只能有一个。

  3. 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");//构造函数实例化

构造函数两大类

  1. 系统内置构造函数

  2. 自定义构造函数(创建出一个对象)

注意事项

  1. 使用函数名需要采用大驼峰

  2. 变量接受不在是返回值,而不是构造函数创建出来的一个对象

  3. 构造函数一般不设置return

函数属性

arguments

arguments是一个类数组对象,传给函数的实参都会储存在arguments里。通过arguments加方括号使用

this

this对象是在基于函数的执行环境绑定的。

1.当函数被当作方法调用时。this等于那个对象
2.在事件处理函数中,this等于事件源
3.在普通函数中this等于windows

内存划分

栈(stack)

自动分配内存大小,由系统自动释放

Tip:存在栈中的数据不可改变

堆(heap)

动态分配内存空间,大小也不一定释放

作用

1.基础数据类型储存在栈中,数据大小确定,内存空间大小可以分配,直接安值存放,也
按值读取。 2.引用数据类型存在堆中,在栈中仅存储一个地址

javaScript入门(函数)的更多相关文章

  1. JavaScript入门-函数function(二)

    JavaScript入门-函数function(二) 递归函数 什么是递归函数? 递归简单理解就是,在函数体里,调用自己. //我们在求一个10的阶乘的时候,可能会这么做 //写一个循环 var to ...

  2. 05.Javascript——入门函数

    //定义函数的方法1 function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述abs()函数的定义如下: func ...

  3. 开心菜鸟系列----函数作用域(javascript入门篇)

      1 <!DOCTYPE html>   2 <html>   3 <script src="./jquery-1.7.2.js"></ ...

  4. 07.Javascript——入门高阶函数

    高阶函数英文叫Higher-order function..JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...

  5. JavaScript入门篇 编程练习

    编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...

  6. (转)Javascript匿名函数的写法、传参、递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...

  7. (转)javascript匿名函数的写法、传参和递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...

  8. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  9. JavaScript入门基础

    JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...

  10. JavaScript入门介绍(二)

    JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...

随机推荐

  1. phpcms v9编辑器上传图片是否添加水印

    第一步:给图片上传对话框里面添加是否添加水印的多选框,找到: satics/js/ckeditor/ckeditor.js 第17554行 (需要格式化,我用的NetBeans)修改为 functio ...

  2. 【转载】sql-builder介绍

    原文链接:sql-builder介绍 关于sql-builder sql-builder尝试使用java对象,通过类SQL的拼接方式,动态快速的生成SQL.它可作为稍后的开源项目ibit-mybati ...

  3. 二、Nginx配置实例

    Nginx配置实例 一.反向代理 实例一 1.实现效果 打开浏览器,在浏览器地址栏输入地址 www.123.com ,跳转到linux系统tomcat主页面中. 2.准备工作 在linux系统中安装t ...

  4. 拍摄UFP 单一职责原则

    3.1 新手机 3.2 拍摄 3.3 没用的东西 3.4 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因, 3.5 方块游戏的设计 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个 ...

  5. 解决 Windows 编译 Fast R-CNN 的 bbox 和 nms 出现的错误 error: Unable to find vcvarsall.bat

    在 Windows 下安装一个底层的 Python 包时(Fast R-CNN 的 bbox 和 nms),遇到 error: Unable to find vcvarsall.bat 错误,看到这个 ...

  6. char、vchar、nvarchar 的区别

    Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示 如果还为了这个纠结,就直接看看后面的解说,做决定吧. 一般如果用到中文或者其 ...

  7. cf1214E

    题意简述:构造一棵包含2*n个节点的树,要求2*i 和 2*i-1之间的距离等于d[i]<=n 1<=i<=n 给出N和d数组,输入对应的边 题解:对d数组按照从大到小排序,然后首先 ...

  8. python 访问sql server数据库

    访问数据库 cnxn = pyodbc.connect("Driver={SQL Server};Server=localhost;Database=用户名;uid=sa;pwd=密码&qu ...

  9. JAVA->查询并显示输入根目录下全部的文件所在目录路径

    public static boolean qf(File f,boolean a){      boolean b=false;   if(a==true){      File[] fl=f.li ...

  10. Redis缓存数据库(一)

    先导知识:Memcache Memcache是一个高性能的分布式内存对象缓存系统,代码类似于Hash. 已经有了Memcache,为什么还要用Redis呢? 下面Memcache的缺点: 不支持数据持 ...