一 。js 数据类型有几种?
1基本 :null undefined number string bool。 symbol
object,
typeof ()是一个一元运算符,括号可以省略,拥有很高的运算符。
2 复杂数据类型: object。
typeof (object):object。
二 。复杂数据类型:数组
1判断对象是否是一个数组?
constructor,isArray。如果一个页面有两个ifrem,constructor和isArray出现问题,如果在两个不同的window的对象,object.prototype.toStirng.call()===。
2 数组方法?
map,reduce,filter,
有哪些对原来的有影响: pop,push,unshift,shift, reverse,sort,splice.其他的方法对原数组都是没有影响的。
3 数组去重方法?
1 创建一个空数组: 创建一个空数组,push,indexof
2 不创建空数组:原数组有影响,splice,依次的进行对比。长度进行-。如果和前面或者后面一样的话,要删除!
3 对象属性不能相同:对象上的属性不能重复!
4 可以对原先的数组进行排序,然后进行循环!
最短数组去重: [...] new set 对象。
4 伪数组有哪些? dom选择器, argment对象(函数对象参数不确定),jq框架(jq选择器选择出来的。)
伪数组-》 真数组: [].slice.call调用数组原型对象的方法。
三。字符串
1 字符串有哪些方法?
charAt,
2 slice,sustr,suplc。有什么区别?
四。数字
判断 NaN()?
传进来的是否可以转为数字?
isNaN()===
NaN ===NaN不相等。
五。布尔类型?
js类型有哪些转化boolean是fasle。只有: 0,-0,unll,undifind,'',NaN,
对象,数组转化为布尔是true。
六 new操作符
创建一个空对象
修改this指针,
执行代码
返回。
new 没有参数时候,是可以省略。
对于构造函数,里面的返回值。new创造的是返回值,返回的不是一个对象,则会被忽略,是一个对象。
若是一个对象,则会返回设置对象。 就是单例模式。
七。继承如何实现?
2个类进行继承。
1 原型链继承。 A B B.prototype = new A()。 缺点:1只能继承原型对象上继承。2 只能有一个父类,不能多继承。 3修改一个会被覆盖。
2 构造函数式继承。 B 中写A.apply() 。 缺点: 1 独立的,不共享。2存一个属性。
3 组合式继承。 (伪完美继承) 缺点: 1 占一些内存。
2个对象进行继承。
4 原型式继承。B create.prptotyepe=A。让b直接继承A。直接一个对象继承另一个对象。
5 寄生式继承。
6 组合寄生式继承。(完美继承)
八。
defer延迟执行。从上到下依次执行。(文档解析完之后,才会去执行,放在head里面,就相当于body后面。)
async:异步加载。下载完之后,立刻去执行。
js加载,会阻塞html渲染。
正常...,但如果有async,会改用异步去加载文件。
九。promise。
promise实现的方式和方法。
new Promise。 参数:成功回调,失败回调。
then,cacth。
all。和rice的区别?
都是数组。
all:全部完成之后,
race:传一个,第一个值会传给值。
promisethen和cathc的返回的值?
then: 返回的是promise对象。 显示返回一个非promise对象,还是一个promise对象,then会立即执行,不会等待()。
异常捕获:try cacth,try里面,catrh里面。不能捕获异步的异常,
promise。可以捕获异步的异常。 reject,resveie。
十。ES6
1 import export 模块化。
2解构赋值
3 let,const。 (var则是完全可以放弃掉)
4 class。extends。
5 函数的拓展。(1 箭头函数 2 ...参数 3 双冒号的使用 4 参数可以默认赋值)
6 字符串: 字符串模板。
7 数组增加方法: form,of,拓展运算符(...)
8对象进行拓展:(1 属性简单表达式,2解构赋值 ,3keys values anture, )
9 class类
10 promise对象。
11 babel转换。 babel每一个转化是怎么实现的? let,const,箭头函数,解构和拓展是怎么写的
十一:箭头函数和不同的区别?
没有argument对象,this不会改变。
十二:
事件如何实现?
嵌入dom。=‘onclick’
直接绑定。documentget之后。获得一个检点
事件监听。浏览器兼容性的处理?
事件委托?
事件流?
window在回到window。第一个捕获,第二个目标阶段,第三个冒泡阶段。若在三个阶段都存在,那么决定?
stop,prevent?阻止默认行为,阻止事件冒泡。
target,enevt。
十三:网络请求相关的问题?
1 状态码: 301,303,502,503,504.。
2 url加载一个流程: 输入地址,启动缓存,发动一个http请求,重定向,返回http相应。
3 请求的时候跨域?
jsonp的问题(1只能get请求因为走的是scirpt标签。2 有安全隐患)。
设置dom, 修改dom.Affre 改为主域。
还可以设置哈希window.haxi。
window.name()
postmessage()。多窗口的通信!两个窗口实现通信!第一个数据,第二个是参数。
服务端:对象的属性,属性的withchorm,前端coockie
服务端:nginx反向代理。配置一个代理服务器。作为一个跳板。使用node中间代理。同源策略,浏览器,
websokect原生的,scokec.js。
4 image跨域。 只能发服务器的信息。css数据统计。不存在是不存在,只有有变化,image跨域。
后续问题:
1 三大框架。生命周期。
2 虚拟dom如何实现?有什么缺点?
3 数据绑定。mv,vm,
4 jq,ajax发送,返回值是什么?dom选择器如何进行优化?
5 lowdanshi。工具化函数防抖函数,节流函数?fp。
6 css
7webworkc
8https
9amd cmd,umd 模块化。
10性能优化,
11etag,
12 快排。闭包 。
13 cookise如何如何删除。