zoukankan      html  css  js  c++  java
  • ecma2623执行环境练习

    1 词法作用域

    function c1(){return d1++}
    function a1(){var d1=0;return c1();}
    console.info(a1())
    //d1 undefined c1是在a1外部定义的

    //1 错误,变量对象中没找到cc
    alert(cc)

    //2 undefined,变量对象中找到了参数cc,但没赋值
    var xx=function(cc){
    alert(cc)
    }()

    //3 错误,变量对象把参数o=undefined
    var xx=function(o){
    alert(o.a)
    }()

    //4错误,变量对象把变量声明o=undefined
    alert(o.a)
    var o={}

    //6 undefined,此时执行后o是对象
    alert(o.a)

    //7 错误 ,变量对象把变量声明o=undefined
    var o;
    alert(o.a)

    2 作用域链问题 参数>函数声明>变量声明

    //如果参数已声明,但是没有值的话,就是undefined。
    //
    但是如果参数没有声明,就会向上查找。

    //1 undefined,在函数中,变量对象中参数a=undefined,优先使用
    var a22=0;
    var xx=function(a22){alert(a22)}()

    //2 参数a2=undefined。b2没找到,然后往上找到了=4.
    var d2=function(a2){
    var a2=3,b2=4;
    var c2=function(a2){
    alert(a2)
    alert(b2)
    }()
    }()

    3顺序 

    console.info(typeof ss3) //function
    var ss3=2
    function ss3(){alert("ok")}
    console.info(
    typeof ss3) //number

    //第一个输出为function是因为这个时候下面的代码没执行,在变量对象中,函数ss先声明,类型为function,然后变量ss的声明不能覆盖函数ss。
    //
    第二个输出的ss是number,是因为此时下面的代码已经执行,ss被赋值=2,
    //
    如有不明白请看 http://www.javaeye.com/topic/812668

    4 块级声明 

    //ff =1 ie=2. ff中可以在块级中声明?

    function f(){ alert(1)};
    f();
    if(1) { function f() { alert(2) } }
    ---------------------------------------
    for(var i4=0;i4<5;i4++){if(i4=3)break}
    alert(i4)
    //i4是全局作用域

    5 匿名函数与命名函数

    //解决在块级元素中函数声明的办法,这样在ff和ie下都是first
    ---
    var foo;
    if (true) {
    foo
    =function() {
    return 'first';
    }
    }
    else {
    foo
    =function () {
    return 'second';
    }
    }
    alert(foo())


  • 相关阅读:
    C++学习004-Go To 语句使用
    C++学习003-#define 自定义宏
    C++学习002-C++代码中插入汇编语句
    C++学习001-注释
    Qt 加载Leap motion 手势识别软件 二次开发 hello world
    C++知识点 内存占用问题
    虚拟现实-VR-UE4-编译源代码后,无法运行
    Loadrunner|录制脚本时出现乱码的解决方式
    2月14日学习内容
    构建之法读后感(三)
  • 原文地址:https://www.cnblogs.com/lunalord/p/1988761.html
Copyright © 2011-2022 走看看