JavaScript总结(二) 系统分析
学习Javascript的时候。遇到了一个问题。
看了牛腩的视频,感觉讲的太简单和基础,像认识一位新朋友。但仅有一面之缘就结束了。
再看姜浩的视频。又看得迷迷糊糊,让我找到了当初看两位台湾专家讲VB.net视频的感觉。学习显然不能到这儿就结束了。
结束了中间的自考之后,又翻了翻给的学习资料,发现还有不少关于Javascript的内容。相对视频。我还是更喜欢看书,由于书的结构能一目了然,能非常easy把握全局(也反映出一个问题。不少视频在开篇都没有非常系统地写出来究竟你都要讲什么,没有结构图这些明眼就能看出来的东西,仅仅是简单说几句就一带而过了)。
于是用半天的时间先看了一本基础的书,都是非常基础、非常浅显的东西,但基本说明了Javascript的框架内容。看的过程中,发现结构上还是“VB6.0的东西”。仅仅是语言的功能不同,应用不同罢了。
所以学习不同的语言事实上非常像一个CSS+HTML的过程,抽象出他们的样式(这个样式是类似的),分析不同的内容就能够了。
好了。看一下这张主要的JS导图吧。
要说的有下面几点:1、JS的对象;2、BOM和DOM。3、与CSS和HTML的关系。
1、Javascript作为一种基于对象的语言。没有类,所以它本身拥有非常多自身的对象。这些对象就相当于类的功能。如Math、Array这些内置对象和BOM、DOM这些对象模型。
上述是对象类型的简介,跟以往的语言比也算比較特殊的了,毕竟不用实例化。对其訪问也比較简单。就是普通的调用。来看看它的创建:
有两种方法:1、直接定义并创建对象的实例。2、使用函数来定义对象,然后创建新的对象实例。
样例:
fruit=new Object();
fruit.name="apple";
fruit.color="red";
fruit.weight=100;
/* 用方法一定义了一个水果对象,并创建了事实上例*/
function fruit(name,color,weight)
{
this.name=name;
this.color=color;
this.weight=weight;
}
/* 用另外一种方法定义了一个水果对象*/
创建该对象的实例:
var myfruit=new fruit("banana","yellow",100); /* 方法二中水果对象的实例 */
2、BOM又叫浏览器对象模型。DOM叫文档对象模型。看名字就知道它们之间必定是有关系的,事实上,DOM也是一种BOM。为什么?看下图:
红色圈起来的是BOM,绿色的是DOM(也就是document下的部分),它们的连接点就是document项。每条竖线都相当于一个“调用”关系,上级调用下级。
BOM提供了独立于内容,而与浏览器进行交互的对象。描写叙述了与浏览器进行交互的方法和接口。能够对浏览器窗体进行訪问和操作。如弹出窗体,改变状态栏中的文本等。
在BOM中,window对象是核心。它表示整个浏览器窗体,但不必表示当中包括的内容。
DOM描写叙述了处理网页内容的方法和接口,它是HTML和XML的API,DOM把整个页面划成由节点层级构成的文档。
它本身是与语言无关的,且不与Java。Javascript等其它语言绑定。
在DOM中,document是核心。他也是window对象的一个属性。它由一系列集合构成。这些集合能够訪问文档的各部分。
3、网页的前台分为三个关系:内容、样式和行为,这些网页要素分别相应起来就是HTML(内容)、CSS(样式)、Javascript(脚本)。
HTML划分了不同的元素,也形成了不同的层次结构。使得各种元素都能获得标识;CSS利用这些标识改变HTML元素的样式,达到控制和布局的效果。Javascript则使这些元素活动起来,与用户交互,让HTML元素去“做事”。
这篇博客的定位还是0基础。简单梳理一下js的基本概况。以下几篇就是一些高级的内容了。包含一本内容比較高级的书和姜昊视频的梳理和总结。
JavaScript总结(二) 系统分析的更多相关文章
- 学习javascript数据结构(二)——链表
前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结 ...
- 初探JavaScript(二)——JS如何动态操控HTML
除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...
- 从头开始学JavaScript (十二)——Array类型
原文:从头开始学JavaScript (十二)--Array类型 一.数组的创建 注:ECMAscript数组的每一项都可以保存任何类型的数据 1.1Array构造函数 var colors = ne ...
- 使用JavaScript生成二维码教程-附qrcodejs中文文档
使用javascript生成二维码 依赖jquery 需要使用到的库 https://github.com/davidshimjs/qrcodejs DIV <div id="qrco ...
- 同事问如何判断同花顺,我用javascript的二维数组写了个简易demo
有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo. <!DOCTYPE html> <html> <body> <s ...
- 2、JavaScript 基础二 (从零学习JavaScript)
11.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. 1>Number强制转换 参数为原始类型值的转换规 ...
- Javascript面向对象二
Javascript面向对象二 可以通过指定原型属性来对所有的对象指定属性, Object.prototype.name="zhangsan"; Object.prototype. ...
- QrCode C#生成二维码 及JavaScript生成二维码
一 C#的二维码 示例: class Program { static void Main(string[] args) { QrEncoder qrEncoder = new QrEncode ...
- 一篇文章图文并茂地带你轻松学完 JavaScript 设计模式(二)
JavaScript 设计模式(二) 本篇文章是 JavaScript 设计模式的第二篇文章,如果没有看过我上篇文章的读者,可以先看完 上篇文章 后再看这篇文章,当然两篇文章并没有过多的依赖性. 5. ...
- Javascript生成二维码(QR)
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...
随机推荐
- Java基础知识强化36:StringBuffer类之StringBuffer的概述
1. StringBuffer类概述: (1)String的缺陷: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: (2)StringBuffe ...
- DNN Module - Responsive Html Tabs 3 介绍
Responsive Html Tabs 模块可以运行于DNN7及以上版本,支持响应式.用户界面较为友好,可以插入自定义的HTML. Demo This is a user-friendly, ful ...
- 《第一行代码》学习笔记36-服务Service(3)
1.为了更加方便在子线程中对UI操作,借助Android中提供的AsyncTask,十分简单地从子线程到主线程的. 2.一个最简单的自定义AsyncTask写成如下方式: class Download ...
- SQL从入门到基础 - 05 数据分组、Having语句
一.数据分组 1. 按照年龄进行分组统计各个年龄段的人数: Select FAge,count(*) from T_Employee group by FAge; 2. Group by子句必须放到w ...
- WebBrowser.ExecWB方法
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- java中包的应用
Do2.java package mypack; class Do2 { public static void main(String[] args) { packa.Do3 d=new packa. ...
- C# 解析json Newtonsoft.Json
Newtonsoft.Json.dll public class ErrorInfo { public error_response error_response { get; set; } } pu ...
- jquery的.detach()方法
.detach()就是从DOM中删除所有匹配的元素. 与.remove()方法不同的是, 这个方法不会把匹配的元素从jQuery对象中删除,所有绑定的事件.附加的数据等都会保留下来,因而可以在将来再使 ...
- 详解PHP的__set()、__get()、__isset()、unset()四个方法
PHP系统中给我们提供了很多预定义的方法,这些方法大部分都需要在类中声明,只有需要时才添加到类中.它们的作用.方法名称.使用的参数列表和返回值都是在PHP中预定好的,并且都是以两个下划线开始的方法名称 ...
- C语言(按键获取与函数)
举一个简单的例子,如果有按键,就输出相关按键.否则,输出“.”.每隔 100 毫秒输出一次.按 ESC 退出.注:ESC 的 ASCII 码是 27. #include <stdio.h> ...