JavaScript中易混淆的DOM属性及方法对比

更新日期: 2018-12-20阅读: 2.7k标签: 混淆

ParentNode.children VS Node.prototype.childNodes

ParentNode.children:该属性继承自ParentNode,返回值是一个htmlCollection实例,成员是当前节点的所有元素子节点,该属性只读,且该属性是动态集合。

Node.prototype.childNodes:该属性继承自Node,返回值是一个NodeList实例,成员是当前节点的所有子节点(包括但不限于元素子节点),该属性也是个动态集合。


ParentNode.firstElementChild VS Node.prototype.firstChild

ParentNode.firstElementChild:该属性返回当前节点的第一个元素子节点,如果没有任何元素子节点,则返回null。

Node.prototype.firstChild:该属性返回当前节点的第一个子节点(包括但不限于元素子节点),如果没有任何子节点则返回null。


ParentNode.lastElementChild VS Node.prototype.lastChild

同上。


ChildNode.remove() VS Node.prototype.removeChild()

ChildNode.remove():该方法用于从父节点中移除当前节点,没有返回值。

el.remove();    // 从dom中移除了el节点

Node.prototype.removeChild():该方法接受一个子节点作为参数,用于从当前节点移除该子节点,返回值是被移除的子节点。需要注意的是,被移除的节点依然存在于内存之中,但不再是DOM的一部分,所以,一个节点被移除以后,可以复用。

document.body.removeChild(el);  // 从DOM中移除了el节点


ChildNode.before() VS Node.prototype.insertBefore()

ChildNode.before():该方法用于在当前节点的前面,插入一个或多个同级节点,插入完成后,新节点与当前节点拥有相同的父节点。该方法无返回值。

var p = document.createElement('p');
var p1 = document.createElement('p');

// 插入元素节点
el.before(p);

// 插入文本节点
el.before('Hello');

// 插入多个元素节点
el.before(p, p1);

// 插入元素节点和文本节点
el.before(p, 'Hello');

Node.prototype.insertBefore():该方法接受两个参数,第一个参数newNode,第二个参数referenceNode,用于将newNode插入到referenceNode前面,返回值是插入的新节点newNode。注意,newNode的类型必须是Node,也就是说该方法不能用于插入文本节点。当referenceNode不是当前节点的子节点是将会报错。


ChildNode.replaceWith() VS Node.prototype.replaceChild()

ChildNode.replaceWith():该方法接受一个参数newNode,当前节点江北newNode节点替换。该函数无返回值。

var span = document.createElement('span');
el.replaceWith(span);   // el将被span节点替换,但el仍在内存中

Node.prototype.replaceChild():该方法接受两个参数:newChild和oldChild。oldChild将会被newChild替换,返回值是oldChild。


来自:https://www.cnblogs.com/zhuangshq/archive/2018/12/20/10150294.html


链接: https://fly63.com/article/detial/1657

js混淆加密,通过混淆Js代码让别人(很难)无法还原

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对于一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。

js 变量声明易混淆的几点知识

JavaScript 学习过程中遇到的一些容易混淆的地方:变量提升、函数的作用域内赋值、函数内 形参、变量、函数 同名的问题...

Javascript混淆与解混淆的那些事儿

像软件加密与解密一样,javascript的混淆与解混淆同属于同一个范畴。道高一尺,魔高一丈。没有永恒的黑,也没有永恒的白。一切都是资本市场驱动行为,现在都流行你能为人解决什么问题,这个概念。

Js混淆安全加固

在安全攻防战场中,前端代码都是公开的,那么对前端进行加密有意义吗?可能大部分人的回答是,毫无意义,不要自创加密算法,直接用HTTPS吧。但事实上,即使不了解密码学,也应知道是有意义的,因为加密前和解密后的环节

vue项目配置 webpack-obfuscator 进行代码加密混淆

公司代码提供给第三方使用,为了不完全泄露源码,需要对给出的代码进行加密混淆,前端代码虽然无法做到完全加密混淆,但是通过使用 webpack-obfuscator 通过增加随机废代码段

JS 中的函数表达式和函数声明你混淆了吗?

在 JavaScript 中,function关键字可以完成一个简单的工作:创建一个函数。 但是,使用关键字定义函数的方式可以创建具有不同属性的函数。在本文中,我们来看一下,如何使用function关键字来定义函数声明和函数表达式,以及这两种函数之间的区别又是什么。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!