W3C HTML DOM标准
1.整个文档是一个文档节点
2.每个HTML元素是一个元素节点
3.HTML元素内文本是文本节点
4.HTML属性是属性节点
使用DOM树能干什么
1.JavaScript 能够改变页面中的所有HTML元素
2.JavaScript 能够改变页面中的所有HTML属性
3.JavaScript 能够改变页面中的所有CSS样式
4.JavaScript 能对页面中所有事件作出反应
简介
JavaScript
是由美国网景通信公司开发的一种跨平台网页,面向对象object-oriented
网页脚本语言
JavaScript
代码可以直接嵌入HTML文件中,随着网页一起传送到客户端浏览器,然后通过浏览器来解释执行
JS是前端开发的的核心语言,基于事件和驱动的解释性,松散型语言
JS的解释性,松散型理解?
1. 解释性:边执行边解释,在浏览器环境下运行
2. 松散型:定义变量的时候,不需要强类型,直接弱类型,定义的变量不需要声明类型
特点
1. 脚本编写语言
2. 基于对象
可以被看作是一种面向对象的语言,这意味着JavaScript能运用其已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用
3. 跨平台性
4. 事件驱动
5. 简单弱类型
JavaScript是一种基于Java基本语句和控制流之上的简单而紧凑的设计
变量类型是采用弱类型,并未使用严格的数据类型
6. 解释性执行
不像这些语言需要先编译,而是在程序运行过程中被逐行地解释
作用
1. 实现动态页面(将动态内容添加到页面中)
2. 数据验证
3. 响应事件
4. 可以检测浏览器
事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| onclick 单击事件
ondblclick 双击事件
onmouseout 鼠标移出
onmouseover 鼠标移入
onscroll 元素滚动事件
onmousewheel 鼠标轮滚动事件
|
语法
几种常见弹窗方式
alert(""); 提示框带确认按钮
输出方式: document.write("");
confirm("")弹出个确认框,待确认的取消按钮
prompt('显示信息内容'); 弹出个输入框, 让你输入东西
书写格式
1
| var 自定义变量名 = document.getElementById("名字");
|
1 2 3 4 5 6 7
| var
document
function 方法名(){ 自定义变量名.属性名="属性值"; }
|
1 2 3
| 自定义变量名.事件名=function(){ 自定义变量名.属性名=""; }
|
改HTML最简单的方法是使用innerHTML
属性
1 2 3 4 5 6 7
| 标签的文字内容用innerHTML修改
document.getElementById("").innerHTML="内容";
输入框的值用value修改
document.getElementById("").value="内容";
|
改HTML样式使用
1 2
| document.getElementByid("").style.属性="值";
|
变量
储存数据的容器
例:
var x = 1
后台输出
1 2 3 4 5 6 7 8 9
| console.log(typeof)
typeof 查看变量类型
typeof:运算符 判断数据类型
声明未赋值 变量返回Underfind
|
获取变量值
1 2 3 4 5
| 变量名.value
b.onclick = function(){ p.innerHTML = a.value; }
|
检测类型
1 2 3
| typef 变量名
方便用法:alert(typef 变量名)
|
元素属性和属性值在JS获取中运用(动态获取元素属性值)
全局变量
声明在函数之外的变量
声明变量时没有var关键字时就默认为全局变量
局部变量
声明在函数体内的变量
只能在当前函数体内访问
声明变量时没有var关键字时就默认为全局变量
JS基本数据类型
1. number 数值类型
包括整数和浮点数
2. string 字符串类型
用单引号或双引号括起来的零个或多个单一的字符所组成
3. boollean 布尔类型
取值为true 和 false
4. underfined 未定义值
5. null 空类型
null取值只有null
字符串转换数字
字符串汉字开头和字母开头不能转
1 2
| parseInt()仅能返回整数 直接截取整数部分
|
1 2
| parseFloat() 字符串转浮点型 只取到第一个小数点
|
数组的书写格式
1 2 3 4 5 6 7
| var 数组名 = new Array(元素名,元素名,元素名,元素名)
var 数组名 = [元素名,元素名,元素名,元素名]
|
class搭配数组使用
1 2 3 4
| var 变量名 = document.getElementsByClassName("类名") 变量名[下标].属性 = "属性值"
|
循环
for循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
for(var 变量名 = 赋值 ; 变量名<数组名.length ; 变量名++){ 数组名[变量名].事件名 = function(){
} }
数组名
变量名
this.style.color
|
while循环—等待更新
判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| if(判断条件){
} else{
}
------
if(){
}else if(){
} else{
}
|
运算符
算术运算符
1 2 3 4 5 6 7 8 9
| + - * / // 除 % // 取模取余 ++ // 自增运算符
-- // 自减运算符
|
关系运算符
1 2 3 4 5 6 7 8 9
| > < >= <= = == != === !==
|
逻辑运算符
1 2 3 4 5 6 7 8 9
|
&& 逻辑与运算
|| 逻辑与运算
! 逻辑非运算
|
赋值运算符
1 2 3 4 5 6 7 8 9 10 11 12 13
| = 赋值
+=
-=
*=
/=
%=
|
自增&自减
++在后例子:
1 2 3 4 5 6 7
| 变量设为i
var i = 1; var a = i++; alert(a) alert(i)
|
++在前例子
1 2 3 4 5 6 7 8
| 变量设为i
var i = 1; var a = ++i; alert(a) alert(i)
|
–在后例子:
1 2 3 4 5 6 7
| 变量设为i
var i = 4; var a = i--; alert(a) alert(i)
|
–在前例子:
1 2 3 4 5 6 7
| 变量设为i
var i = 4; var a = --i; alert(a) alert(i)
|
定时器
1 2 3 4
| setInterval(变量名, 时间) 1000 = 1s
|
滚动事件
1 2 3 4 5 6
| document.body.scrollTop
document.documentElement.scrollTop;
|
保留两位小数
过渡效果
功能效果实现
生成随机四位字符串
1 2 3 4 5 6
| Math.random().toString(36).slice(-8)
|