DOM 几种操作
- dom.js
事件监听、事件注销、一次执行、是否有XXX class 、增加class、移除某class、获取style、设置style、是否滚动、获取滚动的节点、某元素是否包含在某容器里。
其中还包含两个基础函数:
trim(去前后空格),camelCase(驼峰)
自定义指令文件夹
- directives
双击指令、滚动指令
类型判断
- types.js
是否Sting、是否Object、是否是标签、是否是Function、是否Undefined、是否Defined
这里判断是Undefined ,用的是
return val === void 0;
原来void是操作符,void 运算符通常只用于获取 undefined的原始值,一般使用void(0)(等同于void 0)[https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void]
export function isString(obj) {
return Object.prototype.toString.call(obj) === '[object String]';
}
export function isObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
}
通过内部属性值 [[Class]] 去判断
虚拟DOM判断
return node !== null && typeof node === 'object' && hasOwn(node, 'componentOptions');
就是看这个节点是否有componentOptions属性