美文网首页
es6 函数扩展和作用域

es6 函数扩展和作用域

作者: 琳媚儿 | 来源:发表于2020-05-11 12:17 被阅读0次

默认值 对象形式
参数变量默认声明的,不能用let const 再次声明

{
  
    function Student(x = "XXX", y = "18", z = "汉族") {
        this.x = x;
        this.y = y;
        this.z = z;
    }
    const Stu = new Student();
    console.log(Stu);

}
//Student { x: 'XXX', y: '18', z: '汉族' }

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

首先找同一级,同一级没有就向上找
此例子中参数y的默认值等于变量x,调用函数 f 时,形成一个单独的作用域 ,在这个作用域里面默认值标量x 向第一个参数x,而不是全局变量x.
因为没给具体的值所以 y=undefinded

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

在下面这个例子里面:变量x本身没有定义,所以指向外层的全局变量x 。函数调用时,函数体内部的局部变量x 影响不到默认值变量x

{
    //首先找同一级,同一级没有就向上找
    let x = 1;
    function f(y = x) {
        let x = 2;
        console.log((y));
    }
    f()
//1
}

相关文章

  • JS基础知识(2) -- 作用域和作用域链

    作用域 作用域就是变量与函数的可访问范围 全局作用域 函数作用域 ES6块级作用域 ES5没有块级作用域,ES6有...

  • 闭包

    javaScript 有两种作用域:全局作用域和函数作用域(es6加上块级作用域)。函数内部可以直接读取全局变量,...

  • JavaScript作用域探幽(二)

    函数作用域和块作用域 Javascript有基于函数的作用域,而在ES6的版本以前,除了少数机制能创建块作用域之外...

  • javascript的三种作用域

    javascript 三种作用域 全局作用域 函数作用域 块级作用域(es6) 全局作用域 变量声明不写在函数内部...

  • js 作用域链 和 原型链

    作用域链 js拥有全局作用域(window)、函数作用域、块级作用域(es6)。块级作用域是es6开始才拥有的,因...

  • 1. 作用域

    全局作用域: 在函数外定义的变量 函数作用域/局部作用域: 在函数 {} 中生效 块作用域 : es6之前没有块作...

  • ES6语法

    一、let和const es6之前有两个作用域:全局作用域、函数作用域es6新增加了块作用域,也就是{}包起来的代...

  • const,let,var 变量声明

    ES6前有全局作用域和函数作用域,声明变量用var。ES6 后新增块作用域。 1.Const 定义常量,初始化时必...

  • ES6语法--let和const

    1:let和const:作用域,全局作用域,函数作用域以及块级作用域(es6)。 let声明的变量只在块级作用域内...

  • JavaScript散乱(四、细节)

    js高级 案例问题 作用域和作用域链 全局作用域也就是window和函数作用域,不考虑es6的块级作用域前提下,作...

网友评论

      本文标题:es6 函数扩展和作用域

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