JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function
html +css 静态页面
js 动态 交互
原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向的时候换一个颜色,就是一个修改样式的工具.
- 编写JS的流程
- 布局:HTML+CSS
- 事件:确定用户做哪些操作(产品设计)
- 编写JS:在事件中,用JS来修改页面元素的样式(外加属性:确定要修改哪些属性)
- 什么是事件
一个完整的事件= <在某个作用域 事件声明='函数动作'> </>
作用域: 作用的标签
事件声明:一个用户操作 例如: 鼠标的进出onmouseover, onmouseout,
函数动作: 一个封装好可以理解为比较复杂的动作.
事件声明也是这个作用域的某个属性, 函数就是这个属性作出的一系列动作

- 函数的规范位置与封装
格式:
<script>
function+名称+()
{动作1+动作2+动作3+……}
</script>
位置: <script>: Js 代码标签, 函数一般放在head里面.
封装:
函数: fuction+名称+()
- 在标签中放置未封装的代码会造成阅读者视觉混乱, 把整段整段的代码封装成函数, 再在标签中调用函数. 文挡会变得整洁.
- 当多个标签重复调用时同一个函数时,不用重复把整段代码再敲一遍, 只要调用函数的名字就可以了.
变量:var + 名字+()
变量就是把一些结构复杂的对象赋值到一个简单的名称, 当调用的时候就会减少代码量.
|
<script> |
|
function toGreen() |
|
{ |
|
var oDiv=document.getElementById('div1'); |
|
|
|
oDiv.style.width='300px'; 动作2/3改变div1的宽度 |
|
oDiv.style.height='300px'; …….高度 |
|
oDiv.style.background='green'; 动作4, 背景变成绿色 |
|
} |
|
</script> |
注, 如果在script内有暂不运行的语句可以//注释掉
函数动作分层结构详解及Document.getElementById 释义: (重点)
对象属性分为很多层, 用'.' 隔开每一层.后面的是前面的子属性(属性), 可以理解为汉语的'的'
实际上每个函数动作都是被分割开来的, 所以你们看到的是一节一节的,实际上举例子
oDiv.style.width='300px'; 这个动作, 是属于:
Document.getElementById('div1').style.width = '300px' 而这一整段又属于:
Window.Document.getElementById('div1').style.width = '300px'
|
这一整条就是一条完整的事件动作, |
|
window是上层对象 |
|
document是二层对象 |
|
<节点+属性>节点<节点+属性>节点<节点+属性>节点<节点+属性>节点 |
|
getElementById是三层对象(方法) |
|
style四层对象 (二层属性) |
|
height 五层对象 (三层属性) |
window 省略是因为,我们在html内操作, 默认是属于document
而因为我们定义了oDiv, 所以在最终的表达上变成了oDiv.style.width='300px';的形式.

至于Document是一个JS操作文档层面的方法(动作的方法), <html>文档的基本节点都要受它控制, 这些节点包括文本节点, 标签(属性)节点 . 所有尖括号外的范围都成为文本节点, 尖括号里面的脚属性节点. 如果我们不说是什么节点一般默认指的是尖括号里面的.
DOM(Document对象): http://www.w3school.com.cn/jsref/dom_obj_document.asp

(方法就是我们上面描述的动作)
- 自定义标签 与Javascript函数动作
|
既然我们可以定义出toGreen这个复合的动作, 那就可以将这个函数动作嵌入到标签的属性当中

