ES 的全称是 ECMAScript,它是由 ECMA 国际标准化组织 制定的一套脚本语言的标准化规范。
ES6 的变量声明
let:定义变量
const:定义常量(定义后,不可修改)
ES5中的 var 容易造成全局污染; ES6中的let可以在块级作用域里生效
同步任务和异步任务
同步任务:在主线程上排队执行的任务。只有当前任务执行完毕,才能执行下一个任务。
异步任务:不进入主线程、而是进入任务队列(Event Queue)的任务,该任务无论有没有得到结果,都不会阻塞后续任务的执行
多次异步调用的顺序
多次异步调用的结果,顺序可能不同步。
异步调用的结果如果存在依赖,则需要通过回调函数进行嵌套。
(ps: 以前就是搞不明白js/ts为什么喜欢总是用回调函数这么难搞的东西)
Ajax
Ajax:Asynchronous Javascript And XML(异步 JavaScript 和 XML)
jQuery 中风装了 Ajax
bash
$.ajax({
url: 'https://xxx.com/getUserInfo.php', // 接口的请求地址
data: 'name=fox&age=18', // 请求参数
type: 'GET', //请求的方式
success: function (argument) {
// 接口请求成功时调用
console.log('接口请求成功');
},
beforeSend: function (argument) {}, // 在发送请求之前调用,可以做一些验证之类的处理
error: function (argument) {
// 接口请求失败时调用
console.log('接口请求失败');
},
});
同源和跨域
同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口完全相同.
出于安全性考虑,浏览器不允许ajax跨域获取数据。(ps: 虽然安全,但不方便)
解决方案: JSONP(JSON with Padding):带补丁的 json,本质是利用了 标签具有可跨域的特性,由服务端返回一个预先定义好的JS函数的调用,并且将服务器数据以该函数参数的形式传递过来。此方法需要前后端配合完成。
jsonp 只能通过 GET 方式进行请求。
回调函数
把函数 A 当参数传给另一个函数 B 调用,那么函数 A 就是回调函数。
为什么会有回调函数: 需要等待异步任务结束之后再执⾏想要的操作,就只能通过回调函数进行操作