定義變量 用let, 已被瀏覽器實現(xiàn)
let a =12;
var obj = {
name : "小明",
age : 12,
sex :"男",
sayHello : function(){
alert("你好")
}
};
obj.sayHello();
代碼塊:{}包起來的代碼,形成了一個作用域,塊級作用域
比如:if for while
特點 只能在代碼塊里使用
var 只有函數(shù)作用域
let具備塊級作用域,不允許重復聲明
let a =12;
let a = 5; //錯的
總結(jié):其實let才接近其他語言的變量
用處: 封閉空間
(function(){
var a =12; //code
})()
//現(xiàn)在
{
let a =12;
}
可以解決i問題
**總結(jié):塊級作用域 其實就是匿名函數(shù)立即調(diào)用 **
const 用來定義常量 一旦被賦值 以后再也不能修改
const a = '大組件';
a = 12;
alert(a) //報錯
注意: const必須給初始值 ,因為以后再也沒法賦值了,所以聲明的時候 一定得有值
用途:為了防止意外修改變量,比如引入庫名,組件名
字符串連接:
之前:'abc'+變量名+'ef'
var a ='別墅';
var str='別墅太師椅團里,'+a+'奪奪,地工,別墅無可奈何花落去封頂 ';
document.write(str);
現(xiàn)在:反單引號 (1前面那個鍵)** **現(xiàn)在:`abc${變量名}ef`** **var str =; //字符串模板
var a ='別墅';
var str=別墅太師椅團里,${a}別墅奪奪,地工,別墅無可奈何花落去封頂;
document.write(str);
結(jié)構(gòu)賦值
var [a,b,c] =[12,5,101];
console.log(a,b,c); //12 5 101
等價于
var a = 12;
var b = 5;
var c =101;
json結(jié)構(gòu)賦值寫法
var {a,b,c}={a:12,b:5,c:101};
alert(a);//12
var {a,b,c}={b:5,a:12,c:101};
alert(a);//12 跟順序無關(guān)
模式匹配:左側(cè)樣子與右側(cè)一樣
交互:數(shù)據(jù)解析:
[{title:'',href:'',img:''}]
結(jié)構(gòu)賦值還可以給默認值
var json={};
json.a||12;
現(xiàn)在:
var {time=12,id=0} ={};
console.log(time); //12
語法 var {time=12,id=0} ={};
例:
function move(obj,json,options){
options=options||{};
options.time=options.time||300;
}
等價于
function move(obj,json,{time=300}={})
例二
function getPos(){
return{left:100,stop:1000} //這里命名stop會有命名沖突,會打印出window
};
var {left,stop}=getPos();
console.log(left,stop);// 100 1000