浏览器内核
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的运行就是一边 编译 一边执行