6,一句话的面试
2020-08-11 本文已影响0人
r8HZGEmq
1,export default:1个,不需要{ }
2,劫持Object.definedProperty(obj, 'txt', get, set) keyup listener
3,#hash 知道浏览器动作,不重复加载页面
4,vuex:状态--store中,mutations可改状态,action封装逻辑如异步请求
5,node11之前,先宏后微。从node11开始后,宏微任务交替
6,cookie token: CSRF流量统计 refer防盗链
7,快速排序:‘abc’.split('').sort().map
8,a3 = [...a1, ...a2]
9,浏览器缓存:cache-control: max-age=300
协商缓存last-modified本地失效,服无新资源 reset时间
10,IIFE:隔离+只执行一次
11,array.shift 删除并返回第一个元素
12,array.some,遇到符合的,返回true
13,typeof [] "object"
14,new String("") instanceOf String. true
15, 非数字 + 运算。 只要有一个为数子,就按数字来
16,fn.bind().bind(a) 绑定的对象按第一次来,所以为window
17,优先级new > bind > obj.foo() > foo()
18,浅拷贝Object.assign({}, rawobj) let b = {...rawobj}
19,深拷贝:对象中的obj享有相同的地址 Json.parse(Json.stringfy(obj))
20,https:
1张三把自己公钥提交给公证处 2审核后公证处用私钥将提过过来的公钥生成证书
3张三发给客户 4客户的浏览器内置了公证处的公钥
5可以解开证明证书没问题,同时拿到了张三的公钥
6用张三的公钥,将自己的私钥传过去
7后面的传输,客户用张三公钥,张三用客户的私钥
21,websocket可主动推送,解决了http瓶颈
22,xss跨域攻击,被动点邮件,id=...<script>var=...</script>
sql同理--为注释符 path同理/usr/etc/...
23,polyfill:if(!obj.create){F.propertype=obj} 委托 对象关联
24,getpropertyof() setpropertyof(obj)
25,method() context是隐式的this
26,匿名函数,无法用->自己,但是可以用arguments。callee
27,foo(i) 等价于 foo.call(foo.i)
28,new提前设置参数 叫做currying。foo.bind(null,2) foo.apply(null, [1,2])
29,use.strict window.undefined this
30,“i'm a string” 引擎自动将其转成对象
31,42.3.toFixed(2) 引擎自动转成Number
32,xx.a xx['a']可以是复杂key
33,obj.getownpropertyDescriptor(myobj, "a") 可写 可枚 可配
34,“a” in myobj myobj.hasOwnProperty("a")
35,foreach全部
36,every(...)直到false
37,some(...)直到true
38,for in:key for of:value var key in arr{arr[key]} var value of arr
39,多态:副本,无关联,多继承
40,v-on @
41,data变化,尽量少动dom--虚拟dom state+temp=虚拟json树
diff算法:同层比较。key唯一
40,响应式。只有data中的数据才会被代理,getter+setter劫持
41,computed。使用的时候才会触发
42,函数式组件:无this 无生命周期 无状态 无实例,
最大的用途就是用它做中间件来实现render方法。//my-components.js
export default {...}
43,v-if等14种指令 v-append-text自定义指令
44,provide inject类似事件冒泡
45,回调。控制翻转 Ioc AB主线程 C ajax
46,promise关注分离点的中立,三方协商机制。resolve(99999)决议值99999,reject('oops')拒绝值
缺点:1错误中间被消化or忽略 2值单一拆包装包 3无法取消success reject 4因为信任所以西性能慢一些
47,js抢占式,yield合作式,控制权放弃。第二个next参数作为前一个yield的返回值
48,spread/rest 展开、收集。代替concact
49,结构化赋值:正赋,反赋
50,模板字面量`hello ${name}` ${}
51,map: size() delete(x) clear has()
52,set: new Set(xx) -- 唯一值
53,[].values keys entries()
53,const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ret1 = arr1.find((value, index, arr) => {
return value > 4
}) // ret1: 5 找不到就是undefined
54,findIndex: 返回找到的index,找不到返回-1
55,ES6:object.is存在的原因:==自动转换数据类型,===的NaN不等于自身,以及+0等于-0
所以ES6之前缺乏一种手段:只要两个值一样,就应该相等
object.is({}, {})//false 注意:===也是false
object.is(NaN, NaN)//true
object.is(+0, -0)//false
56,Object.assign(target, raw1,raw2...)
57,defined(o, "e", {value:xxx})
58,Math.log2...
59,Number.parseInt(...)
60,Number.isNaN(...)
61,String.startWith("on", 5) endwith includes.
62,x.padStart(5, ab) ababx
63,obj.__proto__ = someObject
64,setPropertyOf(x) getProperty()
65,[] definedProperty(obj.key, value)
66,BOM:Window Navigator History Location
DOM: Document Element Attribute Event
浏:BOM DOM ES
W3C:BOM DOM
Node:ES FS TCP stream buffer
common.js:FS TCP stream buffer
67,c/c++内建模块 -- js核心模块 -- 文件模块
usr/local/bin/node usr/local/lib/node_module
68,package.json script -- preinstalled 钩子函数
69,npm init add user publish / npm ls 依赖树
70,阻塞I/O:磁盘寻道--读取--复制到内存--cpu等待i/o
71,V8,node的脚本引擎VM 64位 最大文件1.4G
72,node: process.memoryUsage()
73,闭包:外部作用域访问内部函数可作为参数or返回值
74,命中cache,节省IO开销
75,var tls = require('tls')
76,内联:<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>
块级:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
内联块状:<img><input> 综合了内联和块状的特点:
虽然和其它元素在同一行,但是可以设置宽高
77,生命周期:
start -- initData -- complieTemplet -- 挂在Dom(数挂到树上) -- 数更新后repeatDom -- destroy
beforeCreate(都无) -- create(有数据) -- beforeMounted(el和data都有,但是data在虚拟dom上) -- Mounted(data挂到Dom上了)
78,父BeforeCreate -- 父Create -- 父BeaforeMounted -- 子子子子 -- 父