zoukankan      html  css  js  c++  java
  • js 作用域学习

    1.var happy='huhu';
    alert(happy);
    //定义然后输出,no problem
    
    2.alert(happy);
    //没有定义,自然不ok
    
    3.happy='huhu';
    //直接给一个变量负值也是不会出错,因为这先当于创建了一个全局的变量。隐式声明了一个变量
    
    
    4.alert(happy);
    var happy='huhu';//happy==undefined;相当于。var haapy;-->alert(happy)-->happy='huhu';
    happy='huhu'//如果不写var的时候还是会出错
    
    
    5.var happy='huhu';
    function show(){
        alert(happy);//输出huhu,访问外部的变量
        happy='heihei';//虽然这里改变了外部变量,但是函数完以后会回收这里。所以你不停的刷机会是huhu
        //alert(happy);
    }
    show();
    
    
    6.var happy='huhu';
    function show(){
        alert(happy);//undefined,这里在局部查找变量的时候会找到一个声明确为定义的happy。
        var happy='heihei';    
    }
    show();
    
    
    7.var hppay=[1,2,3];
    function show(){
        if(typeof hppay=='undefined'){
            hppay=[];
        }    
        alert(hppay.length);//3 happy为array不为undefined
    }
    show();
    
    var hppay1=[1,2,3];
    function show1(){
        if(typeof hppay1=='undefined'){
            var hppay1=[];
        }    
        alert(hppay1.length);//0
    }
    show1();
    //相当于
    function show1(){
        var happpy; //此时alert(happy)为undefined
        if(typeof happy1='undefined'){
            var happy1=[];
        }    
    };
    
    
    8.alert(typeof happy);//function
    function happy(){};//采用函数定义式声明的方法,函数的定义会提前;而采用函数表达式声明的方法,函数的定义,跟采用var声明的局部变量一样,函数声明会提前,但函数定义位置不变,
    
    alert(typeof happy1);//undefined
    var happy1=function(){};//函数表达式的这种写法,相当于声明了一个变量。
    
    
    
    9.var happy={name:'huhu'};
    function happy(){
        alert('执行了');    //报错functon 不是一个函数,为什么这里不能提前了呢?
    }
    happy();
    //模拟代码如下
    alert(happy);//function
    var happy={name:'huhu'};
    alert(happy);//object
    function happy(){
        alert('执行了');    
    }
    
    happy();
  • 相关阅读:
    sqlilab-Less-41-53-writeup
    【转载】CPU架构、指令集与指令集体系结构(ISA)
    《鸟哥的Linux私房菜》读书笔记--第0章 计算机概论 硬件部分
    UVA-1602 Lattice Animals 搜索问题(打表+set)
    Python爬虫简单入门及小技巧
    HDU-1043 Eight八数码 搜索问题(bfs+hash 打表 IDA* 等)
    nginx重启命令
    php使用正则过滤js脚本代码实例
    ini_set("display_errors","On");和error_reporting(E_ALL);
    js中NAN、NULL、undefined的区别
  • 原文地址:https://www.cnblogs.com/wannasing/p/3067309.html
Copyright © 2011-2022 走看看