美文网首页
es6函数提升特性简单总结

es6函数提升特性简单总结

作者: 古_道_西_风_瘦_马 | 来源:发表于2018-01-11 15:23 被阅读0次

例子

var sayTruth =function(){console.log(2)}
function  sayTruth(){console.log('1')};
sayTruth();
环境 es5 es5严格模式 es6 node es6 node严格模式 es6浏览器 es6浏览器严格模式 babel
结果 2 2 2 2 2 2 2

例子

sayTruth();

function sayTruth(){console.log('1')};
环境 es5 es5严格模式 es6 node es6 node严格模式 es6浏览器 es6浏览器严格模式 babel
结果 1 1 1 1 1 1 1

从前面两个例子可以简单看出 es6对函数提升恩es5保持一致

例子

if(1){
    function sayTruth(){console.log('1')};
}
else{
    function sayTruth(){console.log('2')};
}
sayTruth();

执行结果

环境 es5 es5严格模式 es6 node es6 node严格模式 es6浏览器 es6浏览器严格模式 babel
结果 2 not defined 1 not defined 1 not defined not defined
原因 变量提升 严格模式 严格模式 严格模式 严格模式

ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。若改变了块级作用域内声明的函数的处理规则,显然会对老代码产生很大影响。为了减轻因此产生的不兼容问题,ES6规定,浏览器的实现可以不遵守上面的规定,允许有自己的行为方式。

  • 允许在块级作用域内声明函数。
  • 函数声明类似于var,即会提升到全局作用域或函数作用域的头部。
  • 同时,函数声明还会提升到所在的块级作用域的头部。

例子

sayTruth();
if(1){
    function sayTruth(){console.log('1')};
}
else{
    function sayTruth(){console.log('2')};
}

环境 es5 es5严格模式 es6 node es6 node严格模式 es6浏览器 es6浏览器严格模式 babel
结果 2 not defined not a function not defined not a function not defined not defined
原因 变量提升 严格模式 严格模式 严格模式 严格模式

对于es6 等同于

var sayTruth ;
sayTruth();
if(1){
    function sayTruth(){console.log('1')};
}
else{
    function sayTruth(){console.log('2')};
}

相关文章

  • es6函数提升特性简单总结

    例子 例子 从前面两个例子可以简单看出 es6对函数提升恩es5保持一致 例子 执行结果 ES6 引入了块级作用域...

  • es6、js、css、jquery、vue以及程序设计 知识点总

    es6 列举常用的es6特性。 箭头函数this的指向。 eg:箭头函数的特性 箭头函数内部没有construc...

  • es6对象扩展

    es6对于对象做了很多扩展,现做以下总结。特性: ES6 允许直接写入变量和函数,作为对象的属性和方法。 Obje...

  • ES6——面向对象、类

    注意: 1、ES6里面class没有提升功能,在ES5中,用函数模拟可以提升。 2、ES6里面this简单了。 先...

  • ES6在企业中的应用

    模板字符串 解构赋值解构赋值最常用的在于函数。 数组spread es6浅拷贝 函数新特性之箭头函数 函数新特性之...

  • ES6箭头函数(Arrow Functions)

    箭头函数是什么?(What) 箭头函数 (Arrow Functions)也称“胖箭头函数”,是ES6全新的特性。...

  • 小程序系列--ES6

    ES6 总结 1. 简介 2015年推出,也叫ES2015,增加很多新特性 2. 块的作用域 全局作用域,函数作用...

  • es6语言特性的总结(3)

    es6语言特性的总结(1)在这里es6语言特性的总结(2)在这里 类 在ES5中,由于没有类的概念,所以如果要使用...

  • ES6笔记

    第一章 入门 一、简介ES6==ES2015特点:功能更强大,结构更简单特性:解构赋值、箭头函数、Set和Map、...

  • (9) 函数

    函数 1. 定义 普通函数 函数表达式 Function关键字 箭头函数(ES6) 2. 函数特性 模拟函数重载f...

网友评论

      本文标题:es6函数提升特性简单总结

      本文链接:https://www.haomeiwen.com/subject/jxxtoxtx.html