Javascript笔记 DAY6

<script type="text/javascript">


//变量作用域


//情形1:


// var a =1;


// function test(){


// var a =2;//局部变量
// alert(a);//l临近原则弹出2
// }
// test();
// alert(a);//全部变量并未改变还是1


//情形2:
//  var a=1;
// function test(){


// alert(a);//弹出undefined,虽然test上方声明并赋值了a,但是位于alert下,a变量被提升,输出值声明但未赋值,所以弹出undefined
// var a =10;


// }
// test();


//情形3:
// var a = 1;
// function test(){
// alert(a); //输出1全局变量还未改变
// a=10;
// }
// test();
// alert(a);//全局变量被重新赋值为10


//情形四:
// function test(){
// alert(a); //弹出未定义,由此可看出js是认为a声明了只是未赋值(即变量提升功能),如果去掉var a=10下面那句则直接报错a is not defined,可以用来解释情形2
// var a =10;


// }
// test();




//let(ECMASCRIPT6)和var的区别
//情形1:
// let a=1;
// function test(){


// alert(a); //程序直接报错崩溃(a is not defined),不像var 一样只是弹出undefined值,说明let不存在变量提升功能(var才有)
//alert(b);//弹出undefined
// let a = "helloworld";
//   var  b="ss";
// }
// test();




//情形2:
// function test(){
// var a =1;
// var a=5;
// let b=2;
// let b=4;//报错Identifier 'b' has already been declared,说明用let声明变量,同一个变量不能重复声明,而var则没有问题
// }
// test();




//情形3:
// var a=1;
// function test(){
// var a=10;//此时属于声明一个局部变量a,并未改变全部变量a的值
// }
// alert(a);//弹出1


//情形4:
// function test(){
// var a = 1;
// let b = 2;


// {
// var a = 10;
// let b = 5;
// }
// alert(a);//10 覆盖了代码块外的变量a
// alert(b);//2 没有覆盖代码块外的b


// }
// test();


//This指向N种情况


//情况1:
//this  test()作为普通函数此时this指向window
// function test(){
// this.r=1;
// alert(this);
// }
// test();


//情况2:
//test对象,此时this指向当前对象this
// var test={
// name:"jack",
// fn:function(){
// this.x=5;alert(this)
// }
// }
// test.fn();


//情况3:


// var obj ={


// name:'tom',
// getName:function(){
// return this.name
// }
// };
// var getN=obj.getName; //将obj对象中的getName方法赋值给变量,此时方法中的this不再指向obj对象,而是指向window对象


// alert(getN());


//情况4:
//this指向window
// function test(){
// this.r=5;
// alert(this);
// }
// function t(){
// test();
// }
// t();




//情况5:
// function test(){


// alert(this);
// }
// //此时this指向当前对象a
// var a = new test();






</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值