【商城项目9】es6
1.let有严格的局部作用域
2.let只能声明一次
3.在声明之前调用会显示未定义
4.const声明只读常量
// 声明之后不允许改变
//但声明必须初始化,否则会报错
const a=1;
a = 3; //Uncaught TypeError: Assignment to constant variable.
5.解构表达式
数组解构:
let arr = [1,2,3];
let [a,b,c] = arr;
console.log(a,b,c)
对象解构:
const person = {
name :"jack",
age: 21,
language: ['java', 'js', 'css']
}
const {name , age, language} = person;
console.log(name , age , language)
6.字符串扩展
let str ="hellowoefjoiqjf.vue";
console.log(str.startsWith("hello"))://true
console.log(str.endsNith(".vue"));//true
console.log(str.includes("e"));//true
console.log(str.includes("hello"));//true
7.字符串模板(增强版字符串,用反引号`)
7.1可以表示多行:
let a=`hello,world
myname
is ufo`;
console.log(a);
7.2可以插入变量和表达式${}
let info =我是${name}, 今年${age}了";//大括号里面也可以用函数
8.函数优化
传参默认值:
//直接给参数写上默认值,没传就会自动使用默认值
function add(a , b = 1) {
return a + b;
}
不定参数:
function fun(...values) {
console . log(values. length)
}
fun(1, 2)//2
fun(1, 2, 3, 4) //4
箭头函数1:(1个参数)
var print=obj=>console.log(obj);
//测试调用
print (100);
箭头函数2:(2个参数)
var sum=(a,b)=>a+b;
箭头函数3:(方法不止一步时)
var sum2=(a,b)=>{
c=a+b;
return a+c;
}
箭头函数4:(参数是对象时)
const person={
name:ufo;
age:21;
language:['java','python','c++']
}
var sayhello=(pp)=>console.log('hello,my name is'+pp.name)
sayhello(person);
//上面这两句也可以写成下面
var sayhello=({name})=>console.log('hello,my name is'+name)
sayhello(person);
9.对象优化
Object.keys获取主键
Object.values 获取值
Object.entries 获取键值对
const person.{
name:"jack",
age:21,
language:['java','js','Css']
}
console.log(Object.keys(person));//["name",age”,”language"]
console.log(Object.values(person));//["jack",21,Array(3)]
console.log(Object.entries(person));//[Array(2), Array(2), Array(2)]
Object.assign 组合多个对象
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { C: 3 };
Object.assign(target, source1, source2);
console.log(target)//{a:1,b:2,C:3}
声明对象简写:
const age = 23;
const name ='张三';
const person2 = { age, pame};
声明函数简写:
let person={
name :"jack",
eat3(food) {
console.log(this.name + "在吃"+ food);
}
}
person.eat3("apple");