vue 学习笔记—Es6
// 第一部分
/*
console.log(a+'c');
var a = 1;
console.log(b+'c');
let b =1;
*/
// 上述代码 left定义报错 原因:
/*
var a;
console.log(a+'c');
a = 1;
console.log(b+'c');
let b =1;
*/
// var 有变量提升的功能
var ops =`
console.log(a+'c');
var a = 1;
console.log(b+'c');
let b =1;`
// 模板语言 `` (感觉有点类似pre,不需要逗号转义)
printLog(ops);
function printLog(str){
document.getElementById('log').innerText = str;
}
// 第二部分
// 函数作用域
function user(){
var a= 1;
};
console.log(a+'a'); // 访问不到报错
// 要是在下面定义 a 不会报错 会出现undefiend;
var a;
// 块级作用域
{
let a =1;
var b=2;
}
console.log('a:'+a); // 块级限制作用域 报错
console.log('b:'+b); // 函数限制作用域 b输出2
// lef 定义变量不存在内存泄漏,会被及时销毁 const 定义变量 后面不能被改变 但是如果申明的是object 那里面空间的值可以被改变
const op = 1;
// ops =2; 会报错
const ops_2 = {a:1};
ops_2.a =2; // 这个可以不会报错 因为地址是对的,里面的值可以更改
const ops_3 = {a:1};
//ops_3 = {c:1}; //报错 同变量一样 地址变了;
// `` 模板语言的魅力
// `i ams ${ops}` ops是变量
// 参数内部可以默认赋值
function sum(num1,num2 = 3){
return num1+num2;
}
console.log(sum(7));
// [].map(function(value){}); // 参数里面是每个数组值 Es5的方法(相当于arr[0],arr[1],...)
// 箭头函数(没有冒号的时候 )
// .map(vaule=>{}) .map((value,ops)=>{})
// 数组解构 (不知道是不是es6的内容)
var [a,b]=[3,8,10] // 输出a=3,b=8 不报错
//字符串解构
var [x,y,z] = 'Vue';
console.log('xxx'+y)
console.log(`x:${x}|y:${y}|z:${z}`);// 输出V u e
// 对象的解构(右边对象名称不能变 给mm,nn赋值 )
var {mm,nn} ={mm:'10',nn:'11'};
console.log(`m:${mm}|n:${nn}`);
// forEach Es5的 但是不能终止循环 Es6推出 for of
function sum2(...m){
console.log(m);
for(let i of m){
console.log(i);
}
};
sum2(4,9,6);
// 当没有函数名的时候 function 可以去掉直接参数=>
var ops = (...m)=>{
console.log('2');
};
ops();
// 数组的扩展
// 三个点跟数组在一块会自动运算
console.log(...[1,2]); // 输出 1 2
// 原先合并数组 concat(不改变原数组)
let arr1 =[5,6];
let arr2 =[7,8]
console.log(arr1.concat(arr2));
console.log(arr1);
// 自动解析 自动 push
let op = [...arr1,...arr2];
console.log(op); // 输出[5,6,7,8]
let [x,...y] =['12121s',8,9,'ops',5]; // 数组值一一对应 要是像这样 (...y) 是每个值 但是 (y) 还是数组
console.log(typeof x)
console.log(y); //y输出[8,9,'ops',5];
// ...y 意思是 y能容纳多个值 并转化成数组 在传参的时候还有对应值得时候
let xy =[...'es6'];
console.log(xy); //输出['e','s','6']
//总结一下 ...
//1. ...在传参的时候还有对应值得时候 ...y 意思是 y能容纳多个值,y自身转化成数组
//2. ...[]的时候
console.log(...[1,3]); // 输出 1 3
console.log([...[1,3]]); //输出 [1,3]
console.log([...[5,6],...[7,8]]); //输出[5,6,7,8]
//3. ...''的时候
console.log(...'opsss') //输出 o p s s s
console.log([...'es6']); //输出['e','s','6']
//在总结一下 ...对于字符串跟数组能都纯输出 一旦最外城有[] 集合成员(自动push)