javascript函数调用以及对象

110 阅读2分钟

1、arguments

<script>        function fn() {            // 函数体            // 这个不是一个真正的数组            // console.log(arguments)            // console.log(arguments.length)            // console.log(arguments[0])            for(var i = 0; i < arguments.length; i++) {                console.log(arguments[i])            }        }        fn(1, 2, 3, 4)        fn(1, 2, 3, 4, 5, 10)        // argument不是一个真正的数组,    </script>

2、 判断是否为闰年

    <script>        // 1.利用函数判断闰年        function isRunYear(year) {            if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {                return true            }else {                return false            }        }        console.log(isRunYear(2000))        console.log(isRunYear(2020))    </script>

3、函数与函数之间调用

函数的命名方式
  <script>        // 1.函数声明式        function fn() {}        // 2.函数表达式        var fn = function() {        }        // 3.        var fn = new Function()    </script>   

 <script>        function fn1() {            fn2()            console.log("这是fn1")        }        function fn2() {            // fn1()            console.log("这是fn2")        }        fn1()    </script>

//用调用判断闰年
 <script>        function isRunYear(year) {            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {                return true            } else {                return false            }        }        function inputDay() {            var year = Number(prompt("请输入您的年份:"));            if(isRunYear(year)) {                alert("当前年份是闰年")            }else {                alert("当前年份是平年")            }        }        inputDay()    </script>


4、作用域局部作用域,只能在局部使用,并且没有块级作用域

   <script>        // 整个script标签或者单独的js文件        var a = 1;          function fn() {            var b = 1; // 局部作用域,b只能在fn中进行访问!!!            console.log(b)        }        console.log(b) // 不能打印b值,b是一个局部作用域中的内容    </script>

5、作用域链

    <script>        // 内部函数访问外部函数的变量,采用的是链式查找的方式来决定取哪个值!!        // 向上查找!!!        var num = 10;        function fn() {            var num = 20;            function fun() {                // 1.先查找fun里面有没有num                console.log(num) // 20            }            fun();        }        fn()    </script>

6、创建对象的方式1

表达对象的属性和方法!!! key:value

例如

var zhangsan = {            //表达对象的属性和方法!!! key:value            name: "zhangsan",            sex: "man",            age: 18,            sayHell: function() {                alert("大家好!!!")            }        }

怎么访问属性和方法

 console.log(zhangsan.sayHell)  或者zhangsan['name']

创建对象方式2

    <script>        // var obj = {}        var obj = new Object();        obj.name = "lisi";        obj.sex = "man"        obj.sayHi = function() {            alert("大家好!!!")        }        var obj1 = {        }        obj1.name = "lisi";        obj1.sex = "man"        obj1.sayHi = function () {            alert("大家好!!!")        }        console.log(obj.name)    </script>

创建对象方式3 构造函数、构造对象

    <script>        //         // function createObj(name, sex) {        //     var obj = {}        //     obj.name = name;        //     obj.sex = sex;        //     obj.sayHello = function() {        //         alert("sayHello")        //     }        //     return  obj        // }        // var obj1 = createObj("zhangsan", "man")        // var obj2 = createObj("lisi", "man")        // 构造函数 -- 构造对象呢        function Person(name, sex) {            this.name = name;            this.sex = sex;            this.sayHello = function() {                alert("大家好!!!")            }        }        // new Person 原理是什么?        var p1 = new Person("zhangsan", "man")        var p2 = new Person("lisi", "man")        // p1 和 p2是什么? p1和p2两个新的对象。称为实例对象!!!        function Person(name, sex) {            var obj = {}            obj.name = name;            obj.sex = sex;            obj.sayHello = function() {                //...            }        }    </script>

7、对象的遍历

    for(var key in obj) {            console.log(key)            // console.log(obj.key) 这样写是不行的            // obj.key ==> obj里面有没有key属性            console.log(obj[key])        }