变量提升

变量提升

//1
			 console.log(a);//undefined
			 var a=10;
// // 如果一个变量声明以后,会把变量的声明提升到整个作用域的最前面,但是**赋值还是原来的位置** 
//等价于  var a;console.log(a); a=10;
//2
			 console.log(a)//a 没定义
			 a=10
// 如果一个变量没有声明直接赋值,作用域就是**赋值以后的区域可以使用**
//3
			 add()
			 function add(){
			 	console.log(111)//111
			 }
// 通过function 函数名(){}定义的函数,会把整个函数提升到作用域的最前面
//等价于 function add(){...}  add();
//4
			 add() //报错  add不是一个函数
			 var add=function(){
			 	console.log(111) 
			 }
//通过var声明 只会把变量提升到前面 赋值还是原来的位置
// 等价于 var add; add(); add=function(){...}
//5
			 var a=10;
			 function add(){
			 	console.log(a);//undefined
			 	var a=100;
			 }
			 add()
// 全局变量和局部变量同时生效,优先局部变量 
//6
			 function add(){
			 	var a=100;
			 }
			 console.log(a)// a没定义
//	在函数定义中var的变量 仅在调用时,动态创建 调用后,会随着局部作用域一同销毁!

//7
			 function add(){
			 	 a=100;
			 }
			 add()
			 console.log(a)//100
 如果一个变量没有声明直接赋值,作用域就是赋值以后的区域可以使用
//8
			function add(){
				var a=100;
			}
			add();
			console.log(a); //a 没定义
//函数内部声明的变量 只能在函数内部使用
		</script>

get set 应用

var circle={
	r:20,
// get 方法名  获取值
	get acr(){
		return Math.PI*this.r*this.r;
	},
// set  方法名  设置值
	set acr(value){
	this.r=value
	}
}
console.log(circle.acr);
circle.aaa=100;
console.log(circle.acr);

innerHTML的原理就是get set 方法

属性特征

属性意义
writeable是否可被修改 默认
enumerable是否可以被遍历
configurable是否可以被重新配置
value当前属性的值
var stu={
			name:'ww',
			age:10,
			}
			//普通方法创建的对象 可以直接修改
			//并且属性可以直接被遍历到
			stu.name="aa";
			// for(var key in stu){
			// 	console.log(key);
			// }
			//定义属性特征
			Object.defineProperty(stu,'password',{
				//对应的值
				value:123,
				// 是否可以被修改
				writeable:false,
				//是否可以被遍历
				enumerable:false,
				//是否可以被重新配置
				configurable:false
			})
			for(var key in stu){
				console.log(key);//值为 name age
			}
		// 修改不成功,但是不会报错
		stu.password=111;
		console.log(stu.password);//123
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值