JavaScript基础第五天

函数数组去重

思路:1.调用去重函数,将任意数组作为实参输入到函数中。2.创建一个新的数组,用于接收去重后的新的元素,根据输入的数组,遍历数组,将当前遍历的元素都与数组中的每个元素进行比较。3.调用比较函数,传入两个参数,判断数值与数组中遍历的元素是否相等,如果相等直接return false;否则return true   4.根据比较函数的返回值,去重函数直接判断,如果返回值为true则将当前的遍历的元素,追加到新的数组中。5.return 新的数组

作用域

解题思路:1.先划出全局和局部的作用域;2.分清全局和局部的变量 3.局部查找规则,先局部后全局

全局作用域

在script标签内,function之外的区域称为全局作用域

局部作用域

在function之内的区域称为局部作用域

全局变量

在全局作用域声明的变量

局部变量

在局部作用域声明的变量

函数内变量查找规则,先局部查找,若果没有再全局查找

局部变量只能在局部作用域使用,局部作用域可以使用全局变量,但全局作用域不能使用局部变量

预解析

在js真正执行之前,会将var 变量;和function函数提前声明

注意

    1.变量预解析的声明不能够同时赋值

    2.函数预解析,能够将函数体内部同时预解析,如果已经预解析的变量或函数,重新预解析

    3.当变量和函数重名时,函数预解析的优先级高于变量,临时覆盖同名变量

匿名函数

    没有名字的函数,能够自动执行,无法调用

    使用方式

    1.将函数赋值给一个变量

    该变量等价于同名的函数,可以使用函数的调用方式,但等价于,不是等于,只是便于理解如何调用匿名函数的功能

    2.匿名函数自执行

        将函数赋值给一个变量

        var a = function () {

            console.log(1);

        }

    等价于:

    function a(){

        console.log(1);

    }

    等价于,不是等于,只是便于理解如何调用匿名函数的功能

      a(); // 1

    匿名函数自执行

    (function () {

        var a = 1;

        console.log(a);

      })();

      (function () {

            var a = 2;

            console.log(a);

      })();

      (function () {

            var a = 3;

            console.log(a);

      })();

    将原本可能为全局变量的变量使用自执行函数包裹,将其变成自执行函数的局部变量,隔绝作用域,在自执行函数内部完全不影响使用

函数也是一种数据类型

        1.可以赋值给变量

            var a = function (){

                console.log(1);

              }

              a();

        2.可以作为参数传递

          fn1(1);

          fn1(function(){

              console.log('我是一个参数');

          });

        3.可以当做返回值  被return出来

        function test() {

            return function(){

                  console.log(22222);

                    };

          }

          var result = test();

          result();

了解对象

什么是对象

    客观世界中具象化的实体,每个对象都有对应的特征

为什么要学习对象

    将现实生活的事物具象化的实体,编程是为了解决这些具象化事物而工作的

对象的创建

字面量

   语法:var obj={

        属性1: 属性值1,

        属性2: 属性值2,

        属性3: 属性值3,

        属性4:function (){

            console.log("你好呀");

            },

        属性5:属性值5

    };

实例:


使用构造函数

    语法:var obj = new Object();

    实例:

    var user2 = new Object();

    user2.name='username2';

    user2.age= 18;

    user2.sex= 'male';

    user2.score= 200;

    console.log(user2);

对象的使用

    直接使用对象的属性:console.log(obj.name);

    实例:

        console.log(cj);

        console.log(cj.friend('李鑫'));

        console.log(cj.like('文慧'));

        console.log(cj.hobby[2]);

        console.log(cj.hobby[5]);

        console.log(cj.like('婷妹妹'));

    将对象的属性重新赋值:obj.name=“张三”;

    cj.beizhu = '舍不得飞飞,怎么办啊';

    cj.hobby[2] = '唱歌' ;

    console.log(cj);

    和改的方式一样,如果没有该属性即为创建新的属性,如果有即为修改属性

    cj.styand = '优秀';

    console.log(cj.styand);

    将对象的属性删除,使用语法:delete obj.name

    delete cj.add;

    console.log(cj);

你可能感兴趣的:(JavaScript基础第五天)