?本篇文章给大家带来的内容是关于javaScript引用类型的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
本篇文章给大家带来的内容是关于javaScript引用类型的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 概念 : 引用类型是一种数据结构,用于将数据和功能组织在一起,也就是 类; 1、object类型//普通方法 var person = new Object(); person.name = "syr"; person.age = 22; //对象字面量 var person = { name : "syr", age : 22, 5 : true //5自动转为"5" } * 数值属性名会自动转为字符串; * 对象字面量推荐只在属性名可读的情况下使用,也是向函数传递大量参数首选方式,必须使用命名参数,对象字面量封装多个可选参数。 * 访问对象一般用点表示法,js中也可以用方括号法,将要访问的属性以字符串的形式放进去。 例 : alert(person["name"]); // 等于 person.name * 方括号法主要优点是可以通过变量来访问属性。 * 点表示法属性名不能包含错误的自负或者保留字和关键字,但方括号法可以。 * 通常,除非必须使用变量来访问属性,否则推荐使用点表示法。 2、Array类型:* 数组:数据的有序列表。 es中的数组每一项都可以保存任何类型的数据,数组大小也可以动态调整。 方法一 : new可以省略; var colors = new Array(); 方法二 : 数组字面量 var colors = ["red","blue","green"]; 与对象一样,字面量不会调用Array构造函数。 var colors = ["red","blue","green"]; colors[0] // 显示第一项 colors[2] = "black"; // 修改第二项 colors[3] = "brown" ; //增加第四项 colors.length = "black" ; 增加一项 length属性可返回数组的长度,可增加和移除数组的项。 * 检测数组 value instanceof Array // 判断是否为数组 Array.isArray(value) // isArray确定到底是不是数组,不管在哪个环境中创建 * 转换方法 所有对象都具有toLocalString()方法,后台调用tostring(),null和undefined返回结果以空字符串表示。 * 栈方法 : 后进先出(吃了吐) push() : 接受任意数量参数,添加到末尾; * 队列方法 : 先进先出(吃了拉); shift() : 前端移除项并返回该项,长度减1; * 重排序方法 reverse() : 逆序; function compare(value1,value2){ if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; }else{ return 0; } } value = [0,1,5,10,15];value.sort(value); //0,1,5,10,15 * 操作方法 concat()拼接 : 先把原数组复制一个,然后把参数添加至末尾,原数组不变。slice(1,2) : 剪切:返回参数1起始位置,参数2为结束位置,包前不包后,原数组不变。solice() : 主要向数组中插入项。(数组操作最主要的方法): * 位置方法 indexof() : 从头查找 var number = [1,2,3,4,5,4,3,2,1]; number.indexof(4) ; //返回5 * 迭代方法 every(); * 归并方法 reduce() : 从头 3、Date类型var now = new Data(); date.parse("May 25,2004"); // 新建特定日期 * 继承: 重写了3个方法 toLocalString() : 浏览器设置日期; * 日期格式化方法: -toDateString() : 特定格式显示星期、月、日、年; 4、RegExp类型: 正则表达式;var expression = /pattern/flags; 标志flags包括 : g : 全局; i : 不区分大小写; m : 多行模式; 例子 : var pattern = /at/g 全局找at var pattern = /[bc]at/i ; 匹配第一个bat或cat,不区分大小写。 无意符须转义; * RegExp实例方法: RegExp主要方法是 5、function类型* 概念 函数实际就是对象,与其他引用类型一样,有属性和方法,函数名就是只想对象的指针。 * 没有重载 声明相同函数时,后面的会覆盖前面的函数。 * 函数声明和函数表达式 function sum(){ } // 函数声明 var sum = function(){ } // 函数表达式函数声明可以变量提升,任何时候任何位置都可以调用。 * 作为值的函数 把函数作为参数传给另一个函数,要访问函数而不执行函数,必须去掉函数名后面的那对圆括号 return function(obj1,obj2){ var val1 = obj1[pro]; var val2 = obj2[pro]; if(val1 > val2){ return 1; }else if(val1 < val2){ return -1; }else{ return 0; }}} var data = [{name:"AN:,"age":20},{name:"BN:,"age":30}] data.sort(compare("name")); * 函数的内部属性 内部含有两个特殊对象:this和argument if(num <= 1){ return 1; }else{ return num * fac(num-1); // 等同于 return num * argument.callee(num -1); }} 方法一与函数名耦合严重,且只有名称确定或不发生改变时使用。 方法二更合适 * this : 引用的是函数执行的环境对象,函数的名称仅为包含着指针的变量而已,所以在不同的环境中执行引用的也是相同的函数。 * 函数的属性和方法(重点) 函数也是对象,因此有属性和方法; * -属性 : length 和 prototype -length 表示希望接收命名参数的个数。 * -方法 : 非继承而来的方法有两个: apply() 和 call(). 作用为在特定的作用域中调用函数,实际是设置函数体内this对象的值。两个方法的作用相同,区别为接收参数的方式不同。call() : 参数一一列举 6、基本包装类型 (也是对象)为方便操作基本类型值,提供3个特殊引用类型:Boolean,Number和String. * Boolean 类型 typeof 基本类型 // ‘boolean’typeof 引用类型 // 'object'建议永不要使用Boolean对象 * Number 类型 toFixed()方法 : 按照指定方法返回数值的字符串表示。 * String 类型 属性:length : 表示含多少个字符方法: 7、单体内置对象已自行实例化,可直接使用,Global和Math * -Global对象,全局对象:所有全局作用域中属性和方法都是它的。 --url编码 * -Math对象 --Math.ceil():向上取整。 * random()方法:随机数,返回0~1之间随机数。 本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript视频教程栏目! 以上就是javaScript引用类型的详细介绍(附示例)的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |