JS+DOM conclusions

Javascript + DOM lessions from Codecademy

practice link: http://feraljas.gitee.io/piano-plus/

Basic JS+DOM:

理解如何交互,何为interaction

Building interactive website with JS

<style> used to embed CSS codes

<script> used to embed JS codes 使HTML文件知道如何加载执行JS

Linking code used: Separation of Concerns (SoC)

分离代码,不同模块放置不同文件

script顺序执行

加入defer属性则等带HTML parse完毕后执行

用处是需要其他脚本依赖的脚本放到后面执行

加入async属性则等下载完成后直接执行不等待

用处是给其他脚本提供依赖的脚本先执行

位置:<head>中且利用defer和async属性

DOM:Document Object Model

The DOM is a logical tree-like Model that organizes a web page’s HTML Document as an Object.

关键在于理解树结构



Tips in JS:

JS中可以利用单引号和双引号来声明

串里单引号多用双引号包裹,双引号多用单引号包裹

为的是少用\”以及\’ 这类escape sequences

String一旦创建assign一个value,那么里面的字符是只读属性不可修改

要改只能重新assign一个新值

js数组可进行栈操作和队列操作

push pop shift unshift

js中的全局变量:global scope

相对于一个function,在外的称全局变量

而js中默认不带var声明而直接使用的变量就是全局变量

js中的局部变量:local scope



Link between HTML and JS

理解顶点的document,作为js的关键字,是js获取html节点信息的入口

js通过document进入DOM树,再依次从中操作节点

总体来看,HTML通过script标签相当于授权js操作,js通过document顶节点进入HTML文件进行操作

一些较为基础的节点增删改查:均利用document入口获取

getElementById()

querySelector()

.innerHTML

.id

等等直接用点方法操作值

监听事件的函数是小写的,非驼峰的onclick等,要注意

有关parentNode和getChild()的使用:非常类似mybatis中的association和collection

父节点永远只有一个,而子节点可能有多个,所以获取的getChild()是一个list

而.parentNode直接返回的是HTMLelement类型的父节点



event handler & event listener functions:

事件处理以及监听的机制是为了代码可读性以及复用性

事件监听函数写法:1.事件类型(string) 2.事件处理函数

eventTarget.addEventListener(‘click‘, eventHandlerFunction);

对应有移除事件监听,同样接受:1.事件类型(string) 2.事件处理函数

eventTarget.removeEventListener(‘click‘, eventHandlerFunction);

几种添加事件监听的方法:

1.target.onclick/onmouseup等,应用于简单处理

2.eventTarget.addEventListener

第二种可以为单一事件添加多个事件处理函数,用于较大的处理函数,一切为了可读性复用性

更加细致的鼠标事件:

mouseup,mousedown,mouseover,mouseout

更加细致的按键事件:

keydown,keyup

任意按键除去功能键都会出发

获取按键的值用

quiz report:

事件不一定是用户触发,浏览器也可以进行操作

JavaScript interprets events as event object that store event information residing in properties and methods — that’s why you register event handler functions as properties or inside event listener methods.

The event target is the DOM element that the event fires on, which does not need to be the element being modified.

Events are user interactions and browser manipulations on the document object model.



innerText和innerHTML的区别:

二者的接口都不一样

HTMLElement.innerText

Element.innerHTML

解析与不解析的区别

JSON类的parse和stringify方法,js对象和JSON字符串互相转化



Web Storage 包含如下两种机制:

  • sessionStorage 为每一个给定的源(given origin)维持一个独立的存储区域,该存储区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。
  • localStorage 同样的功能,但是在浏览器关闭,然后重新打开后数据仍然存在。

这两种机制是通过 Window.sessionStorage 和 Window.localStorage 属性使用(更确切的说,在支持的浏览器中 Window 对象实现了 WindowLocalStorage 和 WindowSessionStorage 对象并挂在其 localStorage 和 sessionStorage 属性下)—— 调用其中任一对象会创建 Storage 对象,通过 Storage 对象,可以设置、获取和移除数据项。对于每个源(origin)sessionStorage 和 localStorage 使用不同的 Storage 对象——独立运行和控制

原文地址:https://www.cnblogs.com/exigeslover/p/12149185.html

