JavaScript高级篇
一 arguments:
1.在JavaScript中,每一个函数都包含一个arguments属性
2.arguments属性是一个数组
3.在函数调用时,将实参传入函数的arguments中,再由arguments将数据传递给形参
4.arguments属性存在,可以将JavaScript中的函数在调用时传递实参与形参进行隔离
增加函数调用的灵活性
5.arguments属性只能在函数体内进行使用,不能在函数体外使用
二 function类型对象
1.介绍:
1)function是JavaScript中一种高级数据类型
2)一个function类型对象用于管理一个具体函数
3)JavaScript中的function类型相当于Java中Method类型
2.function类型对象声明方式:
1)标准声明方式
2)匿名声明方式
3.function类型对象声明方式-----标准声明方式
function 函数对象名(参数1,参数2){
命令:
}
4.function类型对象声明方式-----匿名声明方式
var 函数对象名 = function(参数1,参数2){ 命令1,命令2....}
5.function类型对象创建时机:
浏览器在加载<script>时,给加载两次
第一次加载,将<script>标签中所有以标准形式声明的函数对象进行创建
第二次加载,将<script>标签中所有的命令行按照自上而下的顺序来执行
三 局部变量与全局变量
1.局部变量
1)定义:在函数执行体内,通过var修饰符声明的变量
function fun1(){
var name="mike"; //局部变量
}
2)特征:局部变量只能在当前的函数执行体使用,不能在函数执行体外使用
2.全局变量
定义:
1)全局变量可以在当前HTML文件中所有的函数中使用
2)全局变量被声明时,自动分配给window独享作为其属性
声明全局变量:
第一种方式:直接在script标签下,通过var来声明的变量
第二种方式:在函数执行体内,没有通过var修饰符修饰的变量也是全局变量
四 object类型对象特征
1.定义:在JavaScript中,认为所有通过构造函数所生成的对象其他数据类型都是objecr类型
2.特征:object类型对象在创建完毕后,可以根据实际情况任意添加属性和方法,也可以移除
相关属性和方法
3.属性维护:
第一种维护方案:
添加属性: object对象.新属性名称=值;
添加函数: object对象.新函数对象名=function(){};
第二种维护方案:
添加属性:object对象["新属性名"]=值;
添加函数:object对象["新函数对象名"]=funct(){};
移除属性和方法:
delete object.属性名;
delete.object.函数名;
五 自定义构造函数
1.命令:funcion 函数对象名(){
}
2.调用:var object类型对象 = new 函数对象名();
3.普通函数与构造函数区分:
1)函数没有调用之前,无法区分函数身份,只能根据函数的调用形式区分
2)判断普通函数:var num =函数对象名();
3)判断构造函数:var num = new 函数对象名();
4)返回值:普通函数在运行后需要通过return将执行结果返回
构造函数在运行后,直接返回一个object类型对象,此时
函数return相当于无效
六 JavaScript中this指向:
1.JavaScript中this的指向与Java中的指向是完全一致的
1)在构造函数中,this指向的是当前构造函数所生成的object类型对象
2)在普通函数中,this指向调用当前函数的实例对象
七 JSON:
1.前提:在JavaScript中,得到object类型对象的方式
方式1:由构造函数生成的对象都是object类型对象
方式2:由JSON数据描述格式生成对象都是object类型对象
2.JSON数据描述格式:
JavaScript中获得object类型对象简化版
3.标准命令格式:
var obj = {"属性名1":值,"属性名2":值};
开发人员习惯于将由JSON生成object类型对象称为【JSON对象】
4.JSON数组:
专门存放JSON对象的数组被称为JSON数组