模块
严格模式use strict ;
export导出
<script type="module">
input{
muName,myAge
}from".day1.js" //如果import导入必须用module模式
</script>
特性
- 导出的函数声明与类声明必须要有名称(匿名函数)(export default 命令另外考虑)
- 不仅能导出声明还能导出引用(例如函数)
- export 命令可以出现在模块的任何位置
- import 命令会提升到整个模块的头部,首先执行
- 建议使用大括号指定所要输出的一组变量写在文档尾部,明确导出的接口
- 函数与类都需要有对应的名称,导出文档尾部也避免了无对应名称
- export 命令导出的接口名称,须和模块内部的变量有一一对应关系
- 导入的变量名,须和导出的接口名称相同,即顺序可以不一致
- import只读属性:不允许在加载模块的脚本里面, 改写接口的引用指向,即可以改写 import 变量类型为对象的属性值, 不能改写 import 变量类型为基本类型的值
- 单例模式: 多次重复执行同一句 import 语句,那么只会执行一次,而不会执行多次。 import 同一模块,声明不同接口引用,会声明对应变量,但只执行一次 import
- import静态执行特性:import 是静态执行,所以不能使用表达式和变量
as不同模块导出接口名称命名重复, 使用 as 重新定义变量名
export default
- 在一个文件或模块中,export、import 可以有多个,export default 仅有一个
- export default 中的 default 是对应的导出接口变量
- 通过 export 方式导出,在导入时要加{ },export default 则不需要
- export default 向外暴露的成员,可以使用任意变量来接收
<script>
export { myfunc } from "./day1.js";
console.log(myfunc);
</script>
共享方式
- export{userName , age}
- export{userName as names}
- export default userName;
接收方式
- import {userName,age} from “./day1.js”
- import {userName as aaa} from “./day1.js”
- import abc from “./day1.js”
- import * as abc from “./day1.js”
js中 ajax调取接口数据 异步
http与https区别
- https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
<script>
//创建XMLHttpRequest()对象
let http = new XMLHttpRequest();
</script>
请求 创建的对象.open(“请求方式”,“url”)
请求方式
get方式:偏向获取数据;
post方式: 偏向向后端提交数据;
put方式:偏向更新(全部更新);
delete方式:偏向删除信息;
<script>
//传值:
// 1)表单格式
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
http.send(JSON.stringify(`userId=10&title=hello&body=你好`));
// 2)JSON格式
http.setRequestHeader("Content-Type","application/json")
http.send(JSON.stringify({
"userId":10,
"title":"hello",
"body":"你好"
}))
</script>
响应(获取接口返回值)http.responseText()获得字符串形式的响应数据
onreadystatechange 监听事件
readyState值
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