JavaScript DOM編程藝術第二版學習(1/4)

接下來項目需要網頁相關知識,故在大牛的指引下前來閱讀本書。

記錄方式:本書分四部分閱讀,完成閱讀之后會多寫一篇包括思維導圖的算是閱讀指南的東西,瀏覽的童鞋看著指南可以跳過一些不必要的坑~

當前水平:HTML&CSS&JS基本掌握,能在閱讀文檔以及Google查找的情況下完成前端代碼編寫,但是學習不深,HTML5&CSS3新特性、JS基礎&框架皆不熟悉

讀書目的:了解DOM概念并通過訓練熟悉掌握,了解JS特性

博客目的:督促自己學習并記錄下過程

博客編寫時讀書進度:第6章完結

?

  閱讀規劃:

    瀏覽目錄之后,總結該書學習思路大致如下(其實就是生搬目錄):

      簡史-》最基礎語法-》DOM-》動態標記的創建-》充實文檔的內容(不懂照抄)-》CSS DOM-》JS動畫-》HTML5特性簡介

      456這三章以圖片庫為練習項目來具體講解程序優化、分離、兼容等問題,程序比較簡單,了解結果之后可以自己寫完再與書中的對比

      12章為綜合實例,尚未了解

  開始閱讀:

    一、簡史:

      導讀:基本概念

      內容:

        DOM概念:一套對文檔的內容進行抽象&概念化的方法, 亦是一種得到共同認可的基本約定。

        DOM標準化作用:可以讓 任何一種Programming Language使用任何一種標記語言所編寫出來的文檔? 進行操控!(json&xml&xaml之類的)

        瀏覽器引擎: WebKit(Safari & Chrome) 、 Gecko(Firefox)

      思考:至此,DOM的概念還是不清晰,知道DOM將文檔劃分層級(或說是樹)來方便文檔的操作,但是在瀏覽器上的表現和作用體現在哪呢?

    二、最基礎語法:

      導讀:最基礎的語法,所以只是節選一些覺得之前不太了解的

      內容:

        1、數組初始化有多種方式: 

        var array1 = Array();    //無長度空數組var array2 = Array(4);  //有長度空數組var array3 = [];           //無長度空數組var array4 = ["A","B"];  //普通數組    

        2、用對象來代替數組將大大提升可讀性:

        var a={}a.first = "xiaoming";a.second = "qixi";

        3、對象分為:內建對象、宿主對象、用戶自定義對象(同上,這本書說讀者自己玩所以不介紹)

          內建對象:就是一些JS已經定義好的對象,有學過Java的童鞋可以把這貨當做 Java的,就是 System.currentTimeMillis & new Person().year 這樣的東西

          宿主對象:不是由JS提供,而是由代碼運行環境提供(也就是瀏覽器!),有Form、Image、Element以及document(JS大佬)

      思考:看完本章主要收獲是在 對象?方面,JS的document原來是屬于宿主對象的!那window呢?

      思考答復:

        本書3.2有講到window:

          window對象是宿主對象 最基礎的對象 。window 對應著瀏覽器窗口本身,提供了瀏覽器的各種基礎操作方法如open()、blur()。

    三、DOM:

      導讀:'D'、'O'、'M'的概念,節點操作,屬性操作 (同目錄)

      內容 :?

        1、DOM概念:

          'D': 網頁文檔 =》 文檔對象 (操作對象);

          'O': 同 第二章 =》內容 =》第3點;

          'M': 直接翻譯是'model'或者'map',即能夠通過'M'來看懂DOM的信息。

          DOM的作用: 一份文檔 =》一顆樹(數學或編程意義上的層級關系)

            通過樹的模型來描述文檔中各個節點之間的關系,所以也將文檔稱為 "節點樹"

        2、節點操作

          a、節點類型:

            在JS中使用 "節點.nodeType" 可以得到對應的數字,一般只得到到1(元素節點)、2(屬性節點)、3(文本節點)

              元素節點:<body>、<p>這樣的;

              屬性節點:<p title="我是屬性節點"> , 加粗位置即為一個屬性節點

              文本節點:<p>我是文本節點</p>元素節點中間包含的加粗文本這樣的;

            屬性節點總是被包含在元素節點中,文本總是在屬性節點下一級。每個節點都是一個對象!不信的typeof節點試試~

            還有許多不同類型的節點,詳細可參見: w3c NodeType詳解

          b、操作節點:(都是document特有的函數)

            getElementById(idname)? return一個結果--具有對應id的元素對象

            getElementsByTagName(tagname) return一個數組--document中所有元素為tagname的對象集合

            getElementsByClassName(classname) return一個數組--document中所有類名為classname的對象集合 (該方法為HTML5 DOM中新增)

              *這里有個小東西可以做的,因為HTML5 DOM才提供getElementsByClassName,所以可能有的瀏覽器用不了(。。但是我覺得沒有咯),所以可以手擼一個getElementsByClassName

               書里有教程和代碼,思路我描述一下:

