一、const 定义常量
常量无法被覆盖
const a = 123;
a = 456 //会报错,因为常量无法被覆盖
二、let 块级变量
用let定义的变量只在块中(例如花括号)起作用,离开变量外界的块,就会被销毁
if(true){
var a = 123;
let b = 456;
console.log(b); //正确
}
console.log(a);
console.log(b); //报错,访问不到
三、模板字面量
用于字符串拼接和写模板,使用·(反引号,左上角波浪线),变量解析使用${}
<script>
var name = '达达利亚';
var sex = '男生';
var age = 18;
var prt = `我的名字是${name},
我是${sex},
我今年${age}岁了`;
document.write(prt) //输出看看
</script>
在反引号范围内,换行格式不会变。
四、解构赋值
交换值
var a = 1;
var b = 2;
[a,b] = [b,a];
document.write(a,b) //2 1
从数组里获得元素
var array = [1,2,3,4];
[a,,c] = array;
document.write(a,c) //输出1 3
从对象中获取值
var data = {
name:"达达利亚",
age:18,
sex:"男"
}
var{name,sex} = data
document.write(name,sex) //达达利亚,男
返回值解构
function arr(){
var a=1,b=2,c=3,d=4;
return {a,b,c,d}
}
var {a,c}=arr();
console.log(a,c); // 1 3
五、箭头函数
箭头函数相当于匿名函数,并且简化了函数定义。()中放参数,没有参数就省略,箭头后面是函数体。
var fun=(x,y)=>{
console.log(x+y);
}
fun(2,3)
注意: 箭头函数里得this指向箭头函数定义时所处的对象,而不是箭头函数使用时所在的对象。
(ES6之前访问函数外面的this比较麻烦,箭头函数可以直接访问到最外出的this,不需要转换)
var obj = {
name:"达达利亚",
fun(){
setTimeout(()=>{
console.log(this.name)
},1000)
}
}
obj.fun() //调用函数
这里得this指的是所处得obj里得对象name
六、对象中函数的声明
var obj={
user:"张三",
job(){
return "web前端开发"
}
}
console.log(obj.job())
七、for-of 循环遍历
var arr=["aaaa","bbbb","cccc","ddddd"];
for(var i of arr){
console.log(i)
}
打印出 aaaa bbbb cccc dddd
forEach 遍历数组
forEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,其实说穿了,就是 for 循环的加强版,该语句需要一个回调函数,作为参数。
forEach方法中的function回调有三个参数:
- value 遍历的数组内容
- index 对应的数组索引
- array 数组本身
<script>
var arr = ['a','b','c'];
arr.forEach(function(value,index,array){
console.log(value);
console.log(index);
console.log(array);
})
</script>
随便加个栗子
<script>
var arr = [1,2,3];
var newArr = [];
arr.forEach((item,idx)=>{
x = item + "达达利亚"
newArr.push(x)
})
console.log(newArr)
</script>
输出结果:
map 遍历数组
map循环遍历形成新的数组newArr
var arr = [1,2,3];
var newArr = arr.map((item)=>{
return item + "达达利亚"
})
console.log(newArr)
八、默认参数
function fun(x=0,y=2,z=true){
console.log(x,y,z);
}
fun(); // 0 2 true
fun(4,0,false); // 4 0 false
就是一开始没去调用得时候,默认参数是括号里的。
九、展开运算符
- concat 合并数组元素
- … 展开数组
arr1=[1,2,3,4,5];
arr2=["a","b","c","d"];
arr3=arr1.concat(arr2);
arr4=[...arr1,...arr2];
console.log( arr3 ); //[1, 2, 3, 4, 5, "a", "b", "c", "d"]
console.log( arr4 ); //[1, 2, 3, 4, 5, "a", "b", "c", "d"]