时间: 2024-10-05 18:52:26

JS+DOM conclusions的相关文章

JS DOM编程艺术的学习—— JS学习笔记2015-7-5(第76天)

由于看高程3卡住了,所以现在在学习JS DOM编程艺术来巩固基础: 一.在看JS DOM 编程艺术的时候,有个作者提到的方法很实用, 就是在JS中变量和函数的命名方法:  变量的命名方法为使用下划线,比如: var temp_color = ['red','blue']; 函数就使用驼峰法,比如: function current_date(){}; 这样的习惯可以帮助理解,提高可读性,在理解变量和函数名的时候就很方便了: 二.还有个收获就是关于“对象”的理解又加深了 之前对于什么对象的属性,对

js DOM 扩展

1. 选择符API querySelector()          返回匹配的第一个元素,接收一个 CSS 选择符.没有找到返回 null. querySelectorAll()      返回所有匹配的一个 NodeList, 这是一个快照不会动态改变.接收一个 CSS 选择符. mathesSelecttor()      如果调用元素与该选择符匹配,返回true, 否则返回 false. 接收一个 CSS 选择符. 2. 与类相关的扩充 getElementsByClassName()

JS DOM编程艺术——JS图片库—— JS学习笔记2015-7-8(第79天)

DOM是一种适用于多种环境和多种程序设计语言的通用型API. 如果想要把本书(JS DOM编程艺术)学到的DOM技巧运用在web浏览器以外的应用环境里,严格遵守“第1级DOM”能够让你避免与兼容性有关的任何问题: tips:setAttribute是第1级DOM; 图片切换初级js: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/

JS DOM(文档对象模型)与BOM(浏览器对象模型)

在JS中,对DOM(Document Object Model)对象和BOM(Browser Object Model )对象的操作是非常重要的内容.DOM主要包括HTML文档的属性和方法,像对HTML节点的操作,CSS的操作和HTML事件的监听和处理.BOM不要包括浏览器相关的一些属性和方法. DOM知识点1.改变页面的元素和属性a.获取元素的方法:document.getElementById()document.getElementsByTagName()document.getEleme

JS DOM 编程艺术 随笔

DOM 最大的作用就是将整个文档通过节点树来展现.通过类似方法可以获取特定节点,并绑定js方法实现与人的交互. 1.通过dom方法,获取页面的元素(getElementsByTagName/id,通过class(getAttribute))2.获取元素之后,为他们绑定行为(点击/其他)的处理事件3.最后把所有函数绑定到window.onload()函数上面去 onload = function(){function1function2...} plus 小技巧: <a onclick=>函数

js Dom 编程

1. 节点及其类型:  1). 元素节点  2). 属性节点: 元素的属性, 可以直接通过属性的方式来操作.  3). 文本节点: 是元素节点的子节点, 其内容为文本.   2. 在 html 文档的什么位置编写 js 代码?    0). 直接在 html 页面中书写代码.   <button id="button" onclick="alert('hello world');">Click Me!</button>   缺点:    ①.

JS &amp; DOM 对象

22:36 2013/6/4 详情参照W3C文档标准 Browser 对象(顶层对象) DOM Window DOM Navigator DOM Screen DOM History DOM Location HTML DOM 对象 DOM Document DOM Anchor DOM Area DOM Base DOM Body DOM Button DOM Canvas DOM Event DOM Form DOM Frame DOM Frameset DOM IFrame DOM Ima

JS Dom节点操作demo!

通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ return document.createElement(tagName); } var table = c('table'); var tbody = c('tbody'); table.appendChild(tbody); for(var i = 0;i<4;i++){ var tr = c(

关于React库的纯JS DOM的单向可视化?

[技术讨论]React库据说是用JS模拟了DOM,其可视化是单向流向的,所以性能比DOM要好(DOM的getComputedStyle或者会触发reflow的style获取?),但这不是意味着这个JS DOM需要实现所有的影响layout的CSS属性设置操作? 如果真的实现了的话,岂不是JS完全重新实现了WebCore layout引擎了 其实DOM的本质也是单向的,并不存在一个单独的UI反馈设备,当设置了元素的CSS属性并经过layout排版后,元素的大小位置都是根据一个模型计算出来的,只不过