ECMAScript中,引用类型是一种数据结构称之为对象定义,,引用对象不同于传统面向对象语言所支持的类和接口等基本结构
- var person = new Object();
- person.name ="Nicholas";
- person.age=29;
向函数传递大量可选参数的首选方式
- var person = {
- name :"Nicholas",
- age:29
- };
- function displayInfo(args){
- var output="";
- if(typeof args.name=="String"){
- output += "Name:" + args.name;
- }
- if(typeof args.age=="number"){
- output += "Age:" + args.age;
- }
- alert(output);
- }
-
- dispalyInfo({
- name: "Nicholas",
- age: 29
- })
-
- displayInfo({
- name: "Greg"
- });
ECMAScript数组与其他语言中的数组都是数据的有序列表,与其他语言不同的是,ECMAScript数组的每一项都可以保存任何类型的数据
创建数组的两种方式:
- var colors = new Array();
- var colors = new Array(20);// 创建一个包含 20 项的数组
- var colors = new Array("red", "blue", "green"); 创建一个包含 3 项,即字符串""red", "blue", "green"的数组
- var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
- var names = []; // 创建一个空数组
- var values = [1,2,]; // 不要这样!这样会创建一个包含 2 或 3 项的数组
- var options = [,,,,,]; // 不要这样!这样会创建一个包含 5 或 6 项的数组
- var colors=["red","blue","green"];//定义一个字符串数组
- alert(colors[0]);显示第一项
- colors[2] ="black"//修改第三项
- colors[3] ="brown";// 新增第四项
- ----数组就会自动增加到该索引值加 1 的长度
- var colors =["red","blue","green"]// 创建一个包含 3 个字符串的数组
- colors.length = 2;
- alert(colors[2]);
- if(value instanceof Array){
- //对数组执行某些操作
- }
他假定只有一个全局执行环境。如果网页中包含多个框架,实际上存在两个以上不同全局执行环境,从而存在两个不同版本的Array构造函数
- if(Array.isArray(Value)){
- }
- var colors=["red","blue","green"]
- alert(colors.toString());// red,blue,green
- alert(colors.valueOf()); // red,blue,green
- alert(colors); // red,blue,green
- var colors=["red","green","blue"];
- alert(colors.join(","));//red,green,blue
- alert(colors.join("||")); //red||green||blue
- var colors=new Array();//创建一个数组
- var count=colors.push("red","green");//推入两项
- alert(count); //2
- count = colors.push("black"); // 推入另一项
- alert(count); //3
- var item = colors.pop(); // 取得最后一项
- alert(item); //"black"
- alert(colors.length); //2
- var colors = new Array(); //创建一个数组
- var count = colors.push("red", "green"); //推入两项
- alert(count); //2
- count = colors.push("black"); //推入另一项
- alert(count); //3
- var item = colors.shift(); //取得第一项
- alert(item); //"red"
- alert(colors.length); //2
- var numbers = [1,2,3,4,5,4,3,2,1];
- var everyResult = numbers.every(function(item, index, array){
- return (item > 2);
- });
- alert(everyResult); //false
- var someResult = numbers.some(function(item, index, array){
- return (item > 2);
- });
- alert(someResult); //true
-
- var numbers = [1,2,3,4,5,4,3,2,1];
- var filterResult = numbers.filter(function(item, index, array){
- return (item > 2);
- });
- alert(filterResult); //[3,4,5,4,3]
-
- var numbers = [1,2,3,4,5,4,3,2,1];
- var mapResult = numbers.map(function(item, index, array){
- return item * 2;
- });
- alert(mapResult); //[2,4,6,8,10,8,6,4,2]
-
- var numbers = [1,2,3,4,5,4,3,2,1];
- numbers.forEach(function(item, index, array){
- //执行某些操作
- });
- var values = [1,2,3,4,5];
- var sum = values.reduce(function(prev, cur, index, array){
- return prev + cur;
- });
- alert(sum); //15
函数是对象,函数名是指针
函数定义的两种方式:
- function sum (num1, num2) {
- return num1 + num2;
- }
-
- var sum = function(num1, num2){
- return num1 + num2;
- };
-
- var sum = new Function("num1", "num2", "return num1 + num2"); // 不推荐
引用类型与基本包装类型的主要区别是对象的生存期