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. Webdriver启动Firefox浏览器后,页面显示空白

    在使用pycharm码代码时编译总是出错,后来验证发现浏览器启动后出现问题.白白耗了我2个小时.我把我的解决方案写出来,希望对大家有帮助. 1.现象:起初安装的时候总是能正常运行,有一天突然发现Web ...

  2. 从零开始一个个人博客 by asp.net core and angular(三)

    这是第三篇了,第一篇只是介绍,第二篇介绍了api项目的运行和启动,如果api项目没什么问题了,调试都正常了,那基本上就没什么事了,由于这一篇是讲前端项目的,所以需要运行angular项目了,由于前端项 ...

  3. console 打印消息时,可以使用 %c 指定随后的文本样式; %s 可引用参数变量。

    1.console.log 使用 加%c console.log('%c Merry Christmas!!', 'color:green;background:yellow;text-shadow: ...

  4. Linux学习Day1:开班第一天

    其实这篇博客应该昨天就要写完的,算是补作业吧. 昨天(2020年2月14日)是参加Linux线上培训的第一天,当天培训结束后,老师要求学员每天写一篇博客来记录自己学到的知识,于是就有了这篇博客的诞生. ...

  5. 剑指offer-面试题58_2-左旋转字符串-字符串

    /* 题目: 将字符串的前sep个字符转移到字符串尾部. */ /* 思路: 更好的方法: 先翻转前sep个字符,再翻转后面的字符,最后全体翻转. */ #include<iostream> ...

  6. xshell/secureCRT连接Linux及其常用命令

    一.xshell:在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的 下载安装后连接步骤: 二.secureCRT:在Windows下登录UNIX或Linux服务 ...

  7. MVC5+EF6入门完整教程7:排序过滤分页

    https://www.cnblogs.com/miro/p/4134241.html 前置准备 – 应用之前样式,增加测试数据 界面样式修改前: 下面对Views --> Account -- ...

  8. Selenium-浏览器兼容性测试自动化

    Selenium 使浏览器兼容性测试自动化成为可能,但是在不同的浏览器上依然有细微的差别 测试浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上. 测试系统功能--创建回 ...

  9. java学习心得2

    首先是一个生成随机数的算法 这里就需要设置种子x0,种子设置好之后就设置a,c,m,这里mod用于取余,我自己写的是这样的 这个程序可生成1000个随机数,这种随机数的生成是有上限的,可以保证在一定数 ...

  10. gulp常用插件之gulp-rev-rewrite使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-rewrite这是一款重写对由gulp-rev修订的资产的引用. 更多使用文档请点击访问gulp-rev-rewrite工具官网 ...