let,var,和const
1.是let和var的区别:
- let有块级作用域,var没有块级作用域
- let没有变量提升,var有变量提升
console.log(set) //undefined var set = 20 console.log(set) //20
*****************************
console.log(set) //报错 let set = 20 console.log(set) //20
- var可以重复定义,let不可以重复定义
let和const区别
相同点:1.都是块级元素
2.不提升,同时存在暂时性死区,只能在声明的位置后面使用。
3.不可重复声明。
不同点:1.let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,这意味着,const一旦声明,就必须立即初始化,不能以后再赋值。
箭头函数和普通函数的区别
1.this指向的不同:普通函数的this指向永远指向调用的this,箭头函数的this指向只想自己的父级。
2.普通函数有arguments,箭头函数没有arguments。
3.普通函数可以进行实例化,箭头函数没有实例化
普通函数
首先普通函数有两种:
(1)函数声明的方式
function sum(){
}
(2) 函数表达式
let sum = function (){
}
解构赋值
- 解构赋值,左右结构必须一样,使用左边定义的值,快速的取出数据中对应的 数据值,
- 定义和赋值必须放到一起,不然的话就会报错,取不出来数据 值,
- 左边也必须是一个js存在数据结构不然的话也会报错,解构赋值的主 要作用还是,快速的让我们在数据中抓取出我们想要的数据。
// var [a,b,c]=[1, 2, 3];
console.log(a); //1
console.log(b);//2
console.log(c);//3
set和map的用法
-
set的用法
1.首先set相当于一个不重复的数组,使用的时候是new set()
2.add:添加一个值delete:删除一个值
clear:删除所有值
遍历的时候用的是for of遍历set数据结构
3.使用set来做一个数组去重
let array = [0,1,2,3,4,3,1,6,2]
let done = Array.from(new Set(array))
console.log(done)
map(map是一个构造函数)
1.首先相当于是一个对象,用的时候是new map()
注意:注意这里的map是一个构造函数,不是数组中的map
优点:可以将将任意的数据类型的值当作对象的属性来使用,避免了传统的对象属性只有是字符串类型
export和import模块化开发
知道模块化是什么:模块化是实现大型复杂项目开发的核心
模块化规范:AMD,CMD,CommonJS,ES6 module
- AMD,CMD:是针对浏览器端的异步加载规范
产出物:require.js,sea.js - CommonJS:针对服务端同步的加载规范
产生物:node.js
语法: 抛出:module.exports 引入:require(‘包或定义的文件’)
ES6 module:主要针对浏览器的模块加载规范
语法:> 抛出:export { } 或export default 引入: import xxx from ‘文件路径’
通过script在html页面中加载js模块化的形式,必须通过type='module’指定一下