JavaScript作用域,对象
#1.作用域
1.1作用域概述
1.就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性更重要的是减少命名冲突
2.js作用域(es6)之前:全局作用域和局部作用域
3.全局作用域:整个script标签或者是一个单独的js文件
4.局部作用域(函数作用域)在函数内部就是局部作用域 这个代码的名字只在函数内部起效果和作用
2.1变量作用域
变量分为全局变量和局部变量
1.全局变量:在全局作用域下的变量
2.局部变量:在局部作用域下的变量, 或者在函数内部的变量就是局部变量 注意:在局部作用域下,没有声明的变量也是全局变量
#2.作用域链
只要是代码,就至少有一个作用域
写在函数内部的叫做局部作用域
作用域链:内部函数访问外部函数的变量,采取的是链式查找的方法来决定取那个值,这种结构我们称为作用域链,输出采用的是就近原则
案例1:结果是几
<script type="text/javascript">
function f1() {
var num = 123;
function f2() {
console.log(num);
}
f2()
}
var num = 456
f1()
</script>
#3.利用构造函数创建对象
构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值。
<script type="text/javascript">
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
}
var ldh = new Star('刘德华', 18, '男')
</script>
1.构造函数名字首字母要大写
2.我们构造函数不需要 return 就可以返回结果
3.我们调用构造函数必须使用new
4.我们只要 new Star()调用函数创建一个对象 ldh {}
new 关键字执行过程中
1.new 构造函数可以在内存中创建一个空的对象
2.this 就会指向刚才创建的空对象
3.执行构造函数里面的代码,给这个空对象添加属性和方法
4.返回 这个对象 在构造函数中不需要写 return 来返回对象,因为new 自带返回方法
#4.遍历对象
for...in 语句用于对数组或者对象的属性进行循环操作。
<script type="text/javascript">
//遍历对象
var obj = {
name: 'pink',
age: 18,
sex: '男'
}
//for...in 遍历我们的对象
for (var k in obj) {
console.log(obj[k]);
}
</script>
#5.小结
1.对象可以让代码变得更清晰
2.对象复杂数据类型object
3.本质:对象就是一组无序的相关属性和方法的集合
4.构造函数泛指某一大类
5.对象实例特指以一个事物

浙公网安备 33010602011771号