2024年前端最全你不知道的JavaScript--Item32 DOM基础详解2_dom里面的item(3),BAT大厂面试总结

文末

逆水行舟不进则退,所以大家要有危机意识。

同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

console.log("不支持creatDocument方法");

}


2、我们看看mootools的slick选择器引擎的源码:



var isXML = function(document) {
return (!!document.xmlVersion) || (!!document.xml) || (toString.call(document) == ‘[object XMLDocument]’)
|| (document.nodeType == 9 && document.documentElement.nodeName != ‘HTML’);
};

//精简版
var isXML = window.HTMLDocument ? function(doc) {
return !(doc instanceof HTMLDocument);
} : function(doc) {
return “selectNodes” in doc;
}


3、自己实现的方法—最简单



var isXML = function(doc) {
return doc.createElement(“p”).nodeName !== doc.createElement(“P”).nodeName;
}


那接下来判断html节点时,就非常简单了



var isHTML = function(doc) {
return doc.createElement(“p”).nodeName === doc.createElement(“P”).nodeName;
}
console.log(isHTML(document));


### 3、判断节点间的包含关系:


现代浏览器可以用contains()方法,aNode.contains(bNode)判断是否包含a>b。



子节点内容

alert(document.contains(pNode));//但是在IE8浏览器不支持
alert(pNode.contains(cNode));


但IE不支持文档类型节点和文本类型节点包含关系的判断,可以自定义实现一个兼容各浏览器的判断方法。


自定义实现fixContains()方法是对这个问题的修复。



子节点内容
```

节点继承层次与嵌套规则

1、DOM节点继承层次

1、文本节点继承层次—-有6层关系
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、元素节点继承层次—-有7层关系
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

console.log(Object.getOwnPropertyNames(document.createElement("p").__proto__));//第一层有两个属性
console.log(Object.getOwnPropertyNames(document.createElement("p").__proto__.__proto__));//第二层有82个属性

1个空div的自有属性有如此之多

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以就有了现在的一些MVVM框架来管理这些DOM节点层次,比如reactjs 虚拟dom加速。

2、HTML嵌套规则

1、块状元素和内联元素

块状元素

一般是其他元素的容器,可容纳内联元素和其他块状元素,块状元素排斥其他元素与其位于同一行,宽度(width)高度(height)起作用。

常见块状元素块级元素—h1,h2,h3,h4,h5,h6,hr,div,fieldset,form,dl,address,ol,p,table,ul,pre

block元素的特点:

    1. 总是另起一行开始;
    1. 高度,行高以及顶、底边距都可控制;
    1. 宽度缺省是它所在容器的100%,除非设定一个宽度。

内联元素

内联元素只能容纳文本或者其他内联元素,它允许其他内联元素与其位于同一行,但宽度(width)高度(height)不起作用。

常见内联元素为—a,b,br,em,i,img,input,strong,textarea,span,label等常见

inline元素的特点:

    1. 和其它元素都在一行上;
    1. 高度,行高以及顶、底边距不可改变;
    1. 宽度就是它所容纳的文字或图片的宽度,不可改变。

他们两个的区别:

  1. 块级元素一般用来搭建网站架构、布局、承载内容
  2. 内联元素一般用来在网站内容中的某些细节或者部位,用以“强调、区分样式、上标、下标、锚点”等等。
  3. 它们可以互相转换。display:inline|block
  4. 块级元素的特点:每一个块级元素都识从一个新行开始显示,其后的元素需要另起一行

好了 简单地说了一下块级元素和内联元素,下面我们开始我们的重点—–嵌套规则:

3、嵌套规则

块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
块级元素不能放在p里面。
有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt
li内可以包含div
块级元素与块级元素并列、内联元素与内联元素并列。(错误的:<div><h2></h2><span></span></div>

一张图了解OUTHTML和innerText、innerHTML:

算法刷题

大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

ms/4304bb5a486d4c3ab8389e65ecb71ac0)**

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值