定义变量 用let, 已被浏览器实现
let a =12;
var obj = {
name : "小明",
age : 12,
sex :"男",
sayHello : function(){
alert("你好")
}
};
obj.sayHello();
代码块:{}包起来的代码,形成了一个作用域,块级作用域
比如:if for while
特点 只能在代码块里使用
var 只有函数作用域
let具备块级作用域,不允许重复声明
let a =12;
let a = 5; //错的
总结:其实let才接近其他语言的变量
用处: 封闭空间
(function(){
var a =12; //code
})()
//现在
{
let a =12;
}
可以解决i问题
**总结:块级作用域 其实就是匿名函数立即调用 **
const 用来定义常量 一旦被赋值 以后再也不能修改
const a = '大组件';
a = 12;
alert(a) //报错
注意: const必须给初始值 ,因为以后再也没法赋值了,所以声明的时候 一定得有值
用途:为了防止意外修改变量,比如引入库名,组件名
字符串连接:
之前:'abc'+变量名+'ef'
var a ='别墅';
var str='别墅太师椅团里,'+a+'夺夺,地工,别墅无可奈何花落去封顶 ';
document.write(str);
现在:反单引号 (1前面那个键)** **现在:`abc${变量名}ef`** **var str =
; //字符串模板
var a ='别墅';
var str=别墅太师椅团里,${a}别墅夺夺,地工,别墅无可奈何花落去封顶
;
document.write(str);
结构赋值
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结构赋值写法
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 跟顺序无关
模式匹配:左侧样子与右侧一样
交互:数据解析:
[{title:'',href:'',img:''}]
结构赋值还可以给默认值
var json={};
json.a||12;
现在:
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