• javascript高级特性


    01_javascript相关内容
    02_函数_Arguments对象
    03_函数_变量的作用域
    04_函数_特殊函数
    05_闭包_作用域链&闭包
    06_闭包_循环中的闭包
    07_对象_定义普通对象
    08_对象_定义函数对象
    09_对象_内建对象
    10_原型_为函数对象增加属性或方法
    11_原型_利用函数对象本身重写原型
    12_继承_函数对象之间的继承
    13_继承_普通对象之间的继承


    javascript高级特性(面向对象):
     * 面向对象:
       * 面向对象和面向过程的区别:
         * 面向对象:人就是对象,年龄性别就是属性,出生上学结婚就是方法.
         * 面向过程:人出生、上学、工作、结婚、生子、去世整个过程.
       * 对象和类的区别:
         * 类:类比作一堆美女.
         * 对象:对象就是范冰冰.
     * javascript的开发工具:
       * WebStrom开发工具,在国内被专业的前端开发人员称之为js神器.
       * 代码提示功能非常强大.
     * javascript的扩展内容:
       * 服务器端开发人员来讲,之前的javascript基础内容够用.
       * javascript高级特性的目的:
         * 在目前服务器端开发人员中,增加竞争力.
         * 面向专业前端开发人员应聘.
       * javascript语言的发展趋势:
         * 每年全球开发语言的排行榜:第7名.
         * 开发客户端、服务器端、移动端(phoneGap)
         * 预测javascript语言可能成为下一代企业级开发语言.
     * 函数:
       * Arguments对象:用来模拟函数重载的效果.
       * 变量的作用域:
         * 作用域:
           * 全局域
           * 函数域
         * 变量:
           * 全局变量:全局域+函数域
           * 局部变量:当前函数域
         * 特殊情况:
           * 定义局部变量时,不使用var:局部变量被定义为全局变量.
           * 当全局变量与局部变量同名时:在函数域中只能访问到局部变量.
       * 特殊的函数:
         * javascript中的函数:
           * 三种定义方式:
             * function 函数名(参数){}
         * var 函数名 = function(参数){}
         * var 函数名 = new Function(参数,函数体);
         * 特殊函数:
           * 匿名函数
           * 回调函数
           * 自调函数
           * 内部函数
           * (了解)返回函数的函数
           * 作用:多用于javascript代码的优化.
       * 原始类型与引用类型:类似于Java中的int与Integer.
         * 原始类型:
           * undefined
           * null
           * number
           * string
           * boolean
         * 引用类型:
           * Object
           * Number
           * Boolean
           * String
         * 问题:
           * if(undefined==null):返回true.
           * new Object();
     * 闭包:非常重要的一个概念.
       * 作用域链:
         * 变量的作用域具有传递性.
       * 闭包:参看笔记.xls文档
          定义:函数可以使用函数之外定义的变量。
           编写的三点需求:同时满足

            需求:
                 * 在全局域中可以访问函数n()

                 * 在函数n()中依旧可以访问局部变量b

                 * 变量b必须定义在函数fn()中


             * 目前不要求大家可以编写闭包结构。

                * 作用:
                * 代码之间的低耦合。
                * 局部变量的共享。
                * 提高安全性。

                * 局限性:
                * n函数的初始化,必须在fn()中
                * 调用函数n,必须先调用fn()

     * 对象:
       * 定义对象三种方式:
         * var 对象名 = new Object();
         * var 对象名 = {key : value, key : value}
         * 函数即对象,函数对象:function 对象名(){}
       * 对象具有属性和方法:
         * 普通对象:
           * 调用:
             * 对象名.属性名;
         * 对象名.方法名();
           * 修改:
             * 对象名.属性名 = 新的属性值;
         * 对象名.方法名 = 新的function
           * 增加:
             * 对象名.新的属性名 = 新的属性值;
         * 对象名.新的方法名 = 新的function
           * 删除:
             * delete 对象名.属性名;
         * delete 对象名.方法名;
         * 函数对象: 又叫构造器  构造函数
           * 在使用函数对象的属性或方法之前,new对象.
         * 内建对象:
           * 数据封装类对象
             * Array
                * new Array()  //object
                 * []           //object
            * String
                * new String("aaa");   //object
                * "aaa";               //string
           * Object
               * Object是javascript所有对象的父级.
               * 在javascript得到对象最简单形式:new Object()
               * new Object()与var 对象名 = {}等价

           面试题:以下哪个描述是错误的?
           A var a = []; //数组
           B var b = {}; //对象
           C var c = //; //正则表达式 空正则表达式 /^[0-9]{10}$/
           D var d = (); //错误

           面试题:alert("xxxyyy")方法提示框中换行

           * 工具类对象
             * Date
                * xxxx年xx月xx日 hh:mm:ss
            * Math
                * 生成随机数:random(),0-1范围
                  var number = parerInt(Math.floor(Math.random() * 4))
            * RegExp
                *匹配方法:test()

           * 错误类对象
             * Error
            * 异常对象:try..catch

     * 原型:非常重要的一个作用.
       * prototype:函数本身就是一个对象,原型就是函数对象的一个属性.
       * 需要注意的是:
         * 创建了函数对象,原型自动创建(不能手动创建).
         * 原型的调用:函数对象.prototype.
       * 作用:
         * 利用原型为函数对象增加属性和方法.

    javascript面向对象:
     * 函数
       * Arguments对象:模拟函数重载
       * 变量的作用域:
         * 作用域:
           * 全局域
           * 函数域
         * 变量的分类:
           * 全局变量:全局域+函数域
           * 局部变量:当前函数域
         * 特殊情况:
           * 定义局部变量时,不使用var:局部变量被自动定义为全局变量
           * 当全局变量与局部变量同名时,在函数域中只能访问到局部变量
     * 闭包
       * 作用域链:变量的作用域是具有传递性的
       * 闭包:函数可以使用函数之外定义的变量
       * (了解)循环中的闭包结构
     * 对象
       * 定义对象的三种方式:
         * new Object()
         * JSON:{key:value,key:value...}
         * 函数对象(构造器):function 对象名(){this.属性名=属性值;}
       * 操作对象的属性和方法:
         * 调用:
           * 对象名.属性名(方法名)
           * 对象名['属性名(方法名)']
         * 修改:
           * 对象名.属性名 = 新的属性值;
         * 增加
           * 对象名.新的属性名 = 新的属性值;
         * 删除
           * delete 对象名.属性名(方法名)
       * 内建对象:
         * 数据封装类对象:
           * Array
           * String
             * ""        //string
         * new String() //object
           * Number
         * 工具类对象:
           * Date
             * 获取当前时间
           * Math
             * 生成随机数(0-1)
           * RegExp
             * 匹配方法:test()
         * 错误类对象:
           * Error
           * 异常对象
     * 原型
       * 定义:函数即对象,原型其实就是函数对象的一个属性。
       * 注意:
         * 原型是随着函数对象的创建而创建的(原型不能手动创建).
         * 原型的调用:函数对象.prototype.
       * 作用:
         * 利用原型为函数对象增加属性和方法.
         * 当函数对象本身的属性或方法与原型的属性或方法同名时:
           * 函数对象本身的属性或方法的优先级更高.
         * 内建对象具有一个属性:原型
           * 利用原型为内建对象增加属性或方法?可以
             * 支持:
           * 利用这种特性,使得javascript代码更灵活.
         * 反对:
           * 为老版本扩展的内容,可能出现在下一个版本中.
           * 我们站在这里.
       * 扩展内容:
         * 封装工具类 -> 库 -> 框架
         * 建议使用库,反对使用框架。
         * 浏览器内核:
           * IE浏览器:IE6.0        IE11
           * 其他浏览器:webkit(苹果)
             * 谷歌浏览器
         * 火狐浏览器
         * 苹果浏览器
           * 众多浏览器:
             * 百度浏览器:号称自主内核v5
         * 腾讯浏览器:号称自主内核x5
         * 遨游浏览器:号称自主内核
        * 不同浏览器内核集成的javascript引擎(v6)是不一样.
     * 继承
       * 问题:
         * javascript中不存在类的概念(没有class关键字).
         * javascript没有extends关键字(继承).
       * javascript中的继承是函数对象之间的继承.
         * 原型链
       * javascript的普通对象之间存在继承吗?了解   实际是浅复制


  • 相关阅读:
    office365离线安装
    c#使用emit方法DB,实体相互转换
    c#采用emit将DataTable转List
    c#将List转换成DataTable
    c#将List转换成DataTable(采用Emit)
    聊聊编程开发的数据库批量插入(sql)
    c#随便聊聊数据库操作
    c#聊聊文件数据库kv
    WPF几个样式
    c#(IronPython)调用Python方法
  • 原文地址:https://www.cnblogs.com/pengleibin-1993/p/5750908.html
Copyright © 2020-2023  润新知