JS
一门独立的脚本语言,没有编译过程,解释运行。
特点:
脚本语言,没有编译过程,基于对象,弱类型
交互性 ,安全性 ,跨平台性
JS和HTML的结合:
方式一:在HTML中的head标签中写
基本数据类型
字符串、数值类型、布尔类型、undefined、null
undefined类型:当一个引用被定义却未被赋值时,默认的取值为undefined。
null类型:表示还没有存在的对象,通常在方法中需要返回一个对象,而这个对象不存在时,返回null。
复杂数据类型
对象、数组、函数
JS语法:
运算符: typeof运算符:判断引用的类型
语句:
if语句:if(3){}
var i = 3;
if(i = 4){xxxx}
switch case
while、dowhile、for – 不支持增强for循环
函数:
方法1:普通方法定义函数
function fun1(参数列表){
函数体
}
在需要调用时通过 fun1(实参) 方式调用。
方法2:动态函数
var fun2 = new Function("a","b","方法体");
fun2("x","y");
var fun2x = fun1();
fun2x("t","u");
方法3:匿名函数定义
var fun3 = function(参数列表){
方法体
}
fun3();
数组:
var arr = new Array();//定义一个长度为0的空数组
var arr = new Array(3);//定义一个长度为3的数组
var arr = new Array(1,2,3,6,8);//定义具有指定初始值的数组
var arr = [2,3,5,7];//数组直接量定义数组
JS的内置对象:
String、Boolean、Number、Array、Function、Math、Date、Global
Function – 函数类型 的包装对象
Math – 数据对象,封装了很多数学常量和数学方法
Date – 日期时间对象,封装了很多和日期实现相关的方法
Global – 全局对象。js中有一些方法和属性经常使用,但归到哪个对象上都不合适,所以js中有一个Global对象整合了这些方法和属性。Global中定义的方法和属性特点是属于全局,可以直接使用。
自定义对象:
js中的对象可以动态增加/删除属性和函数。 – js中对象的本质就是用大括号起来的键值的集合,本质上是一段字符串,优点类似于java中的map。
方法一:构造函数创建对象1
function Person(){}
var p = new Person();
p.name = "zhangfei";
p.age = 19;
p.say = function(){alert(name+"say.....")};
alert(p.name);
alert(p["age"]);
p.say();
方法二:构造函数构造对象2
function Person(name,age){
this.name = name;
this.age = age;
this.say = function(){alert(this.name+"say....")}
}
var p = new Person("guanyu",20);
alert(p.name);
alert(p["age"]);
p.say();
方法三:对象直接量定义对象
var p = {name:"liubei",age:19,sleep:function(){alert(this.name+"sleep.....")}};
alert(p.name);
alert(p["name"]);
p.sleep();
DHTML–动态HTML
DHTML将浏览器加载HTML文档中的所有的内容都当做JS对象来处理。
最终形成了一棵由JS对象组成的对象树。
通过操作代表HTML元素的js对象来操作HTML中的元素
通过操作JS对象组成树来操作HTML文档的结构
从而实现HTML和JS的结果,实现了可以通过JS来操作HTML。
DHTML由BOM由BOM(Browser Object Model)和DOM(Document Objecect Model)两部分组成。
1.BOM -- 浏览器对象模型
window:代表一个浏览器窗口的对象
window对象:
重要属性:
closed -- 表示引用窗口是否关闭 true/false
重要事件:
onblur -- 当对象失去焦点时触发
onfocus -- 当对象获取焦点时触发
onload -- 在页面加载完成后触发
onclick -- 当对象被点击时触发
重要方法:
alert -- 消息对话框
location
history
navigator
document
location
!!!href 获取或设置地址栏上的地址。通过此属性js可以控制浏览器访问一个新的地址。
navigaotr
history
length
back()
forward()
go()
2.DOM -- 文档对象模型
document
(1)获取元素
document.getElementById() -- 通过id来获取指定元素
document.getElementsByName() -- 通过name来获取指定元素组成的集合数组
obj.getElementsByTagName() -- 通过标签名来获取指定元素组成的集合数组
obj.value -- 获取或设置输入控件的value属性的值
obj.innerHTML -- 获取或设置元素内部的html
注意:IE10以下的浏览器中, 不支持Select和table上的innerHTML属性
obj.innerText -- 获取或设置元素内部的文本。 注意:部分浏览器不支持该属性
(2)增删改文档中的元素
document.createElement() -- 创建节点
appendChild()-- 添加子节点
insertBefore() -- 插入节点
removeChild() -- 删除子节点
replaceChild() -- 替换子节点
parentNode属性 -- 获取父节点
cloneNode() -- 克隆当前元素
document.body属性 -- 获取html文档中的body元素
className -- 设置或获取对象的类。
display -- 设置或获取对象是否显示。
checked -- 设置或获取复选框或单选钮的状态