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.对象实例特指以一个事物

posted @ 2022-04-09 14:17  RoddyBryce  阅读(65)  评论(0)    收藏  举报