• js重点


    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
    //            function add (){
    //                var a = 3;
    //                return a
    //            }
                //一般情况下,函数声明的局部变量,在函数调用完之后就会被销毁掉
    //            console.log(add())
    //            add()
    //            
    //            
    //            function add(){
    //                var a = 3
    //                return function(){
    //                    return a
    //                }
    //            }
    //            
    //            abc = add()
    //            console.log(abc())
    
                //闭包的好处
                
    //            var list = [f0,f1,f2]
    //            f0()---->0
    //            f1()---->1
    //            f2()---->2
                //假设需要一个列表,这个列表存放n个函数,只要调用list[i](),那么就会返回i
                
                //-----------------------------------案例1:
    //            var list = []
    //            
    //            for(var i=0;i<3;i++){
    //                var temfn = function(){
    //                    return i
    //                }
    //                list.push(temfn)//将函数添加进列表
    //            }
    //            
    //            console.log(list)
    //            list[0]() //====> 3
                
                //----------------------------------案例1:解决方案
                
                var list = []
                for (var i=0;i<3;i++){
                    //匿名函数通过自己调用自己执行,获取i值传入num参数
                    //num参数这个变量被返回的匿名函数所引用,所以参数num不会被销毁,使得num参数可以保留。
                    var temfn = (function(num){
                        return function(){
                            return num
                        }
                    })(i)
                    list.push(temfn)
                }
                
    //            console.log(list[0]())
                
                
                function Counter(){
                    var num = 0
                    return function(){
                        num ++
                        return num;
                    }
                }
                
                var abc = Counter()
                console.log(abc())
                console.log(abc())
                console.log(abc())
                
                //能不用闭包,就尽量不用闭包,因为会导致内存的可使用量下降(内存泄漏)
                
            </script>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
    //            a = add(3,4)
    //            console.log(a)
            
            //将一个匿名函数给到1个变量
    //            var add = function(a,b){
    //                a = a + 1;
    //                b = b + 1;
    //                return a+b
    //                
    //                console.log(123)
    //            }
                
            //直接申明函数的方式    
    //            function add (a,b){
    //                a = a + 1;
    //                b = b + 1;
    //                return a+b
    //            }
            //注意:直接申明函数的方式,浏览器会自动将它提升到最前面。
            
            //js不会对函数的参数进行检查
    //        a = add()
    //        console.log(a)
    //        
            //返回值通过return返回出去,return语句执行之后,不会再继续执行函数后面的内容。
            
            
    //        function add(a=3,b=4){
    //            console.log(a,b)
    //            a = a + 1;
    //            b = b + 1;
    //            
    //            return a+b
    //        }
    
            function add(a,b){
                if(a==undefined){
                    a = 3
                }
                if(b == undefined){
                    b = 4
                }
                a = a + 1;
                b = b + 1;
                
                return a+b
            }
            
            console.log(add())
            var student = {name:'xx',age:16}
            
            function abc(){
                //在函数里面,用var申明使这个函数的局部变量,在其他地方是拿不到的
                var num = 3
                var student = {name:'666'}
                return student.name
            }
            
            
            
            
            console.log(abc()) 
            </script>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
                //1、字面量的方式,偶尔创建一个特定的对象,那么就是最简单和便捷方式
                var student = {
                    name:'xx',
                    age:'xx'
                }
                //2、构造函数的方式
                var student = {}//构造一个新的空对象
                var student = new Object()//构造一个新的空对象
                
                student.name = 'xx'
                student.age = 'xx'
                
                //3、创建一个函数来构造一个对象,工厂模式
                function Student(name,age){
                    var student = {}
                    student.name = name;
                    student.age = age
                    return student
                }
                
                var s1 =  Student('xx','xx');
                var s2 =  Student('mingzi','nianling')
                
                //4、构造一个构造函数,通过构造函数,实例化一个对象
                function Student(name,age){
                    this.name = name;
                    this.age = age
                    this.showName = function(){
                        console.log(this.name)
                    }
                    //没有返回值
                }
                
                var s3 = new Student('gzhanshu','xxx')
                //如果使用了new 调用函数,那么首先会创建1个对象,并且将这个对象赋值s3,如果函数里有this,那么这个this就是这个新创建的对象
                var s4 = Student('yyy','uuu')//如果没有new,就是一个普通函数,那么普通函数没有返回值,就是未定义
                
                
            </script>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
                //构造一个构造函数,通过构造函数,实例化一个对象
                function Student(name,age){
                    this.name = name;
                    this.age = age
                    console.log(name)
                    //没有返回值
                }
                
                
                function Man(){
                    this.run= function(){
                        console.log('会跑')
                    }
                    this.showName = function(){
                        console.log(this.name)
                    }
                }
                
                var man = new Man()
                //设定构造函数对象的属性prototype,将原型对象给到这个prototype属性
                Student.prototype = man
                
                var s3 = new Student('gzhanshu','xxx')
                
                //原型对象也可以有原型,那么原型的原型所形成的链式,那么就叫做原型链
                //原型里面属性方法可以被,实例化的对象共享。大大的减少内存的消耗
            </script>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
                //对象也存放一组数据的地方
                //student,学生姓名,学生年龄,会考试,会读书,会唱歌
                
                
                //字面量的方式
                var student = {
                    name:'老王',
                    age:'30',
                    dizhi:'隔壁',
                    isMan:true,
                    son:{name:'xiaowang',age:3},
                    action:function(){
                        console.log('拐卖良家妇女')
                    }
                }
                console.log(student)
    
                //想要获取里面的属性
    //            student['属性值']
    //            student.属性值
    //          我们如果想要用变量的情况下,那么就要用中括号。
    
    //            student.xuehao = 123456789
    //            student['xuehao'] = 12432342
    //            console.log(student)
    
            
                var student2 = new Object()
                student2.name = 'xxzz'
                student2.age = 16
                console.log(student2)
            </script>
        </body>
    </html>
  • 相关阅读:
    Druid Monitor开启登录界面
    nginx强制使用https访问(http跳转到https)
    技术与架构
    SQLProfiler_SQL抓包
    SQL UPDATE with INNER JOIN
    MYSQL业务数据简单脱敏方案
    阿里云CodePipeline vs Jenkins
    Java Profiling & Profilers
    LINUX操作系统(centos6.9)安装与配置
    分布式ID生成系统 UUID与雪花(snowflake)算法
  • 原文地址:https://www.cnblogs.com/wwthuanyu/p/10555184.html
Copyright © 2020-2023  润新知