let、const变量声明及声明特性、模板字符串的使用
let变量声明及声明特性
声明格式
let a;
let b,c,d;
let e = 100;
let f = 521 , g = 'iloveyou', h = [];
声明特性
- 变量不能重复声明
- let具有块级作用域
// 在{}作用域中才生效
{
let num = 1
}
console.log(num)
// 会报错
- 不存在变量提升
consol.log(song)
let song = "suibian"
// 以上结果会报错
const 变量声明及 声明特性
声明格式
const SCHOOL = '一个学校名称'
声明特性
- 一定要赋初值
- 一般常量使用大写(默认行为)
- 常量的值不能修改
- 有块级作用域
- 对于函数和对象的元素修改不算对常量的修改,不会报错
再对数组元素以及对象的属性进行增删改查的操作时,因为
const
常量指向的常量地址并未有发生变化。所以对于函数和对象的元素修改不算对常量的修改。
模板字符串的使用
使用反引号
模板字符串特性
- 字符串中可以使用反引号
- 可以进行字符串拼接‘
举个小栗子
// 可以支持换行
str = ` <ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>`;
// 拼接字符串
const star = '杨紫'
let speak = `${star}演技很不错`
console.log(speak)
箭头函数的声明及特性
使用格式
let fn = (a,b) => {
return a+b
}
声明特性
this
是静态的,this
始终指向函数声明所在作用域下的this
值
window.name = "全局name";
function fn1() {
//'普通函数'
console.log(this.name)
}
let fn2 = () => {
//'箭头函数'
console.log(this.name)
};
fn1();
fn2()
const test = {
name:'只有普通函数可以调用我'
}
fn1.call(test)
fn2.call(test)
- 不能作为构造器实例化对象
- 不能使用
arguments
变量
arguments数量是接受是实参的数组集合
- 箭头函数的简写
一个形参可以省略小括号
代码体中只有一行代码时,可以省略花括号及return
。值会被返回。
使用场景
- 适合于
this
无关的回调。如定时器、数组的方法回调。 - 不适合与
this
有关的回调。如事件回调、对象方法的回调等。