JS查找父节点、子节点、同级节点
访问父节点
node.parentNode;
该属性用于返回指定节点的父节点。除document外,所有节点都有父节点,document对象的父节点为null。
document.getElementById("myEle").parentNode;
部分浏览器还支持W3C标准外的parentElement属性,该属性只会返回类型为Element父节点。
访问子节点
node.childNodes;
该属性会返回子节点的Node对象集合(NodeList对象)。
document.body.childNodes;
部分浏览器还支持W3C标准外的childElementCount()属性,该属性会返回类型为Element子节点数量。
访问第一个/最后一个子节点
node.firstChild;
node.lastChild;
这两个属性分别用于访问第一个子节点和最后一个子节点。如果要访问的节点不存在,则返回null。
document.getElementById("myEle").lastChild;
部分浏览器还支持W3C标准外的firstElementChild和lastElementChild属性,这两个属性分别会返回类型为Element的第一个子节点和最后一个子节点。
访问之前/之后的同级节点:
node.previousSibling;
node.nextSibling;
这两个属性分别用于访问之前或之后的同级节点(兄弟节点)。具有相同父节点的节点为兄弟节点,之前或之后表示它们在文档中出现的顺序。
document.getElementById("myEle").previousSibling;
document.getElementById("myEle").nextSibling;
部分浏览器还支持W3C标准外的previousElementSibling和nextElementSibling属性,这两个属性分别会返回类型为Element的兄弟节点。
返回元素的根元素
node.ownerDocument;
ownerDocument属性分别用于返回元素的根节点,即:文档对象(Document)。通过这个属性,我们能够直接访问根元素而不必层层遍历。
document.getElementById("myEle").ownerDocument;
Javascript中使用typeof能得到的类型
typeof undefined // "undefined"
typeof 'abc' // "string"
typeof 123 // "number"
typeof true // "boolean"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
typeof console.log //"function"
typeof Symbol //"function"
JS中何时使用 === 何时使用 ==
if (obj.a == null) {
// 相当于 obj.a === null || obj.a === undefined,简写形式
// jquery推荐写法
}
其他地方 ===
JS中有哪些内置对象 —— 数据类型对象
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
JS变量按照存储方式区分有哪些类型,并描述其特点。
// 值类型
var a = 10
var b = a
a = 11
console.log(b) //10
// 引用类型
var obj1 = {x:100}
var obj2 = obj1
obj1.x = 200
console.log(obj2.x) // 200
如何理解JSON
JSON是一个JS对象而已
JSON.stringfy({a:10,b:20})
JSON.parse('{"a":10,"b":20}')
原型,几种原型模式,弊利
局部作用域,变量生命提前
箭头函数和普通函数有什么不同
类数组和数组的区别
Map,Set,Weekmap, WeekSet
JS闭包
知识点
构造函数
// 构造函数首字母大写
functtion Foo (name, age) {
this.name = name
this.age = age
this.class = 'class-1'
// return this // 默认有这一行
}
var f = new Foo('zhangsan',20)
var f1 = new Foo('lisi',21)
构造函数-扩展
var a = {}
其实是var a = new Object()
的语法糖var a = []
其实是var a = new Array()
的语法糖function Foo(){...}
其实是var Foo = new Function(...)
- 使用
instanceof
判断一个函数是否为一个变量的构造函数
原型规则和示例
原型链
instanceof
-
如何准确判断一个变量是数组类型
-
写一个原型链继承的例子
-
描述new一个对象的过程