<script type="text/javascript">
/*
delete 关键字 删除对象的属性
var obj = {
a:1
}
b = 2;//挂载到了顶层的window上
delete obj.a;
console.log(obj.a)//undefined
console.log(window.b)//2
delete window.b;
console.log(window.b)//undefiend
js执行顺序
js第一阶段 编译期 对代码进行静态分析 找声明的变量、函数
检查代码是否符合规范
js第二阶段 执行期 运行js代码
let a=1; //let不具备变量提升
alert(a);
let b = 2;
function fn(c=3){//es6中形参参数可以赋值
console.log(c)
}
fn(b);//2
*/
console.log(a);//function a(){}
var a=1;
function a(){};
console.log(a);//1
//---下方交换变量和函数的位置
console.log(b);//function(){} 此处仍然打印出函数体,因为函数在js里是一等公民,所以如果同作用域出现函数声明和var等等的声明变量关键字所声明的变量名冲突时,function会覆盖其他的变量名
function b(){};
var b=2;
console.log(b);//2
//编译期
// var a
// function a(){}
//执行期
// console.log(a)
// a=1
// console.log(a)
</script>
网友评论