1.说一下<label>标签的用法

label标签主要是方便鼠标点击使用,扩大可点击的范围,增强用户操作体验

2.说一下事件代理?

事件委托是指将事件绑定到目标元素的父元素上,利用冒泡机制触发该事件

ulEl.addEventListener('click', function(e){
var target = event.target || event.srcElement;
if(!!target && target.nodeName.toUpperCase() === "LI"){
console.log(target.innerHTML);
}
}, false);

3.说一下宏任务和微任务?

JS是单进程模式,他会先执行同步,再执行微队列,后在执行宏队列。
微队列:promise回调、mutation回调
宏队列:DOM事件回调、ajax回调、定时器回调

4.说一下继承的几种方式及优缺点?

  • 原型链继承
function Parent(){
this.name=["KE","gg"]
}
Parent.prototype.getName=(){
console.log(this.name)}
function.Child(){
 
}
Child.prototype=new Parent()
var child1=new Child()
child1.name.push("tt")//["KE","gg","tt"]
var child2=new Child()
child2.name.push("hh")//["KE","gg","tt","hh"]
优点:简单、父类和子类共享属性
缺点:1.引用类型属性共享,2.创建Child实例时,不能像Parent传入参数
  • 构造函数继承
function Parent(){
this.name=["KE","gg"]
}
Parent.prototype.getName=(){
console.log(this.name)}
function.Child(){
Parent.call(this)
}
 
var child1=new Child()
child1.name.push("tt")//["KE","gg",'tt']
var child2=new Child()
child2.name.push("hh")//["KE","gg",'hh']
比较原型链继承
优点:1.不会实例共享引用型属性,2.可以向父传参
缺点:每创建一次实例就会重新生成方法属性
原型链的优缺点和构造函数优缺点相反
  • 组合继承
function Parent(color){
this.name=["KE","gg"],
this.color=color
}
Parent.prototype.getName=(){
console.log(this.name)}
function.Child(color,age){
Parent.call(this,color)
this.age=age
}
Child.prototype=new Parent()
var child1=new Child("red")
child1.name.push("tt")//["KE","gg",'tt']
child1.color//red
var child1=new Child("green")
child1.name.push("hh")//["KE","gg",'hh']
child1.color//green
优点:融合了原型链和构造函数继承的优点
  • 原型式继承
function createObj(o){
function f(){}
f.prototype=os
return new f()
}
缺点:实例共享引用型的属性
  • 寄生式继承
function createObj(o){
var clone=Object.create(o)
clone.sayName=function(){
console.log(0)
}
return clone
}
缺点:创建一次实例创建一次方法
  • 寄生式组合继承
function object(o){
function f(){}
f.prototype=o
return new f()
}
function protot(child,parent){
var prototype=object(parent.prototype)
prototype.constructor=child
child.prototype=prototype
}
调用两次构造函数

5.说一下自己常用的es6的功能?

1.let、const
2.解构
3.模板字符串
4.es6模块导出
5.类写法
6.promise对象
7.箭头函数
参考文献:
https://www.cnblogs.com/XYQ-208910/p/11942974.html

6.什么是会话cookie,什么是持久cookie?

cookie是服务器返回的,指定了expire time(有效期)的是持久cookie,没有指定的是会话cookie

7.数组去重?

js

var arr=['12','32','89','12','12','78','12','32'];
// 最简单数组去重法
function unique1(array){
var n = []; //一个新的临时数组
for(var i = 0; i < array.length; i++){ //遍历当前数组
if (n.indexOf(array[i]) == -1)
n.push(array[i]);
}
return n;
}
arr=unique1(arr);
// 速度最快, 占空间最多(空间换时间)
function unique2(array){
var n = {}, r = [], type;
for (var i = 0; i < array.length; i++) {
type = typeof array[i];
if (!n[array[i]]) {
n[array[i]] = [type];
r.push(array[i]);
} else if (n[array[i]].indexOf(type) < 0) {
n[array[i]].push(type);
r.push(array[i]);
}
}
return r;
}
//数组下标判断法
function unique3(array){
var n = [array[0]]; //结果数组
for(var i = 1; i < array.length; i++) { //从第二项开始遍历
if (array.indexOf(array[i]) == i)
n.push(array[i]);
}
return n;
}

es6

es6方法数组去重
arr=[...new Set(arr)];
es6方法数组去重,第二种方法
function dedupe(array) {
return Array.from(new Set(array)); //Array.from()能把set结构转换为数组
}

8.get、post的区别

1.get传参方式是通过地址栏URL传递,是可以直接看到get传递的参数,post传参方式参数URL不可见,get把请求的数据在URL后通过?连接,通过&进行参数分割。psot将参数存放在HTTP的包体内

2.get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度是2048个字符。post没有长度限制

3.get后退不会有影响,post后退会重新进行提交

4.get请求可以被缓存,post不可以被缓存

5.get请求只URL编码,post支持多种编码方式

6.get请求的记录会留在历史记录中,post请求不会留在历史记录

7.get只支持ASCII字符,post没有字符类型限制

 

随机推荐

  1. Python之格式化unix时间戳

    就瞎倒腾,格式化时间: 1 import time 2 3 unixTime = time.time() #定义unixTime以存储系统当前的unix时间戳 4 print(unixTime); # ...

  2. C#未能找到路径“\bin\roslyn\csc.exe”的一部分。

    主要原因是因为两个库存在,需要生成一个 roslyn文件,但是这个项目是从 vs2017中,打开的,所以,没有必要存在它. 那么就删除这两个关联的库,就可以达到目的 S2017 打开  程序包管理控制 ...

  3. 使用NPOI读取Excel表格内容并进行修改

    前言 网上使用NPOI读取Excel文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/restran/p/38894 ...

  4. 点名小辣辣,带你入门 JMeter (。・∀・)ノ゙

    什么是 JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态 ...

  5. Java安全之Weblogic 2016-0638分析

    Java安全之Weblogic 2016-0638分析 文章首发先知:Java安全之Weblogic 2016-0638分析 0x00 前言 续上篇文的初探weblogic的T3协议漏洞,再谈CVE- ...

  6. Json串的字段如果和类中字段不一致,如何映射、转换?

    Json串是我们现在经常会遇到的一种描述对象的字符串格式.在用Java语言开发的功能中,也经常需要做Json串与Java对象之间的转换. fastjson就是经常用来做Json串与Java对象之间的转 ...

  7. JavaScript获取页面元素方法

  8. Java ClassLoader浅析

    双亲委派 提起 java 类加载器,自然绕不开其双亲委派模型 什么是双亲委派 提起双亲委派,首先想到便是那张经典的向上委派图 一般场景下,当某个类将要被加载时,由系统上下文默认的类加载器Thread. ...

  9. 【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口

    以项目驱动学习,以实践检验真知 前言 一个后端接口大致分为四个部分组成:接口地址(url).接口请求方式(get.post等).请求数据(request).响应数据(response).如何构建这几个 ...

  10. 关于Objects类的getClass方法为什么可以得到子类的地址的思考

    这一段时间,总是很纠结为什么Objects中的getClass方法可以返回包含子类地址信息的东西(我不确定返回值类型). 因为在Java中,我们定义的父类,我想破脑袋也想不出怎么可以得到子类的信息. ...