JavaScript作用域、转义、序列化

javascript:
    1.
        for循环
        while循环
    2.条件
        if(){}else if(){} else{}
        ==
        ===
        
        switch(name){
        case:'1';
            console.long(123;)
            break;
        case:'2';
            console.long(456;)
            break;
        default;
            console.long(999;)
            break;
            }
    3.函数
        function fun(arg){
        
            return arg+1
        }
        var result= func(1)
        console.log(result)
        匿名函数:
            setInterval(function(){
                console.log(123);
            },5000)
        自执行函数(创建函数并且自动执行):
            (function(arg)){
            console.log(arg)
            })(1)
    4.序列化
        JSON.stringify(info)#序列化  将对象转换成字符串
        JSON.parse(infoStr)#反序列化    将字符串转换为对象类型
    
    5.转义
        客户端 (cookie)-> 服务器端
            将数据经过转义后,保存在cookie    
        decodeURI( )                   URl中未转义的字符
        decodeURIComponent( )   URI组件中的未转义字符
        encodeURI( )                   URI中的转义字符
        encodeURIComponent( )   转义URI组件中的字符
        escape( )                         对字符串转义
        unescape( )                     给转义字符串解码
        URIError                         由URl的编码和解码方法抛出
        
    6.eval
        python:
            val = eval(执行表达式)
            exec(执行代码)
        JavaScript
            eval(python的合集)
    7.时间
        date对象
        Date类
        var d = new Date()
        d.getxxx    获取
        d.setxxx    设置
    
    8.作用域
    
        其他语言:以代码块作为作用域
                public void Func(){
                    if(1==1){
                        string name ='java'
                    }console.writeline(name)
                    }Func()
                    //报错
        python:以函数作为作用域
            def func():
                if 1==1:
                    name='user'
                print(name)
        javascript:以函数作为作用域
            function func(){
                if(1=1){
                    var name = 'user'
                }
                console.log(name)
            }
        
        2.函数的作用域在函数未被调用之前,已被创建
        3.函数的作用域存在作用域链,并且也是在被调用之前创建
         实例一:
            xo='user1'
            function func(){
                var xo='user2';
                function inner(){
                    var xo='user3';
                    console.log(xo);
                }
            }
         实例二:
                    xo='user1'
                    function func(){
                        var xo='user2';
                        function inner(){
                            console.log(xo);
                        }
                        return inner;
                    }
                    var ret =func()
                    ret()
         实例三:    
                    xo='user1'
                    function func(){
                        var xo='user2';
                        function inner(){
                            console.log(xo);
                        }
                        var xo ='tony';
                        return inner;
                    }
                    var ret =func()
                    ret()
        4.函数内部局部变量提前声明
            function func(){
                console.log(xxoo)
                var xxoo='name'
                
            }
            #解释过程中执行一句:var xxoo;
            func();输出undefined

注释:

实例一中inner的xo如果没有被找到会往上找局部变量。

原文地址:https://www.cnblogs.com/anhao-world/p/14242537.html