?        3、屬性操作

         ?? getAttribute&setAttribute 獲取&修改節點屬性。

?        DOM的工作模式在此得以體現:

          先加載靜態html,然后用JS動態刷新。這樣做可以刷新頁面內容不需要在瀏覽器里刷新

?      思考:嗯這章沒啥好思考的,就是明白了DOM如何處理文檔&復習一下DOM提供的基礎操作方法~接下來4-6章的圖片庫練習

          

?  轉發請注明出處:http://www.cnblogs.com/qixi233/p/5525633.html

     

轉載于:https://www.cnblogs.com/qixi233/p/5525633.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395873.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395873.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395873.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

github開源大項目_GitHub剛剛發布了一份大規模的開源指南

github開源大項目Here are three links worth your time:這是三個值得您花費時間的鏈接&#xff1a; GitHub just released a massive guide to contributing to open source (5 to 60 minute read) GitHub剛剛發布了一份有關開源的大型指南( 閱讀5至60分鐘 ) A new way to br…

mysql中where條件判斷語句_MySQL Where 條件語句介紹和運算符小結

WHERE 條件有時候操作數據庫時&#xff0c;只操作一些有條件限制的數據&#xff0c;這時可以在SQL語句中添加WHERE子句來規定數據操作的條件。語法&#xff1a;SELECT column,… FROM tb_name WHERE definitionWHERE 關鍵字后面接有效的表達式(definition)&#xff0c;該表達式…

node webkit(nw.js) 設置自動更新

原理&#xff1a;把更新的文件放在服務器上&#xff0c;設置一個客戶端版本號&#xff0c;每次打開客戶端的時候&#xff0c;通過接口獲取服務器上的版本&#xff0c;如果高于本地的版本就下載服務器上的代碼&#xff0c;低于或等于就不更新 1 <script>2 var htt…

個人工作總結04(沖刺二)

今天是團隊第二次沖刺階段開始的第04天&#xff0c;我的工作總結如下&#xff1a; 一、昨天干了什么&#xff1f; 知識圈查詢功能 基本實現數據庫查詢 (未完成) 二、今天準備做什么&#xff1f; 知識圈查詢功能 基本實現數據庫查詢 三、遇到了什么困難&#xff1f; 數據庫訪問出…

mysql8.0版1130_navicat premium連接mysql 8.0報錯error 10061和error1130問題

昨天安裝了最新版的mysql navicat premium, 但沒來得及測試使用Navicat連接。今天上班時&#xff0c;使用Navicat premium連接mysql時&#xff0c;出現報錯ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061).起初以為是mysql沒有安裝成功&#…

freecodecamp_為什么您一定要參與freeCodeCamp的一個研究小組

freecodecampby Frederick Ige弗雷德里克艾格(Frederick Ige) 為什么您一定要參與freeCodeCamp的一個研究小組 (Why you should definitely get involved with one of freeCodeCamp’s study groups) I’m writing this article in hopes of convincing you to take advantage…

C語言運行時數據結構

段&#xff08;Segment&#xff09;&#xff1a; 對象文件/可執行文件&#xff1a; SVr4 UNIX上被稱為ELF&#xff08;起初"Extensible Linker Format", 現在"Executable and Linking Format"&#xff09;文件。BSD UNIX上被稱為a.out。這些格式都具有段的…

Java掛起線程

