目录
一、var 和let const的对比
二、 箭头函数 function对比问题
三、function this的指向
四其他
一、var 和let const的对比
区别一、
var 定义 二个作用域 全局 局部 局部函数内部创建的
var c=3;// 全局
function(){
var a=2;//a为局部,
b=3;没有var 默认为全局;不规范,不建议使用
}
let const 存在块级作用域 {作用域空间}
if(true){ if(true){
var x=20 //为全局 let x=20;
console.log(x)//20
} }
console.log(x)//20 console.log(x)//报错
区别二、
var定义变量 存在变量的默认提升功能 let与const 不存在变量的提升问题
区别三
var 可以重复定义 ,let与const同一个{作用域空间}不允许重复定义 ;
let x=20
let x=30
console.log(x) //报错 'x'已经被声明了
区别四:
var定义的变量默认挂载到window对象上,let和const不会
var x=20
console.log(window.x) //20
区别五:
let和const 存在 暂时性死区问题 只要在作用域中 用let定义了变量,就必须在定义后使用 ,哪怕全局有 也不能用
const 与let区别 :const是定义常量的(不能更改) let是定义变量
二、 箭头函数 function对比问题
1.如何定义一个箭头函数
let f1=()=>{
console.log(this)
}
f1()//window
2.箭头函数与传统函数的不同
1.传统的function定义函数 this指向性不明确,随之使用环境的变化发生改变 箭头函数 this指向明确 ,永远指向生产环境
2.传统function定义 有默认的提升功能,箭头函数没有
3.传统function 可以作为构造函数,箭头函数不可以// this指向明确 ,永远指向生产环境
4.传统function 函数中具有arguments参数集合,箭头函数没有 rest参数
4.arguments参数集合 rest参数 抛出形参外所有实参
三、function this的指向
function定义函数 this指向性不明确,随之使用环境的变化发生改变
四其他
1.解构:将复杂结构中内容,解构成简单结构
需求中需要大量的使用 对象中的某一个属性
解构的语法:左右结构相同
左侧和右侧的key相对应
1.1解构做交互变量
2. 使用字符串模板进行
方法:`${变量名}`
3.对象的简化写法