zoukankan      html  css  js  c++  java
  • javaScript入门(函数)

    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.引用数据类型存在堆中,在栈中仅存储一个地址
  • 相关阅读:
    struts2标签解释
    通过注册表修改XP默认登陆用户
    6类常见开机故障
    摩尔定律
    小红伞扫描病毒类型
    newInstance()方法和new关键字
    常见恶意软件种类及说明
    jquery1.9 中这些方法已经被删除(live、die、sub........)
    (转)Ubuntu下JDK7安装全过程并调试第一个带包的java程序
    js取消气泡事件、阻止浏览器的默认行为
  • 原文地址:https://www.cnblogs.com/strongtyf/p/11829605.html
Copyright © 2011-2022 走看看