2019獨角獸企業重金招聘Python工程師標準>>> 不優雅的suspend import java.util.concurrent.TimeUnit;public class SuspendTest {static Object lock new Object();SuppressWarnings("deprecation")public static void main(String[] args) {Suspend s1…

Hibernate包及相關工具包下載地址

Hibernate包及相關工具包下載地址&#xff1a; http://prdownloads.sourceforge.net/hibernate/ 這里包含所有hibernate各個版本的包下載&#xff0c;且提供了 Middlegen Hibernate及hibernate-extensions包的下載。這兩個包是用于自動生成相就的JAVA和*.hb…

init(coder:)_2018年《 New Coder》調查:31,000人告訴我們他們如何學習編碼并在工作中獲得工作…

init(coder:)More than 31,000 people responded to our 2018 New Coder Survey, granting researchers an unprecedented glimpse into how adults are learning to code.超過31,000人對我們的2018年《新編碼器調查》做出了回應&#xff0c;使研究人員對成年人如何學習編碼有了…

Redis源碼解析:21sentinel(二)定期發送消息、檢測主觀下線

六&#xff1a;定時發送消息 哨兵每隔一段時間&#xff0c;會向其所監控的所有實例發送一些命令&#xff0c;用于獲取這些實例的狀態。這些命令包括&#xff1a;”PING”、”INFO”和”PUBLISH”。 “PING”命令&#xff0c;主要用于哨兵探測實例是否活著。如果對方超過一段時間…

[SDOI2018]原題識別

題解&#xff1a; 。。感覺挺煩得 而且我都沒有注意到樹隨機這件事情。。 就寫個30分的莫隊。。 #include <bits/stdc.h> using namespace std; #define rint register int #define IL inline #define rep(i,h,t) for (int ih;i<t;i) #define dep(i,t,h) for (int it;…

django app中擴展users表

app models中編寫新的User1 # _*_ coding:utf-8 _*_2 from __future__ import unicode_literals34 from django.db import models5 from django.contrib.auth.models import AbstractUser # 繼承user67 # Create your models here.8910 class UserProfile(AbstractUser):11 …

[bzoj2301] [HAOI2011]Problem b

Description 對于給出的n個詢問&#xff0c;每次求有多少個數對(x,y)&#xff0c;滿足a≤x≤b&#xff0c;c≤y≤d&#xff0c;且gcd(x,y) k&#xff0c;gcd(x,y)函數為x和y的最大公約數。 Input 第一行一個整數n&#xff0c;接下來n行每行五個整數&#xff0c;分別表示a、b、…

華為p4用鴻蒙系統嗎_華為p40pro是鴻蒙系統嗎

華為的鴻蒙OS是一款“面向未來”的操作系統&#xff0c;一款基于微內核的面向全場景的分布式操作系統&#xff0c;此前mate30系列并沒有搭載鴻蒙系統。那華為p40pro是鴻蒙系統嗎&#xff1f;品牌型號&#xff1a;華為p40pro華為p40pro是鴻蒙系統嗎&#xff1f;華為p40pro沒有搭…

設置MYSQL允許用IP訪問

mysql>use mysql;mysql>update user set host % where user root;mysql>flush privileges;mysql>select host,user from user where userroot;mysql>quit 轉載于:https://www.cnblogs.com/vipstone/p/5541619.html

Web優化 --利用css sprites降低圖片請求

sprites是鬼怪&#xff0c;小妖精&#xff0c;調皮鬼的意思&#xff0c;初聽這個高端洋氣的名字我被震懾住了&#xff0c;一步步掀開其面紗后發覺非常easy的東西。作用卻非常大 什么是CSS Sprites CSS Sprites是指把網頁中非常多小圖片&#xff08;非常多圖標文件&#xff09;做…

[BZOJ3203][SDOI2013]保護出題人(凸包+三分)

https://www.cnblogs.com/Skyminer/p/6435544.html 先不要急于轉化成幾何模型&#xff0c;先把式子化到底再對應到幾何圖形中去。 1 #include<cstdio>2 #include<algorithm>3 #define rep(i,l,r) for (int i(l); i<(r); i)4 typedef long long ll;5 using names…

輕松創建nodejs服務器(1):一個簡單nodejs服務器例子

這篇文章主要介紹了一個簡單nodejs服務器例子,本文實現了一個簡單的hello world例子,并展示如何運行這個服務器,需要的朋友可以參考下我們先來實現一個簡單的例子&#xff0c;hello world。 似乎每種語言教程的第一節都會講這個&#xff0c;我們也不例外。 首先我們先創建一個項…

誰是贏家_人工智能競賽正在進行中。 這是贏家。

誰是贏家by Terren Peterson由Terren Peterson 人工智能競賽正在進行中。 這是贏家。 (The race is on for artificial intelligence. Here’s who is winning.) On Saturday, Louisville, Kentucky hosted the 143rd running of the Kentucky Derby. It was a spectacle wher…