09-09let、const 和模板字符串、rest参数(...)和箭头函数

let用来代替var

相同点都是用来声明变量

不同点

1.let 命令不存在变量提升,用变量前先定义,提高代码可读性

2.ES6块级作用域,以往只有全局作用域和函数作用域,不会污染变量

3.不可被重复定义

基于以上3条,定义变量使用let更规范

const命令,用来定义常量 ===final 一旦被定义不能被改变

引用类型的话,地址不可变,值可变

代码示例:

<script type="text/javascript">

//let用来代替var

//相同点都是用来声明变量

//不同点1.let 命令不存在变量提升,用变量前先定义,提高代码可读性

console.log("foo",foo);

var foo=2;//underfined

let foo2=2;

console.log("foo2",foo2);

//2.ES6块级作用域,以往只有全局作用域和函数作用域,不会污染变量

var a=30;

{

var a=10;

let b=20;

}

console.log("a",a);

// console.log("b",b);

//3.不可被重复定义

var a=2;

var a=3.5;

var a="var可重复设置,最后一个a生效";

console.log("a",a);

let b=3.5;

console.log("b",b);

//基于以上3条,定义变量使用let更规范

//const命令,用来定义常量  ===final  一旦被定义不能被改变

const PI=3.1415926;

console.log("PI",PI);

//引用类型的话,地址不可变,值可变

</script>


模板字符串:

模板字符串,是一种优化功能(改善性功能)

以往拼串用+麻烦,用模板字符串是为了简化拼串(  ` `  )

let user ={

name:"duidui",

sex:"man",

birthday:"2020-20-20"

}

let usrstr=`性别为:${user.sex}`;

console.log(usrstr);


rest注意事项 

1. 固定参数和rest参数可以混合写

2.rest参数必须放到最后一个参数位置,否则会抛rest parameter must be 异常

代码示例:

function add(...args){

console.log(args);

let sum=0;

for (var i = 0; i < args.length; i++) {

sum+=args[i];

}

return sum;

}

let relust=add(2,3);

let relust2=add(2,3,4,5,6);

    console.log(`第一个结果为${relust},第二个结果为${relust2}`);

箭头函数:

let name="外部obj";

let obj={

name:"内部",

//普通函数写法

fun1:function(){

console.log("fun1",this);

},

//箭头函数写法

fun2:()=>{

//箭头函数没有自己的作用域,利用这一点,方便访问到外部对象

console.log("fun2",this);

}

}

//函数调用

obj.fun1();

obj.fun2();

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容