区分 node / es6 不同的导入导出方式

在前端开发中,书写 js 现在很倡导以模块导入导出的方式来定义不同功能的代码块,可能在很多代码中,会看到类似 exports, module.exports, export, import, require() 这些导入导出的方式,不知你是否能清楚的区分他们?下面逐一描述一下,这些方式应用的方法和环境。

各自的使用环境

403 访问被拒绝

FreeMusic 项目中调用酷狗 MP4 资源的时候,无法播放,报403错误。然而直接在浏览器地址栏回车则可以正常播放。

报403错误则是访问被拒绝,既然我做了跨域处理还被拒绝这里就要提及浏览器的防盗链机制。

请求酷狗 API 身份认证

FreeMusic 项目中成功跨域访问酷狗 API 后,成功获取到了酷狗的很多数据,包括歌手的信息,歌曲列表等等,但今天在获取歌曲的播放链接的时候,请求失败返回:{“status”:0,"err_code":20010,"data":[]}

JavaScript 执行机制

JavaScript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但JavaScript是单线程这一核心仍未改变。所以一切JavaScript版的“多线程”都是用单线程模拟出来的。

所谓单线程,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。

非跨域 Ajax 与 跨域 Jsonp

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。意思就是用JavaScript执行异步网络请求

特点:在不刷新页面的前提下去传输数据

一文了解 apply、call、bind

改变函数执行时的上下文,具体一点就是改变函数运行时的 this 指向,这就是 apply()call()bind() 存在的意义。具体什么时候使用哪一个函数来改变 this 指向,就需要了解它们之间的区别和应用。

CSS 三栏布局

三栏布局:指左右两栏宽度固定,中间一栏自适应的布局方法

本文将总结几种常见常用的 CSS 三栏布局方法