1. let
let:ES6新增,用于声明变量,有块级作用域
var:ES5中用于声明变量的关键字,存在各种问题
(1) var存在的问题
// 1.声明提升
// 此处会正常打印,但这是错误的
console.log(name);
var name="大帅比";
// 2. 变量覆盖
var demo="小明";
var demo="小红";
/
/ 此处可以再次声明同名的变量
// 同一个项目中,发生变量覆盖可能会导致数据丢失以及各种不可预知的bug,原则上来说:变量不能重名console.log(demo)
// 3. 没有块级作用域
function fn1(){
for(var i=0; i<5; i++){
// do something
}
// 此处会正常打印出 i 的值,这是不合理的
// i是定义在循环体之内的,只能在循环体内打印,当前现象不合理
console.log(i);
}
fn1();
(2) let不会存在上述问题
// 1. 不会存在声明提前
// 此处会报错(这里必须报错,原则上来说不能先上车后买票)
console.log(name);
let name="大帅比";
// 2. 不会有变量覆盖
let demo="小明";
let demo="小红";
// 此处会报错,不可以重复定义变量
console.log(demo)
/
/ 3. 有块级作用域
function fn2(){
for(let i=0; i<5; i++){
// do something
}
// 此处会报错,无法打印
// i是定义在循环体之内的,循环体外当然无法打印
console.log(i);
}
fn2();
2. const
const 声明一个只读的常量,一旦声明,常量的值就不能改变
一般用于全局变量
const PI="3.1415926";
3. 解体赋值
(1) 用在数组上
// 1. 直接解构
let [a, b, c] = [1, 2, 3];
console.log(a, b, c);
// a = 1,b = 2,c = 3 相当于重新定义了变量a,b,c,取值也更加方便
// 2. ","代表占位符
let arr= ["aa", "bb", "cc", "dd"];
/
/ 这里会取到 cc
let [, , one] =arr;
console.log(one);
// 3. 解构剩余的全部内容
let strArr= [...arr];
// 得到整个数组
console.log(strArr);
// 4. 合并数组
let arr1= [1, 2, 3];
let arr2= [...arr1, 4];
console.log(arr2);
es6字符串转数组(2) 用在字典对象上
// 1. 解构指定属性
let user= {
username: "卡西诺",
password: "123456",
age: 18
}
let { username, age } =user;
console.log(username, age);
// 2. 解构剩余内容
let { a, b, ...demo } = { a: 1, b: 2, c: 3, d: 4 };
console.log(a, b, demo);
// 3. 合并对象
var obj1= {
a: 1,
b: 2
}
var obj2= {
...obj1,
c: 3
}
console.log(obj2);
4. 模板字符串
加强版的字符串
使用"``"来包裹字符串
let str1="穿堂而过的";
let str2="风";
// 1. 填充字符串
let newStr=`我是${str1}${str2}`;
console.log(newStr)
// 2. 字符串中调用方法
function fn() {
return"饿";
}
let string2=`我真是${fn()}`;
console.log(string2);
6. ES6函数
(1) 函数参数的默认值
未传递参数或者参数为 undefined 时,会使用参数的默认值null 值被认为是有效的值传递
function fn(param1, param2 = 10) {
console.log(param1, param2);
}
fn(1); // 打印 1,10
fn(1, 2); // 打印 1,2 (此值会覆盖默认参数10)(2) 不定参数和箭头函数
/
/ (...num) 表示参数的个数不确定
let getSum= (...num) => {
let ret=0;
for (let i=0; i<num.length; i++) {
ret+=num[i];
}
return ret;
}
console.log(getSum(1, 2, 3, 4, 5, 6, 7, 8, 9));
(3) 箭头函数
// 1. 省略返回值
let fn= (num1, num2) =>num1+num2;
console.log(fn(1, 3));
// 2. 简单使用
let getSum= (...num) => {
let ret=0;
for (let i=0; i<num.length; i++) {
ret+=num[i];
}
return ret;
}
console.log(getSum(1, 2, 3, 4, 5, 6, 7, 8, 9));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论