目錄
變數的宣告
var命令
let和const命令
變數的解構賦值
陣列的解構賦值
物件的解構賦值
字串的解構賦值
數值、boolean的解構賦值
1.可以重複宣告
var a=10;
var a=12;
console.log(a); //12
2. 變數可以提公升
console.log(a); //undefined
var a=10;
3. 沒有塊級作用域
for(var i=0;i<10;i++)
console.log('外部i',i); //10
1.不能在相同作用域內重複宣告變數
let a=10;
let a=12;
console.log(a) //報錯
//報錯
if(true)
2.變數不可以提公升
console.log(a); //referenceerror
var a=10;
3.有塊級作用域
for(let i=0;i<10;i++)
console.log('外部i',i); //undefined
4.存在暫時性死區
如果區塊中存在let和const命令,則這個區塊對這些命令的宣告的變數從一開始就形成封閉作用域。只要在宣告之前使用這些變數,就會報錯。
if(true)
const命令
1.const命令用來宣告常量。一旦宣告,其值就能改變。這就意味著用cost宣告的常量必須要初始化。
const pi=3.14;
pi=3;// typeerror:"pi" is read.only
const a; //syntaxerror
2.const宣告的常量只在當前**塊有效。如果要跨模組則採用 模組暴露的方式。
// test1.js
export const a=2;
import * as constants from './constants';
console.log(constants.a);
let arr=['terry','tom','larry'];
let a=arr[0];
let b=arr[1];
let c=arr[2];
//等價於下面這種
let [a,b,c]=arr;
let [head,...tail]=[1,2,3,4]; // head=1;tail=[2,3,4]
預設值
//預設值
let [a,b,c,d="dd"]=[1,2,3];
console.log(a) //1
console.log(d); //'dd'
案例:交換兩個變數的值
//交換兩個變數的值
let a=1;
let b=2;
[a,b]=[b,a];
物件的解構是先找到同名屬性,然後再賦值給對應的變數。
var obj=
let =obj;
console.log(a) //"cc";
conoole.log(b) //12
//可以簡寫如下形式===>
let =obj;
console.log(name); //"cc"
指定預設值
預設值生效條件是物件的屬性值全等於undefined
var ={};
x //3
var =;
x //1
y //5
var =
x //3
var =
x //null
1. 可以將字串轉換成乙個類似陣列的物件
let [a,b]="hello";
console.log(a) //'h';
//===>
let [c,d]=['h','e','l','l','o'];
2. 使用string原型中的方法進行解構
let s1="hello";
let =s1;
substring.call(s1,0,2); // 'he'
解析值的時候,如果等號右邊是數值或布林值,則會先轉換為物件。
let =123;
s===number.prototype.tostring //true
let =true;
s===boolean.prototype.tostring //true
Es6之變數宣告
es6變數宣告let 和 canst,let 所宣告的變數具有塊級作用域,且宣告的變數不會前置,而const宣告的是不變了常量 let test test let 所宣告的變數只在塊級作用域內有效,而var就不同 for var i 1 i 5 i console.log str 輸出hello.c...
ES6 變數宣告方式
var,function,let,const,import,class1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 4.暫時性死區tdz 1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 console....
ES6的變數宣告方式
保留了var和function。新增加了let const class和import。而且,let const class宣告的全域性變數再也不會和全域性物件的屬性掛鉤了。let 1 let只在所在的 塊中有效 for var i 0 i 10 i console.log i 10 for let ...