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]) }