ES6函数作用域如何通过实例展现具体应用场景?

更新于
2026-09-25 09:50:04
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计889个文字,预计阅读时间需要4分钟。

ES6函数作用域如何通过实例展现具体应用场景?

原文示例:本文字例讲述了ES6函数中的作用域。

一旦设置了参数的默认值,函数进行声明时,参数会形成一个独立的单独的作用域(context)。等到初始化结束,这个作用域也随之消失。

本文实例讲述了es6函数中的作用域。分享给大家供大家参考,具体如下:

一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值,是不会出现的。

var x = 1; function f(x, y = x) { console.log(y); } f(2) // 2

上面的代码中,参数y的默认值等于变量x。调用函数f时,参数形成一个单独的作用域。在这个作用域里面,默认值变量x指向第一个参数x,而不是全局变量x,所以输出是2。

再看下面的例子。

let x = 1; function f(y = x) { let x = 2; console.log(y) }

上面代码中,函数f调用时,参数y = x形成一个单独的作用域,这个作用域里面,变量x本身没有定义,所以指向外层的全局变量x。函数调用时,函数体内部的局部变量x影响不到默认值变量x。

如果此时,全局变量x不存在,就会报错。

function f(y = x) { let x = 2; console.log(y) } f() // ReferenceError: x is not defined

下面这样写,也会报错。

阅读全文

本文共计889个文字,预计阅读时间需要4分钟。

ES6函数作用域如何通过实例展现具体应用场景?

原文示例:本文字例讲述了ES6函数中的作用域。

一旦设置了参数的默认值,函数进行声明时,参数会形成一个独立的单独的作用域(context)。等到初始化结束,这个作用域也随之消失。

本文实例讲述了es6函数中的作用域。分享给大家供大家参考,具体如下:

一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值,是不会出现的。

var x = 1; function f(x, y = x) { console.log(y); } f(2) // 2

上面的代码中,参数y的默认值等于变量x。调用函数f时,参数形成一个单独的作用域。在这个作用域里面,默认值变量x指向第一个参数x,而不是全局变量x,所以输出是2。

再看下面的例子。

let x = 1; function f(y = x) { let x = 2; console.log(y) }

上面代码中,函数f调用时,参数y = x形成一个单独的作用域,这个作用域里面,变量x本身没有定义,所以指向外层的全局变量x。函数调用时,函数体内部的局部变量x影响不到默认值变量x。

如果此时,全局变量x不存在,就会报错。

function f(y = x) { let x = 2; console.log(y) } f() // ReferenceError: x is not defined

下面这样写,也会报错。

阅读全文