ECMA Script:JS的基本语法
变量
数据类型
流程控制语句
函数
对象:
Math
Date
String
Number
Boolean——true, false(小写)
Array []
Object
s = {name: "alex"}
typeof s --> "object"
记住是一个对象, 不是字典,而且前一个键不用加引号,JS中就是一个属性
JS的序列化与反序列化:
json数据:
1. 一种轻量级的标准数据的交换格式
2. 先将数据序列化成字符串格式
3. 然后不同的语言使用不同的方法,即反序列化该字符串
4. JS中
s = "[12, 3, 45]"
# 反序列化
l = JSON.parse(s);
# 序列化
s = {name: "alex"}; // 这是一个对象
l = JSON.stringfy(s); --> "{"name": "alex"}" // 注意:在JS中,里面的数据一定是双引号
BOM:browser object model(JS对象控制浏览器)
window.alert(); // 警告框,只有一个确定按钮
window.confirm(); // 提示框,有确定按钮和取消按钮,有返回值,确定按钮返回true,取消按钮返回false
let state = window.confirm("是否继续?");
console.log(state);
if (state) {
// 继续逻辑
} else {
// 取消逻辑
}
let result = window.prompt("请输入一个数字:"); // 输入框,有返回值
console.log(result);
DOM:document object model(JS对象控制文档)
1. 查找标签
直接查找:
document.getElementById("idname") // 返回DOM对象
document.getElementsByTagName("tagname") // 返回DOM对象数组
document.getElementsByName("name") // 返回DOM对象数组
document.getElementsByClassName("classname") // 返回DOM对象数组
小技巧:ById的是getElement, 而其他的都是getElements!
因此只要是获取getElements对应元素的一定要加[0]
导航查找:
依赖一个或多个标签找到自己的父子兄弟标签
.parentElement // 父节点标签元素
.chlidren // 字节点标签元素
.fristElementChild // 第一个子标签元素
.lastElementChild // 最后一个子标签元素
.nextElementSibling // 下一个兄弟标签元素
.previousElementSibling // 上一个兄弟标签元素
2. 操作标签
获取文本节点的值:innerText innerHTML
div.innerHTML="alex"
"alex"
div.innerText="yuan" // 这个一般没必要用
"yuan"
div.innerHTML="<a href=''>click</a>"
"<a href=''>click</a>"
div.innerText="<a href=''>click</a>"
"<a href=''>click</a>"
操作属性
ele=document.getElementById("i1")
<div class="c1" id="i1" alex="xxx">alex</div>
ele.getAttribute("class")
"c1"
ele.getAttribute("alex")
"xxx"
ele.setAttribute("class","c2")
undefined
ele.removeAttribute("alex")
undefined
class属性操作
ele.classList
DOMTokenList(3) ["c1", "c2", "c3", value: "c1 c2 c3"]
ele.classList.remove("c3")
undefined
ele.classList.remove("c1")
undefined
ele.classList.remove("c2")
undefined
ele.classList.add("c1")
undefined
ele.classList.add("c2")
undefined
ele.classList.add("c3")
undefined
ele.classList.add("c3")
undefined
ele.classList.add("c3")
undefined
ele.classList.remove("c2")
undefined
ele.classList.remove("c2")
value属性操作(只用在以下三种标签内)
input
textarea
select
节点的增删改查(比如用在onchange事件中,选择省份及对应的城市,二级联动) *****
创建节点(dom)
let p = document.createElement("p");
p.innerHTML="abc";
p.setAttribute("class", "c1");
添加节点
父节点.appendChild(子节点);
删除节点
父节点.removeChile(子节点);
替换节点
父节点.replaceChile(新节点, 旧节点);