数码资讯
Javascript高级编程中学习注释的对象和数组引用类型
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文将与您分享我的Javascript高级编程学习笔记对象和数组引用类型,它们与Javascript引用类型知识有关。让我们看一看。
1。对象类型
Most of the referenced type values are instances of the Object type; and Object is also the most used type in ECMAscript.
创建对象实例有两种方法:
新操作符遵循对象构造函数:
var =新对象();
人。名称=韦布;
人,年龄= 25岁;
对象文字表示:
var
姓名:韦布
年龄:25
};
2。数组类型
除了对象,数组类型可能是ECMAscript最常用的类型。
在ECMAscript数组的每一个项目可以保存任何类型的数据(例如,首先可以存储字符串,二地方持有的价值观,第三个地方保存对象,等等),ECMAscript数组的大小可以动态调整,即它可以为数据添加到适应新的数据自动增长。
创建数组有两种基本方法。
使用数组构造函数:
新数组();
var颜色=新数组(20);您也可以设置长度属性。
新数组(红色)
var颜色=数组(3);可以省略new运算符
数组标识符表示
var颜色= 红色
警报(颜色{ 0 });
颜色{ 2 } 黑色; /修改第三。
颜色{ 3 } 棕色;第四
注:数组的长度属性很有特色,不是read-only.so通过设置此属性,您可以删除或从数组的末尾添加项目。例如,
var颜色= 红色
颜色,长度= 2;
警报(颜色{ 2 });
颜色{颜色长度为黑色;结束时加上
2.1探测阵列
一个网页,或全球范围内,一个instanceof运算符可以用来确定一个对象是否是一个数组或不。
如果(值是数组){
数组执行某些操作
}
以实例操作的问题是,它假定只有一个全局执行环境。如果有多个框架的网页,实际上有两个以上的不同的全局执行环境,并有数组构造两个以上的版本。如果你导入一个数组从一帧到另一个,然后输入阵列具有不同的构造函数在第二框架创建原始数组。
为了解决这个问题,ecmascript5补充了Array.isArray()的方法。这种方法的目的是最终确定值是否是一个数组,无论全球执行环境是创造。
如果(Array.isArray(值)){
数组执行某些操作
}
浏览器支持此方法是IE9 +,Firefox 4 + 5 + 10.5,Safari,Opera和Chrome +。
2.2转换方法
toString()方法调用返回一个逗号分隔的字符串数组,通过数组中的每个值的字符串连接,返回值()是一个数组。事实上,为了创建这个字符串,toString()每一项的数组的方法称为的。例,
var颜色= 红色
警报(colors.tostring()); / /红色,蓝色,绿色
警报(colors.valueof()); / /红色,蓝色,绿色
警报(颜色);红色、蓝色、绿色
此外,该tolocalestring()方法会返回相同的值作为toString()和价值()方法,但它并非总是如此。当tolocalestring()数组的方法被调用时,它也创造了一个以逗号分隔的字符串数组的值。从第一两方法的唯一不同的是,这一次,为了得到每一项的值,它要求每一tolocalestring()代替toString方法()方法。
甲= { var
tolocalestring:函数(){
返回webbxx ;
},
说明:函数(){
韦布回归;
}
};
2 = { var
tolocalestring:函数(){
返回susanxx ;
},
说明:函数(){
返回苏珊;
}
};
无功的人= {甲,2 };
警惕(人);苏珊
警报(people.tostring()); / /韦伯、苏珊
警报(people.tolocalestring()); / / webbxx,susanxx
连接()方法还输出一个数组,默认情况下可以指定一个分隔符到逗号:
var颜色= 红色
警报(colors.join(
警报(colors.join(| | )); / /红| | | |蓝绿色
2.3栈的方法(LIFO)
推():接受任意数量的参数,将它们一个接一个地添加到数组的结尾,并返回修改数组的长度。
POP():从数组的结尾删除最后一项
新数组();
VaR计算= colors.push(红
警报(计数);2
数= colors.push(黑);
警报(计数);3
VAR项= colors.pop();
警报(项目)
警报(颜色,长度); / 2
2.4队列方法(FIFO)
移位():删除数组的第一项并返回项,数组的长度减少1。
Unshift():顾名思义,在对比的转变()的使用,你可以添加任何项目在阵列的前端和返回的数组的长度。
2.5重排序方法
反向():反转数组项的顺序;
排序():默认为升序排列;为了实现排序,排序()方法调用toString()的每一个项目的方法,然后比较字符串来确定如何排序。即使每一项都是一个数值,比较也是一个字符串,如下所示。
0,1,5,10,15 VaR值= { };
values.sort();
警报(值); / / 0,1,10,15,5
这种排序在很多情况下不是最好的解决方案,因此,排序()方法可以接受比较函数作为参数来指定哪个值位于哪个值前面。
(value1,value2功能比较){
如果(value1 value2 P<0.05){
返回1; / / value1 value2之前
} else if(value1 value2 { >)
返回1;
其他{ }
返回0;
}
}
这个比较函数可以用于大多数数据类型,只要它作为参数传递给排序()方法,如下所示。
0,1,5,10,15 VaR值= { };
values.sort(比较);
警报(值); / / 0,1,5,10,15
2.6操作方法
Concat():创建一个基于当前数组中所有的物品,例如新的数组,
var颜色= 红色
无功colors2 = colors.concat(黄
警报(颜色);红色、蓝色、绿色
警报(colors2); / /红色,蓝色,绿色,黄色,黑色,棕色
切片():根据当前数组中的一个或多个项创建一个新数组,
var颜色= 红色
无功colors2 = colors.slice(1); / /绿色,蓝色,黄色,紫色
无功colors3 = colors.slice(1,3); / /绿色,蓝色,黄色
Splice():这个方法可能是最强大的数组方法。它的主要目的是在数组的中间部分插入条目,但是使用这个方法有2种方法。
删除:删除任意数量的项,2个参数只删除第一个位置和删除项。
插入可以插入任何数量的项目到指定的位置,3个参数:起始位置,只需要提供0(要删除的项目数)和插入项目。如果你想插入多个项目,你可以传输第四,第五甚至更多的项目。例如,剪接(2,0,红
拼接()方法总是返回一个从原始数组中删除的项数组(如果没有删除条目,则返回空数组)。
2.7位置的方法
返回字符串()和():这两种方法都接受两个参数:要找到的物品和(可选)代表索引查找的起始点的位置。前回顾开始,而后者期待从结束。
2.8迭代法
ecmascript5定义了5个迭代的数组,每个方法接受两个参数:函数运行在每一个项目和(可选)运行范围内的对象的运行功能,会影响这个值,通过这些方法的函数接收三个参数:数组项的值,该项的数组中的位置,和数组对象本身。
每个():为数组中的每个项运行一个给定函数,如果函数返回每个项的true,返回true。
筛选器():为数组中的每一项运行一个给定函数,并返回函数返回一个真正的项数组。
foreach():没有返回值的数组中的每个元素执行一个给定的函数。
map():为数组中的每个项运行给定函数的数组,并返回每个函数调用结果的数组。
一些():为数组中的每个项运行一个给定函数,如果函数返回任何项目的true,返回true。
上述所有方法都不修改数组中包含的值,
风险值= { 1,2,3,4,5,4,3,2,1 };
无功everyresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(everyresult); / /假
无功someresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(someresult); / /真的
无功filterresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(filterresult); / / { 3,4,5,4,3 }
无功mapresult = numbers.every(功能(项目、指标、阵列){
返回项目* 2;
});
警报(mapresult); / / { 2,4,6,8,10,8,6,4,2 }
2.9合并方法
减少():从数组的第一个项目开始,一个接一个地遍历到结尾;
ReduceRight():从数组的最后一个项目,穿越的第一个项目。
这两种方法都接受两个参数:一个上调功能(可选)作为并购的基础上的初始值,通过这些方法接受4个参数的函数:以前的值,电流值的项的索引,和阵列对象,函数返回的任何值将作为第一个参数传递给下一个项目。例如,
VaR值= { 12345 };
VaR和= values.reduce(功能(沪指,cur,指数、阵列){
回沪指+电流;
});
警报(总和);15
1。对象类型
Most of the referenced type values are instances of the Object type; and Object is also the most used type in ECMAscript.
创建对象实例有两种方法:
新操作符遵循对象构造函数:
var =新对象();
人。名称=韦布;
人,年龄= 25岁;
对象文字表示:
var
姓名:韦布
年龄:25
};
2。数组类型
除了对象,数组类型可能是ECMAscript最常用的类型。
在ECMAscript数组的每一个项目可以保存任何类型的数据(例如,首先可以存储字符串,二地方持有的价值观,第三个地方保存对象,等等),ECMAscript数组的大小可以动态调整,即它可以为数据添加到适应新的数据自动增长。
创建数组有两种基本方法。
使用数组构造函数:
新数组();
var颜色=新数组(20);您也可以设置长度属性。
新数组(红色)
var颜色=数组(3);可以省略new运算符
数组标识符表示
var颜色= 红色
警报(颜色{ 0 });
颜色{ 2 } 黑色; /修改第三。
颜色{ 3 } 棕色;第四
注:数组的长度属性很有特色,不是read-only.so通过设置此属性,您可以删除或从数组的末尾添加项目。例如,
var颜色= 红色
颜色,长度= 2;
警报(颜色{ 2 });
颜色{颜色长度为黑色;结束时加上
2.1探测阵列
一个网页,或全球范围内,一个instanceof运算符可以用来确定一个对象是否是一个数组或不。
如果(值是数组){
数组执行某些操作
}
以实例操作的问题是,它假定只有一个全局执行环境。如果有多个框架的网页,实际上有两个以上的不同的全局执行环境,并有数组构造两个以上的版本。如果你导入一个数组从一帧到另一个,然后输入阵列具有不同的构造函数在第二框架创建原始数组。
为了解决这个问题,ecmascript5补充了Array.isArray()的方法。这种方法的目的是最终确定值是否是一个数组,无论全球执行环境是创造。
如果(Array.isArray(值)){
数组执行某些操作
}
浏览器支持此方法是IE9 +,Firefox 4 + 5 + 10.5,Safari,Opera和Chrome +。
2.2转换方法
toString()方法调用返回一个逗号分隔的字符串数组,通过数组中的每个值的字符串连接,返回值()是一个数组。事实上,为了创建这个字符串,toString()每一项的数组的方法称为的。例,
var颜色= 红色
警报(colors.tostring()); / /红色,蓝色,绿色
警报(colors.valueof()); / /红色,蓝色,绿色
警报(颜色);红色、蓝色、绿色
此外,该tolocalestring()方法会返回相同的值作为toString()和价值()方法,但它并非总是如此。当tolocalestring()数组的方法被调用时,它也创造了一个以逗号分隔的字符串数组的值。从第一两方法的唯一不同的是,这一次,为了得到每一项的值,它要求每一tolocalestring()代替toString方法()方法。
甲= { var
tolocalestring:函数(){
返回webbxx ;
},
说明:函数(){
韦布回归;
}
};
2 = { var
tolocalestring:函数(){
返回susanxx ;
},
说明:函数(){
返回苏珊;
}
};
无功的人= {甲,2 };
警惕(人);苏珊
警报(people.tostring()); / /韦伯、苏珊
警报(people.tolocalestring()); / / webbxx,susanxx
连接()方法还输出一个数组,默认情况下可以指定一个分隔符到逗号:
var颜色= 红色
警报(colors.join(
警报(colors.join(| | )); / /红| | | |蓝绿色
2.3栈的方法(LIFO)
推():接受任意数量的参数,将它们一个接一个地添加到数组的结尾,并返回修改数组的长度。
POP():从数组的结尾删除最后一项
新数组();
VaR计算= colors.push(红
警报(计数);2
数= colors.push(黑);
警报(计数);3
VAR项= colors.pop();
警报(项目)
警报(颜色,长度); / 2
2.4队列方法(FIFO)
移位():删除数组的第一项并返回项,数组的长度减少1。
Unshift():顾名思义,在对比的转变()的使用,你可以添加任何项目在阵列的前端和返回的数组的长度。
2.5重排序方法
反向():反转数组项的顺序;
排序():默认为升序排列;为了实现排序,排序()方法调用toString()的每一个项目的方法,然后比较字符串来确定如何排序。即使每一项都是一个数值,比较也是一个字符串,如下所示。
0,1,5,10,15 VaR值= { };
values.sort();
警报(值); / / 0,1,10,15,5
这种排序在很多情况下不是最好的解决方案,因此,排序()方法可以接受比较函数作为参数来指定哪个值位于哪个值前面。
(value1,value2功能比较){
如果(value1 value2 P<0.05){
返回1; / / value1 value2之前
} else if(value1 value2 { >)
返回1;
其他{ }
返回0;
}
}
这个比较函数可以用于大多数数据类型,只要它作为参数传递给排序()方法,如下所示。
0,1,5,10,15 VaR值= { };
values.sort(比较);
警报(值); / / 0,1,5,10,15
2.6操作方法
Concat():创建一个基于当前数组中所有的物品,例如新的数组,
var颜色= 红色
无功colors2 = colors.concat(黄
警报(颜色);红色、蓝色、绿色
警报(colors2); / /红色,蓝色,绿色,黄色,黑色,棕色
切片():根据当前数组中的一个或多个项创建一个新数组,
var颜色= 红色
无功colors2 = colors.slice(1); / /绿色,蓝色,黄色,紫色
无功colors3 = colors.slice(1,3); / /绿色,蓝色,黄色
Splice():这个方法可能是最强大的数组方法。它的主要目的是在数组的中间部分插入条目,但是使用这个方法有2种方法。
删除:删除任意数量的项,2个参数只删除第一个位置和删除项。
插入可以插入任何数量的项目到指定的位置,3个参数:起始位置,只需要提供0(要删除的项目数)和插入项目。如果你想插入多个项目,你可以传输第四,第五甚至更多的项目。例如,剪接(2,0,红
拼接()方法总是返回一个从原始数组中删除的项数组(如果没有删除条目,则返回空数组)。
2.7位置的方法
返回字符串()和():这两种方法都接受两个参数:要找到的物品和(可选)代表索引查找的起始点的位置。前回顾开始,而后者期待从结束。
2.8迭代法
ecmascript5定义了5个迭代的数组,每个方法接受两个参数:函数运行在每一个项目和(可选)运行范围内的对象的运行功能,会影响这个值,通过这些方法的函数接收三个参数:数组项的值,该项的数组中的位置,和数组对象本身。
每个():为数组中的每个项运行一个给定函数,如果函数返回每个项的true,返回true。
筛选器():为数组中的每一项运行一个给定函数,并返回函数返回一个真正的项数组。
foreach():没有返回值的数组中的每个元素执行一个给定的函数。
map():为数组中的每个项运行给定函数的数组,并返回每个函数调用结果的数组。
一些():为数组中的每个项运行一个给定函数,如果函数返回任何项目的true,返回true。
上述所有方法都不修改数组中包含的值,
风险值= { 1,2,3,4,5,4,3,2,1 };
无功everyresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(everyresult); / /假
无功someresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(someresult); / /真的
无功filterresult = numbers.every(功能(项目、指标、阵列){
返回项目> 2;
});
警报(filterresult); / / { 3,4,5,4,3 }
无功mapresult = numbers.every(功能(项目、指标、阵列){
返回项目* 2;
});
警报(mapresult); / / { 2,4,6,8,10,8,6,4,2 }
2.9合并方法
减少():从数组的第一个项目开始,一个接一个地遍历到结尾;
ReduceRight():从数组的最后一个项目,穿越的第一个项目。
这两种方法都接受两个参数:一个上调功能(可选)作为并购的基础上的初始值,通过这些方法接受4个参数的函数:以前的值,电流值的项的索引,和阵列对象,函数返回的任何值将作为第一个参数传递给下一个项目。例如,
VaR值= { 12345 };
VaR和= values.reduce(功能(沪指,cur,指数、阵列){
回沪指+电流;
});
警报(总和);15
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。