1.变量定义
var关键字可以在定义之前调用,可以重复定义(重复定义取后定义的值)
consloe.log(a)
//undefined
var a=123;
--------------------------------
var b="hello";
var b="hi";
//取后面定义的值
let关键字先定义后调用,有块级作用域,不能重复定义
console.log(a)//报错
let a=123;
--------------------------------
{
let a=123;//let定义变量形成了作用域
}
console.log(a)//报错,拿不到作用域里面定义的变量
--------------------------------
let a="hello";
let a="hi";
console.log(a)//报错,提示a已经被定义了
const常量,定义好的数据不允许更改栈内存值
const a=123;
console.log(a);
a=456;//报错
--------------------------------
const person={
name:"Anne",
age:23
}
person.age=22;
console.log(person)//值发生改变不会报错
2.解构
数组解构
常规结构
let a=1;
let b=2;
let c=3;
改:
let [a,b,c]=[1,2,3]
--------------------------------
形参实参不对等结构
let [a,b,c]=[1,2];
//结构对应值
let a=1;
let b=2;
let c;
对象解构
let person={
user:"Anne",
sex:"女",
age:22
}
let {age,user,sex}=person;
console.log(age,sex,user)//22 '女' 'Anne'
3.箭头函数
setTimeout (function(){
console.log('hello')
},1000)//一秒后打输出hello
普通函数改箭头函数:
setTimeout(()=>{
console.log('hello')
},1000)//一秒后打输出hello
带参数的箭头函数
setTimeout((user,age)=>{
console.log(user,age);//实参向形参传递
},1000,"anne",22)
4.数组扩展
Array.from() 将类数组转换为数组
function abc(){
let arr=Array.from(arguments)
console.log(Array.isArray(arr))
}
abc('html','css','js')
Array.of() 创建一个数组
let arr=new Array("a")//创建一个数组里面的元素是6
let arr=Array.of(6)//创建一个数组里面元素是6
Array.prototype.fill() 将数组填充成指定数组
let arr=new Array(10)//定义一个长度为10的数组
arr.fill('h')//填充十个h
set单值集合 不会有重复的数值,如果出现重复的数值直接过滤掉
let arr=["a","b","c","d","b","c"]
let newArr=new Set(arr)
let arr1=Array.from(newArr)//['a', 'b', 'c', 'd']