TokenYangForever / NewProject

0 stars 0 forks source link

十万个为什么 #3

Open TokenYangForever opened 7 years ago

TokenYangForever commented 7 years ago

javascript


Q: Fetch API相对于传统的Ajax有哪些改进?有哪些Ajax能做到的,fetch不能做到 A: fetch基于promise,可以更好地写异步流程代码。


Q: ES Modules 和 commonJS区别 A:


Q: 解释一下双向绑定和单向数据流(mvmv框架中) A:


Q:JavaScript中的iterators和iterables是什么?有哪些原生的iterator? A:遍历器(Iterator)是一种遍历接口机制,只要一个对象的[Symbol.iterator]属性对应的函数有效的,那么这个对象就是可遍历(iterables)的,可遍历的对象就可以通过for..of来遍历使用。iterator还可以和generator函数一起使用,每次遍历返回一个yield后面的值。set、map、Array这些原生数据接口都是可遍历的。


Q: new关键字做了那些事 A: 新建一个对象,构造函数的原型赋值给新对象(原型继承),执行构建函数的代码,this指向这个对象。返回该对象。


Q: react与vue的比较 A:

Q: 项目上的单页面应用如何实现? A: require.js实现模块化,text插件可以引入html/css文件,所以只要根据页面路由引入js文件,即可实现单页面的跳转。使用history的pushState、replaceState方法监听链接地址,实现后退返回上一个页面的功能


Q: target和currentTarget、事件流、事件代理 A: http://www.jianshu.com/p/dc1054bda70c


Q: 什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现? A: 函数式编程的一些概念:

TokenYangForever commented 5 years ago

Node


Q:什么是Event loop A: * 直译过来就是事件循环,在node.js中,事件循环可以让node能够进行无阻塞的I/O操作(尽管js是单线程的)。node遇到I/O操作(包括文件I/O、http请求等)时,把这些操作交给操作系统来处理,处理好后通过callback回调函数返回给nodejs线程,然后排列在事件循环队列里依次执行回调函数。

TokenYangForever commented 5 years ago

Css


Q:移动端Retina屏幕1px边框效果 A: * 伪类 + transform:利用 :before 或者 :after 重做 border ,并 transform 的 scale 缩小一半,原先的元素相对定位,新做的 border 绝对定位。

.scale-1px{
  position: relative;
  border:none;
}
.scale-1px:after{
  content: '';
  position: absolute;
  bottom: 0;
  background: #000;
  width: 100%;
  height: 1px;
  -webkit-transform: scaleY(0.5);
  transform: scaleY(0.5);
  -webkit-transform-origin: 0 0;
  transform-origin: 0 0;
}
TokenYangForever commented 5 years ago

Q: Http2协议有哪些特点 A: 将数据消息分解为独立的帧,交错发送(解决队头阻塞、不再需要使用雪碧图这种方法);头部压缩


Q: 静态类型语言和强类型语言之间有什么区别? A:强类型语言:不能隐式转换类型:'1' + 1会报错。例如:Java、python。 弱类型语言:可以隐式转换,'1' + 1 = '11'。例如:JavaScript。 静态类型语言:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。 动态类型语言:编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误。