符合ECMA (ec妈)国际标准的javaScript 为 ES (ecma Scirpt )
es有版本,老的浏览器不兼容新的es标准(es6)Babel转码器
js的代码写在body --script中
var(老的)/ let / const
1.var与let、const区别1:
a.块作用域 如在一个对象中{ }的变量
var sq1=“hello sql” //var 申明变量作用域为全局,如在{} 对象中申明,在对象外也能使用
若在一个对象中 申明 let sq2 ="hello sql" , 在对象外就不能使用了(let有明确作用域)
b.函数作用域
三种方式在函数汇总定义的变量,其他地方都不能用
2.var与let、const区别2:变量提升(var 申明赋值变量时,会在全局代码之前先申明 确定有个 变量 )
如:caosole.log(name) // 打印为undefined
var name = “小明” // 会在全部代码之前 先申明有这个变量 var name (变量提升)
let/ const (没有这个不规范的骚操作)
3.var与let、const区别3:变量的重复申明
若存在变量 a, 就不能再用let a=“你好”了,会报错
若存在变量a, 可以用var 不停的重复申明 (老将军var权限大,可以不停的出尔反尔 )
4.const 申明常量 constant variable,
特点1常量不能再被赋值 (但可以改变原来的值 【】或{ } 时)
如:const name =“小明” 不能再 name =“老张” //不能改变引用,不然报错
const a_list=[]
a_list.push(100) //不可以重新赋值,但是可以修改对象或数组内容,变成[100]
const obj={}
obj.name ="小明" // obj 变成 {name:“小明”}
特点2:const申明常量,必须赋个值 ,因为变量可以变可以没有,常量必须有
5.let 与const的解构赋值(作用:快速赋值多个变量)
数组解构 let [ ] 或者 const []
let [a,b,c] =[1,2,3]
console.log(c) //打印结果为3
接收的变量,若对于数值个数,多出的为undefined
接收的变量,若对于数值中个数,不影响
对象解构,将对象属性逐个提出来 let {name,age} 或const {}
let {name,age}={name:"小明", age:"22"}
接收的变量名要 和属性 相同才能赋值成功属性值
如果接收的变量,名称为某个属性 就能赋值
如果接收的变量,变量名称不是属性,,相当于申明了变量,但未赋值,为undefined
申明对象的简写形式
name=“小陶”,age=18
正常写法const obj18={name:name,age:age}
简写:congst obj18={name,age} //当有变量名为name,变量名为age时
扩展运算符 let obj = {...obj0} let obj = {...list0} 或 let list =[...list0]
对象扩展运算符(使用obj来接) ----作用快速得到一个对象
对象使用 对象扩展运算符
let obj={...{name:"小明",age:"22"}} //obj 复制了对象
数组使用对象扩展运算符(属性用原数组的 索引来占位)
let ob2j={...["第一","第二"]} // obj2 为: {0: "第一", 1: "第二"}
数组扩展运算符(使用list来接)
数组使用数组扩展运算符
let blist=[...["第一","第二"]] // blist 复制了数组
箭头函数
传统:function 函数名(arg){表达式} //在对象中,定义传统函数,this表示此对象
箭头函数: //在对象中,定义箭头函数,没有自己的this
(arg1,arg2) => {表达式}
const 函数名 = (arg1,arg2) => {表达式}
js文件使用
main.js文件中,写js语句,定义变量,定义函数等
.html文件中使用, 可以写在head,也可以写在body中
<script src="./main.js"></script>
导出导入(分支js文件,与主js文件)
缘由:多个js文件,某个js文件 需要其他js文件的变量或者 方法
1.需要分支js文件导出变量or函数名
export {add,person} //函数名 或变量 普通多个
export default{add,person} //函数名或变量 默认导出方式,导出后它们是个整体
2.主js文件的导入,推荐第二种,这样如果需要从多个js文件中导过来,可以定义不同的名字
// 当 "./demo2.js" 导出时 export {add2,person2} ,这里写法就为用{}同导出写法;
导入时的写法:import {add2,person2} from "./demo2.js";
// "./demo2.js"文件中的默认导出. 导出时export default{add,person}
//导入时写法:import后的名字自己定义,随便写
import demo2 from "./demo2.js";
使用add函数时, 就写成 demo2.add()
3.html文件中需要写script标签需要写 type=“module”
<script type='module' src="./main.js"></script>