前端应知应会(部分)

本文介绍了浏览器内核、XHTML与HTML的区别、JavaScript数据类型、数组方法、闭包、原型链等前端核心概念,还探讨了网站优化规则、正则表达式、跨域解决方案及HTTP协议等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浏览器内核

IE:trident内核

Firefox:gecko内核

Safari:webkit内核

Opera: 以前是 presto 内核,Opera 现已改用 Google Chrome 的 Blink 内核

Chrome:Blink(基于 webkit,Google 与 Opera Software 共     同开发)

Xhtml和html的区别

一、其基础语言bai不同

1、XHTML是基du于可扩展标记zhi语言(daoXML)。

2、HTML是基于标准通用标记语言(SGML)。

二、语法严格程度不同

1、XHTML语法比较严格,存在DTD定义规则。

2、HTML语法要求比较松散,这样对网页编写者来说,比较方便。

三、可混合应用不同

1、XHTML可以混合各种XML应用,比如MathML、SVG。

2、HTML不能混合其它XML应用。

四、大小写敏感度不同

1、XHTML对大小写敏感,标准的XHTML标签应该使用小写。

2、HTML对大小写不敏感。

五、公布时间不同

1、XHTML是2000年W3C公布发行的。

2、HTML4.01是1999年W3C推荐标准。

Js数据类型

Js的数据类型 分为两种:原始类型(基本数据类型) 和 对象类型(引用数据类型)

Js原始类型:undefined、null、number、Boolean、string、symbol

Js对象类型:object(array、funcation、date等)

防抖节流

防抖 是 防抖deounce

节流 是 节流 throttle

防抖:

小明军训,教官发令:向左转!向右转!向后转!大家都照着做,唯有小明坐下来休息,教官火的一批,大声斥问他为啥不听指挥?小明说,我准备等你想好到底往哪个方向转,我再转。

只有教官最后一次发号后,小明才会转。

相当于vue中的修饰符lazy  的效果

可用于input.change实时输入校验,比如输入实时查询,你不可能摁一个字就去后端查一次,肯定是输一串,统一去查询一次数据。

可用于 window.resize 事件,比如窗口缩放完成后,才会重新计算部分 DOM 尺寸

节流

学生上自习课,班主任五分钟过来巡视一次,五分钟内随便你怎么皮,房顶掀了都没事,只要你别在五分钟的时间间隔点上被班主任逮到,逮不到就当没发生,逮到她就要弄你了。

用于监听 mousemove、 鼠标滚动等事件,通常可用于:拖拽动画、下拉加载。

数组的方法

一、 改变原数组的方法 (常用)

push : 尾部追加  (向数组的尾部添加一个或多个元素,返回值是数组的长度)

unshift : 头部添加 (向数组的头部添加一个或多个元素,并返回数组长度)

pop : 尾部删除    (删除数组最后一个元素)

shift : 头部删除 (删除数组第一个元素

sort: : 排序 (对数组元素进行排序)

join : 分隔  (将数组的每一项通过自己指定的字符进行拼接、默认连接为 ",")

reverse : 反转 (将数组进行倒序)

splice :删除元素或者添加元素,如:splice('从哪里','删几位','添加的元素')

二、其他数组方法(常用)

(1)对数组进行遍历

map(): 该方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值、原数组不变

forEach(): 用于循环调用数组中的每个元素,并将元素传回给回调函数、原数组不变

every(): 对数组中每一项进行判断,若每一项都返回true、则返回true,有一个为false,则返回false,并停止遍历,原数组不变

some(): 对数组每一项进行判断,如果有一个元素满足条件,则返回true , 并停止遍历,如果没有满足条件的元素,则返回false,原数组不变

(2)查找数组中元素

filter(): 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素、原数组不变

find(): 当数组中的元素在测试条件时返回 true 时, 返回符合条件的元素,之后的值不会再调用执行函数,如果没有符合条件的元素返回 undefined、原数组不变

findIndex(): 当数组中的元素返回 true 时, 该方法会返回符合条件的元素的索引位置,之后的值不会再调用执行函数,如果没有符合条件的元素返回 -1、原数组不变

(3)

slice : 当有两个参数 如 slice('起始位置的下标','到哪里结束') 如果只有一个参数 返回的是从该指定位置到数组末尾的所有项,不改变原数组

闭包

闭包就是能够读取其他函数内部变量的函数,在本质上是函数内部和函数外部链接的桥梁

使用场景:

函数防抖

原型链

​​​​​​​

面向对象编程 所谓面向对象编程就是 每一个对象都是 功能中心  具有明确的分工

抽取对象的共同属性和行为组织   封装成一个类模板

网站优化14条规则

 参考雅虎

简述 readyonly 与 disabled 的区别

readonly 只针对 input(text / password)和 textarea 有效, 而 disabled 对于所有的表单元素都有效,当表单元素在使用了 disabled 后,当我们将表单以 POST 或 GET 的方式提交的话,这个元素的值不会被传递出去,而 readonly 会将该值传递出去

正则

可以自己去网上看看

跨域的几种方法

1.跨域解决方案一:cors技术

这个需要安装cors和express 两个包配合使用  这个是后端的事!!!

2.跨域解决方案二:原生jsonp

借助 script标签 和 link  来使用

3.跨域解决方案三:Vue中用proxy

创建一个文件  进行配置  实现axios  跨域

从localhost 跨出去

4.跨域解决方案四: web sockets

web sockets是一种浏览器的API,它的目标是在一个单独的持久连接上提供全双工、双向通信。(同源策略对web sockets不适用)

web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

关于http协议

HTTP(Hypertext Transfer Protocol):超文本传输协议

TCP(Transmission Control Protocol):传输控制协议

HTTP协议和TCP/IP协议的区别?

TCP/IP协议是传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据。Web使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP作传输层协议将它发送到网络上。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

什么是sql注入,xss漏洞?

   XSS(Cross Site Script)跨站脚本攻击,指恶意攻击者往web页面插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页面时,嵌入其中的web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。因此,一般在表单提交或者url参数传递前,对需要的参数进行过滤。

    Sql注入攻击原理:使用用户输入的参数拼凑sql查询语句,使用户可以控制sql查询语句。预防方法,使用预编译语句,绑定变量,使用安全的存储过程,检查数据类型,使用安全函数。

Promise的三种状态

一个promise可能有三种状态:等待(pending)、已完成(fulfilled)、已拒绝(rejected)

深拷贝和浅拷贝

基本数据类型的特点:直接存储在栈(stack)中的数据
引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存

深拷贝 相当于  在堆中重新储存了一份引用数据

浅拷贝 只是简单地复制了 数据在堆中的存放地址

预解析

这块和函数的变量提升有关

Js的运行就是一边 编译 一边执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值