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的普通对象之间存在继承吗?了解   实际是浅复制

javascript高级特性的更多相关文章

  1. javascript高级特性(面向对象)

    javascript高级特性(面向对象): * 面向对象: * 面向对象和面向过程的区别: * 面向对象:人就是对象,年龄\性别就是属性,出生\上学\结婚就是方法. * 面向过程:人出生.上学.工作. ...

  2. JavaScript高级特性-数组

    1. JavaScript中的数组 在C++.Java中,数组是一种高效的数据结构,随机访问性能特别好,但是局限性也特别明显,就是数组中存放的数据必须是同一类型的,而在JavaScript中,数组中的 ...

  3. JavaScript高级特性-创建对象的九种方式

    1. 对象字面量 通过这种方式创建对象极为简单,将属性名用引号括起来,再将属性名和属性值之间以冒号分隔,各属性名值对之后用逗号隔开,最后一个属性不用逗号隔开,所有的属性名值对用大括号括起来,像这样: ...

  4. JavaScript高级特性-实现继承的七种方式

    声明和约定: 在C++和Java中,我们可以通过关键字class来声明一个类,在JavaScript中没有这个关键字,但我们知道可以通过new一个function创建对象,这个function类似C+ ...

  5. JavaScript 高级特性

    1. 原型Prototype 1.1 构造函数 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定 ...

  6. JavaScript高级特性之原型

    JavaScript的原型 原型prototype属性仅仅适用于函数对象(这里的函数对象是自己为了理解更好定义的,普通对象是没有原型属性的) 1.研究函数原型: <script type=&qu ...

  7. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  8. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  9. 《JavaScript高级程序设计》学习笔记(5)——面向对象编程

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...

随机推荐

  1. C# Mysql You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ????

    有几年没用过MySql数据了,今天在使用C#访问MySql数据库时出现了一个小插曲. 错误提示: You have an error in your SQL syntax; check the man ...

  2. Spring+Mybatis多数据源配置

    一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:330 ...

  3. python基础知识9——模块2——常见内置模块

    内置模块 内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 1.sys 用于提供对Python解释器相关的操作: sys.argv 命令行参数List,第一个元素 ...

  4. python模块学习心得

    初始模块 1.什么是模块 模块是用来实现某项功能的一大堆代码,为什么会有模块呢?过程式编程的时候为了减少程序员编程代码的重复性,就利用函数的调用减少了代码的重复性,但是某些时候程序会过于的庞大,我们会 ...

  5. Redis从基础命令到实战之有序集合类型(SortedSet)

    有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...

  6. 【转】 HTMLCollection和NodeList的区别

    1 HTMLCollection类型 下面的每个项目(以及它们指定的属性)都返回 HTMLCollection(基类)或者它的派生类: Document (images, applets, links ...

  7. Perl爬取江西失信执行

    #! /usr/bin/perl use strict; use Encode qw(encode decode); binmode(STDIN,":encoding(utf8)" ...

  8. [Eclipse] - eclipse集成jboss7.1

    参考来源:http://www.cnblogs.com/HD/p/4000554.html 1.打开eclipse: 2.输入:jboss tools 本例已经安装,未安装的话点Install 3.只 ...

  9. $(document).ready()方法的使用

    之前看了,锋利的jquery这本书.开始了对jquery的学习.很多东西还是不能应用自如,并没有把jquery变成自己的东西.某日程序突然失效,是单击行的时候取属性,但是不知道为什么,取不到值.$(t ...

  10. 运行Java cmd程序 找不到或无法加载主类怎么解决

    //这个问题原因有以下几种,但是和环境变量并没有太大的关系 //能够执行java 和 javac 就证明你的环境变量已经配置好了,其实 classpath 可以不配置 //假如有如下文件:H:\cod ...