本文摘自PHP中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于javaScript引用类型的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。概念 : 引用类型是一种数据结构,用于将数据和功能组织在一起,也就是 类;
对象为特殊的引用类型实例。新对象由new后加一个构造函数创建的。
构造函数:用于创建对象的函数。
例 : var person = new Object();
object为构造函数,为新对象提供默认属性与方法。
1、object类型
//普通方法
1 2 3 |
|
//对象字面量
1 2 3 4 5 6 7 8 |
|
例 : alert(person["name"]); // 等于 person.name
1 2 3 |
|
2、Array类型:
1 |
|
es中的数组每一项都可以保存任何类型的数据,数组大小也可以动态调整。
1 2 3 4 |
|
与对象一样,字面量不会调用Array构造函数。
1 2 3 4 5 |
|
length属性可返回数组的长度,可增加和移除数组的项。
1 2 3 4 5 |
|
所有对象都具有toLocalString()方法,后台调用tostring(),null和undefined返回结果以空字符串表示。
1 |
|
push() : 接受任意数量参数,添加到末尾;
pop() : 移除数组末尾一项。
1 |
|
shift() : 前端移除项并返回该项,长度减1;
unshift() : 前端推入一项;
1 |
|
reverse() : 逆序;
sort() : 顺序;
比较的是字符串,会自动转为字符串。
如 "10" 位于"5"的前面,因此应传给sort一个比较函数。
1 2 3 4 5 6 7 8 9 10 11 |
|
concat()拼接 : 先把原数组复制一个,然后把参数添加至末尾,原数组不变。slice(1,2) : 剪切:返回参数1起始位置,参数2为结束位置,包前不包后,原数组不变。solice() : 主要向数组中插入项。(数组操作最主要的方法):
-删除 : 可删除任意数量项,制定两个参数: arg1位要删除的位置,arg2为要删除的项数,例:splice(0,2) : 删除前两项;
-插入 : 三个参数。起始位置,删除项数和要插入的项,可在后面插入多个项。例 : solice(2,0,"red","green");从位置2插入"red"和"green".
-替换 : 同上,插入项不必与删除项数相等。
注意 : splice()会改变原始数组;
1 |
|
indexof() : 从头查找
lastIndexof() : 从未查找
arg1表示要查找的项,arg2为起始位置(可选参数),没找到返回-1,比较时使用的是全等。
1 2 3 4 |
|
every();
filter();
forEach();
map();
1 |
|
reduce() : 从头
reduceRight ; 从尾
都会迭代数组所有项,构建一个最终返回项。
3、Date类型
1 2 3 |
|
toLocalString() : 浏览器设置日期;
toString();
valueof();
1 |
|
-toDateString() : 特定格式显示星期、月、日、年;
-toTimeString() : 时分秒,时区;
toLocalDateString() : 按地区显示星期、月、日、年;
toLocalTimeString() : 时分秒;
toUTCString() : 特定格式显示完整UTC日期,具体显示因浏览器而异。
4、RegExp类型: 正则表达式;
1 2 3 4 5 6 7 8 9 |
|
RegExp主要方法是
-exec():捕获组,参数为一个字符串,返回数组,无匹配返回null,返回多两个额外属性:index 和 input。
index : 位置 input:捕获的字符串
-test():匹配则返回true,常用来验证用户输入。
5、function类型
1 |
|
函数实际就是对象,与其他引用类型一样,有属性和方法,函数名就是只想对象的指针。
1 |
|
声明相同函数时,后面的会覆盖前面的函数。
1 2 3 4 |
|
把函数作为参数传给另一个函数,要访问函数而不执行函数,必须去掉函数名后面的那对圆括号
// 从一个函数返回另一个函数
// 根据某个对象数组排序
function compare(pro){
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
内部含有两个特殊对象:this和argument
-argument:包含着传入的所有参数,内有callee属性,是一个指针,只想拥有此对象的函数。
// 递归算法算阶乘
function fac(num){
1 2 3 4 5 6 7 8 9 10 |
|
函数也是对象,因此有属性和方法;
1 |
|
-length 表示希望接收命名参数的个数。
-prototype 是保存所有势力和方法的真正所在,如里面保存着tostring(),valueOf等,也可以用来继承,极为重要。
prototype属性不可枚举,因此不能用for-in。
1 |
|
作用为在特定的作用域中调用函数,实际是设置函数体内this对象的值。两个方法的作用相同,区别为接收参数的方式不同。call() : 参数一一列举
apply() : 参数为一个数组两者的作用不止是传递参数,真正的作用是扩充函数的作用域。把访问不到的地方传进来。
bind():方法,创建函数实例,与this值绑定,全局作用域。
6、基本包装类型 (也是对象)
为方便操作基本类型值,提供3个特殊引用类型:Boolean,Number和String.
每读取值后台都会创建对应的基本包装类型的对象,才可以用方法操作数据。
引用类型与基本包装类型主要区别为对象生存期,用new创建引用累心实例一直保存在内存中,自动创建基本包装类型存在执行瞬间,然后立即销毁,所以不能给基本类型添加属性和方法。
1 |
|
typeof 基本类型 // ‘boolean’typeof 引用类型 // 'object'建议永不要使用Boolean对象
1 |
|
toFixed()方法 : 按照指定方法返回数值的字符串表示。
var num = 10;num.tpFixed(2) // '10.00'
toExpoential() : 幂
1 |
|
属性:length : 表示含多少个字符方法:
1)字符方法:charAt()和charCodeAt():查找某个字符在字符串中的位置。 charCodeAt():查找字符编码
2)字符串操作方法:拼接用+号
-三个给予字符串创建新串:
slice():切片 // 第一个参数为起始位置,第二个参数为结束位置substr():子函数 // 第一个参数为起始位置,第二个参数为截取的个数substring():子串 // 第一个参数为起始位置,第二个参数为结束位置
以上方法都不会影响原始字符串
3)字符串位置方法:
indexof:从字符串中查找字符串,返回位置,查不到则返回-1.
indexOf:从头查找lastIndexOf:从尾查找 返回第一次出现的位置
4)trim:创建字符串副本,删除前后所有空格,原始字符串不变。
5)字符串大小写转变:
toLocalUpperCase():转大写,针对特定地区
toLocalLowerCase():转小写,针对特定地区
toUpperCase():转大写
toLowerCase():转小写
6)字符串模式匹配方法:
match():与RegExp的exec方法相同,参数为正则表达式活RegExp对象。
search():从尾开始查找,参数与match相同,找不到返回-1
replace():替换
split():切片,基于指定分隔符字符串为多个子字符串。第二个参数可选,返回几个数组。
7、单体内置对象
已自行实例化,可直接使用,Global和Math
1 |
|
--url编码
--eval():解析字符串代码并执行
1 |
|
--Math.ceil():向上取整。
--Math.floor():向下取整。
--Math.round():四舍五入。
1 |
|
本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript视频教程栏目!
以上就是javaScript引用类型的详细介绍(附示例)的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
html页面自动清理js、css文件的缓存(自动添加版本号)_html/xhtml_网页制作
html5 表单、select 下拉、textarea多行文本的介绍
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者