<div id class type display…… > </div>
当'=' 等号还没出现的时候, 这些id等这些属性都是隐藏的, 或者赋予默认的值.
一旦'='出现, 这个事件属性就会被赋值, 也就是发生变化. 最终这个赋值会指向一个数据.
而不同的事件属性可能会被赋予不同的值, 浅层属性id 可能会指向一个字符串. 有些会指向一个javascrip或者css style 而最终指向的叫数据(数据类型).
- CSS 与 JavaScript 的数据类型区别
css的数据类型 (而这些全部的类型都是字符串,或者说是text类型, 他们是经过封装的)
文本(Textual):
- 关键词(Keywords): <ident>
- 自定义关键词:<custom-ident>
- 引用字符串: <string>
- 资源定位器:<url>
基本数字(Basic Numeric)
- 整数(Integers):<integer>
- 实数:<number>
- 比率:<ratio>
- 百分比:<percentage>
维度(Dimensions)
- 距离(Distances):<length>
- 角度:<angle>
- 延迟时间(Duration):<duration>
- 频率(Frequency):<frequency>
- 分辨率(Resolution):<resolution>
其它(Other)
- 颜色:<color>
- 图片:<image>
- 位置:<position>
而javascrip多种多样的, 例如字符串、数字、布尔、数组、对象、Null、Undefined 这些是纯粹的数据类型, 没有经过封装.
说到这里, 闲聊一下, javascript的难度和css对比, 没封装过的肯定要难一个数量级. css 2天就入门了, js可能要10天…
<html>
<head>
<meta
charset="utf-8"><title>无标题文档</title>
<style>
#div1 {
width:200px;
height:200px;
background:red;
}
</style>
<script>
function toGreen()
{
var oDiv=document.getElementById('div1');
oDiv.style.width='300px';
oDiv.style.height='300px';
oDiv.style.background='green';
}
function toRed()
{
var oDiv=document.getElementById('div1');
oDiv.style.width='200px';
oDiv.style.height='200px';
oDiv.style.background='red';
}
</script>
</head>
<body>
<div
id="div1" onmouseover="toGreen()" onmouseout="toRed()"></div>
</body>
</html>
JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function的更多相关文章
- Nuxt.js学习(二) --- Nuxt目录结构详解、Nuxt常用配置项、Nuxt路由配置和参数传递
[TOC] 1.Nuxt目录结构详解 Nuxt项目文件目录结构 |-- .nuxt // Nuxt自动生成,临时的用于编辑的文件,build |-- assets // 用于组织未编译的静态资源入LE ...
- JS中的event 对象详解
JS中的event 对象详解 JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...
- web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 规范 HTML结构详解 {前端之前端初识}
前端之前端初识 前端初识 本节目录 一 web标准 二 浏览器介绍 三 开发工具介绍 四 HTML介绍 五 HTML颜色介绍 六 规范 七 HTML结构详解 一 web标准 web准备介绍: 1. ...
- js中中括号,大括号使用详解
js中中括号,大括号使用详解 一.总结 一句话总结:{ } 是一个对象,[ ] 是一个数组 1.js大括号{}表示什么意思? 对象 { } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或 ...
- PHP函数call_user_func和call_user_func_array详解
今天在群里面,有个叫lewis的在问call_user_func_array的用法,因为之前一直没有用过,也不能说什么,于是看一下手册,发现是这么写的: call_user_func_array (P ...
- PHP扩展代码结构详解
PHP扩展代码结构详解: 这个是继:使用ext_skel和phpize构建php5扩展 内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/manual/ ...
- ext.js的mvc开发模式详解
ext.js的mvc开发模式详解和环境配置 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开 ...
- vue 文件目录结构详解
vue 文件目录结构详解 本篇文章主要介绍了vue 文件目录结构详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 项目简介 基于 vue.js 的前端开发环境,用于前后 ...
- 微信JS接口汇总及使用详解
这篇文章主要介绍了微信JS接口汇总及使用详解,十分的全面.详尽,包含分享到朋友圈,分享给朋友,分享到QQ,拍照或从手机相册中选图,识别音频并返回识别结果,使用微信内置地图查看位置等接口,有需要的小伙伴 ...
随机推荐
- Tutorial 01 4,5题
.任务四: 程序设计思想:利用Math.random()产生一个char类型的字符,再利用for循环是他们相加,最后将他们放在一个消息框中输出. 程序流程图: 源程序: p ...
- 鼠标点击按钮控制图片移动或者键盘控制图片移动(解决问题:parseInt失效问题,用Number)
在测试用鼠标点击按钮,使图片左右上下移动: 效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> ...
- KVO 使用及原理
KVO的基本原理大概是这样的 当一个对象被观察时, 系统会新建一个子类NSNotifying_A ,在子类中重写了对象被观察属性的 set方法, 并且改变了该对象的 isa 指针的指向(指向了新 ...
- flask_restful(转载)
flask插件系列之flask_restful设计API 前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统 ...
- SQL数据库Truncate的相关用法
数据库中 Truncate的用法:这个是删除表中的所有数据语法是 Truncate Table tablename他与delete的区别在于1 delete 可以有条件的删除 而truncate 是删 ...
- Flask基础应用
一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 Django: 优点: 大而全,组件非常全面. 缺点: 太大,加载太大,浪费资源. Flask: 优点: ...
- 矩阵快速幂--51nod-1242斐波那契数列的第N项
斐波那契额数列的第N项 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, ...
- Watchbog挖矿病毒程序排查过程
第1章 情况 1)服务器收到cpu报警,cpu被占用达到100%,登录服务器查看,发现cpu被一个watchbog的进程占满了,如下图所示: 2)并且无论如何都杀不掉,用kill杀掉后,其还是会隔一会 ...
- Shiro入门资源整理
学习一个框架,查阅权威有效的资料能够事半功倍,本文收集笔者学习此框架中帮助很大的文档,希望对大家有所帮助. 对于文档类的,强烈建议看官方文档,而不是百度出来的经过网友加工或者搬运过来的资料!! shi ...
- 在win7系统设置SQL Server2014 express为远程数据
如何设置远程访问到SQLserver服务器(局域网内的设置) 1.首先,使用Windows+R键 输入services.msc 打开本地服务. *说明:①MSSQLSERVER是正式使用的SQL创建实 ...