zoukankan      html  css  js  c++  java
  • 函数的扩展

    es6规定只要函数使用了默认值,扩展运算符,解构赋值,那么函数内部就不能显式设定为严格模式,否则就会报错

    有两种方法可以避免这种限制,第一种是设定全局性的严格模式,第二种把函数包在一个无参数立即执行函数里面

    name属性

    如果 将一个匿名函数赋值给一个变量,es5的name属性会返回空字符串,es6的name属性会返回实际的函数名

    Function 构造函数返回的函数实例,name属性的值为 'anonymous'

    bind返回的函数name属性值会加上 bound 前缀

    箭头函数

    * 如果箭头函数不需要参数,或需要多个参数就使用圆括号代表参数部分

    * 如果箭头函数的代码块部分多于一条语句,就要使用大括号将其括起来,并使用return语句返回

    * 由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号 ( )

    * this指向的固定化,并不是因为箭头函数内部有绑定this机制,实际原因是箭头函数根本没有自己的this,

       导致内部的this就是外层代码块的this。正式因为没有this所以不能用作构造函数

    尾调用优化

    尾调用:指某个函数的最后一步是调用另一个函数

    尾调用优化,即只保留内层函数的调用帧,如果所有函数都是尾调用,那么完全可以做到每次执行时调用帧只有一项,

    这将大大节省内存这就是尾调用优化的意义

    只有不在用到外层函数的内部变量,内层函数的调用帧才会取代外层函数的调用帧否则就无法进行"尾调用优化"

    尾递归

  • 相关阅读:
    nodejs + mongodb
    实习踩坑
    jQuery获取点击对象的父级
    python正则表达式
    python文件基础IO,OS
    python模块
    python时间和日期
    python number
    python循环
    Vue2.0 【第一季】第6节 v-model指令
  • 原文地址:https://www.cnblogs.com/jeff-zhu/p/11980232.html
Copyright © 2011-2022 走看看