js大杂烩(一)

100 阅读1分钟

ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

ajax的缺点:

1、ajax不支持浏览器back按钮

call和apply的区别

B.apply(A, arguments)
B.call(A, args1,args2
// A对象代替B对象

React中用classname代替class,因为class是保留字,代表类,会冲突

propTypes

JavaScript 是弱类型语言,所以请尽量声明 propTypes 对 props 进行校验,以减少不必要的问题。

function App(props) {

  return <div>{props.name}</div>;
}

App.propTypes = {

  name: React.PropTypes.string.isRequired,};

模块加载机制有哪些?es6中的module和其他机制有什么区别?

答案:

  1. 模块机制有amd,cmd和commonJs机制
  2. amd对应的实现是requireJs,cmd对应实现是Seals,CommonJs对应实现是nodeJs

(即

  1. amd和cmd针对的是浏览器端,而commonJs针对的是服务端
  2. amd是预加载,加载同时还会解析代码;(优点是快,缺点是加载顺序不固定,容易出问题,埋下大坑)

cmd是懒加载,加载后暂时不执行代码,需要时候再执行(优点是加载顺序可控,缺点是加载速度慢)

require和import的区别

require是amd的加载方式,import是es6中module的加载方式

require在文件任何时候都可以调用,但是import只能放在文件开头使用,因为它是编译时就调用,而require是在文件运行时调用

require的本质是将require的结果(其实就是各种对象,数字,函数等等)赋值给某个变量;而import的实质是依赖于node的一种将es6转码为es5的一种加载方式,import最终会被转码为require