ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 声明变量 ~~~ { let x = 1 } console.log(x) // 无法获取x这个变量,let是声明块级局部变量 const y = 12 y = 13 // 报错,因为const是声明常量,无法修改 ~~~ 通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。 <br> #### 对象键值简写 ~~~ var x = 1 var y = { x } // 对象键值同名可以简写 ~~~ #### 模块引入与导出 ~~~ // 引入Vue模块 import Vue from 'vue' ~~~ ~~~ export default { a:1 } // 以后用import引入这个文件拿到这个导出对象 ~~~ #### 解构 ~~~ function test({a}, x){ console.log(a) } let obj = {a:1, b:2} test(obj) // 通过大括号里面加一个a,就可以把obj里面的a给拿出来,所以打印1 ~~~ #### 模板字符串 ~~~ let str = "world!" `hello ${str}` // 不用单引号,用`符号,可以把变量写进字符串里面解析 ~~~ #### 箭头函数 ~~~ var fn = (x, y) => { console.log(x, y, this) } fn(1, 2) ~~~ 箭头函数的特点就是定义箭头函数的时候,他的上下文决定了箭头函数里面this的值, 比如这个例子箭头函数上下文this是window,所以箭头函数里面this也是window <br> #### promise ~~~ function ajax(method, url) { var xhr = new XMLHttpRequest() // 异步执行代码 return new Promise(function (resolve, reject) { xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { // 成功就执行resolve resolve(xhr.responseText) } else { // 失败就执行reject reject(xhr.status) } } } xhr.open(method, url) xhr.send() }) } const promise1 = ajax('GET', '后端接口地址') // 异步处理的代码 // resolve就会执行then传的函数 // reject就会执行reject传的函数 promise1.then(function(res){ console.log(res) }).catch(function(err){ console.log(err) }) // 可见Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了 ~~~ 通俗的讲,new Promise传一个ajax异步请求的函数, 然后new这个Promise生成Promise对象,这时候接口已经调用了,你就可以promise对象.then来处理接口返回的数据,promise对象,catch来处理调接口错误