2020.11.20 setInterval函式的注意事項 ES6-8學習(let const 解構賦值)

tatakae發表於2020-11-21

一、setInterval,setTimeout函式的注意事項

setinterval和settimeout函式內部 是全域性作用域
如果要想在setinterval和settimeout函式內部呼叫函式外部的變數,函式和變數值必須用let 定義

在這裡插入圖片描述

二、ES 6–8

let關鍵字

宣告變數

let a,b,c,d;

宣告特性

1.變數不能重複宣告: let a = 0; let a= 1;(會報錯)
2.塊級作用域:在{}內部定義的let 在外部無法訪問
3.沒有變數宣告提升(不允許在變數宣告前使用該變數):
console.log(a);(會報錯)
let a = 0;
注意在for函式中定義的變數
for(var i = 0;i<4;i++){
num[i].onclick =function(){
num[i].style.color = 'red';//會報錯,因為num[5]不存在
//因為沒有塊級作用域,在這用var 定義的i相當於如下:
{
var i =5;
}
{
var i =5;
}
{
var i =5;
}
}

//而用let 定義的變數就不會這樣了,因為i存在塊級作用域
for(let i = 0 ;i<4;i++){
num[i].onclick =function(){
num[i].style.color = 'red';
}

在這定義的let i 相當於如下:
{
let i =5;
}
{
let i =5;
}
{
let i =5;
}

const關鍵字定義常量

1.宣告常量
const denghzhu =‘dz’;
2.常量的值不能修改
dengzhu = ‘dj’;(這裡會報錯 )
3.一般使用大寫字母開頭(潛規則)
const DENGZHU = ‘unstopable’;
4.跟let一樣都是塊級作用域({}內定義的常量 外部呼叫不了):
在這裡插入圖片描述
這裡會報錯
5.對於常量為陣列 或者 物件 的修改不會報錯

 const RNG = ['UZI', 'MLXG', 'MING'];
        RNG.push('LETME');//這裡不會報錯

///
/
/
/

變數的解構賦值

定義:允許按照一定模式從陣列和物件中提取值,並對變數進行賦值

1.陣列的結構

2.物件的解構

相關文章