js 基础知识 对象与数组

对象是一种无序属性的集合,每个属性都有自己的名字和值。

对象的创建有很多种,我在第一章已经说过了。

如何遍历一个对象:

var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56};

for (x in person)       //x其实是一个变量,代表的是person对象的属性
{
txt=txt + person[x];              //person[属性]  等同于person.属性
}

alert(txt);   输出对象中的所有值

若值读取其中一个属性,只需要var value=person.属性名 ,就可以了

同样也可以给对象属性赋值,person.属性名=value;

数组:是一个有序的值的集合。

数组的创建同样在第一张已经介绍过。

遍历一个数组其实跟遍历对象没有什么区别,上面方法同样可以。

但是可以用数组长度遍历数组

var aa=[2,3,4,5,6,7];

for(var i=0;i<aa.length;i++){

  alert(aa[i]);   //输出每个值

}

关于数组呢,它有很多的方法。下面来看看这些常用方法。

join()方法,可以把数组的所有值转换成字符串,然后在连接起来。

eg:var a=[1,3,4];

var s=a.join();  //s="1,2,3,"

reverse() 方法,颠倒数组元素的顺序,并返回颠倒后的数组。

var a=[1,23,5];

a.reverse();   //a=[5,23,];

sort()方法,给数组排序

如果不给参数的话,会按照字母顺序个数组排序

var a=["f","s","a","t","h"];

a.sort();   //a=["a","f","h","s","t"];

还有一种给参数的,使数组从小到大排。

var a=[33,4,55,666];

a.sort(function(a,b){return a-b});   转成4,33,55,666

concat()   创建并返回一个数组。

var a=[1,2,3];

a.concat(4,5);  //返回[1,2,3,4,5];

a.concat([4,5])   //返回[1,2,3,4,5];

a.concat(4,[5,[6,7]])  //返回[1,2,3,4,5,[6,7]]   无法展开一个元素为数组的数组

slice()  返回指定数组的一个片段,子数组

var a=[1,2,3,4,5];

a.slice(0,3)  //返回[1,2,3]

a.slice(3)   //返回[4,5]

a.slice(1,-1); //返回[2,3,4]     -1代表 倒数第一个(最后一个)

splice()  插入或者删除数组元素  ,在原数组上回修改数组

var a=[1,2,3,4,5,6,7,8];

a.splice(4);    //return [5,6,7,8]   ,a=[1,2,3,4]     //表示在原数组上删除数据,返回删除的数组元素

a.splice(1,2)   //return [2,3]  ,a=[1,4]

var a=[1,2,3,4];

a.splice(2,0,"a","b")  //先删除从2位置开始,后面0个元素,从第一个参数的位置插入参数3,4,5...  return [], a=[1,2,"a","b",3,4];

push()方法将一个新元素添加到数组的尾部,返回数组的长度

pop()方法是删除最后一个元素,并返回删除的值。

var a=["qq"];

a.push(1,2);    //a=["qq",1,2]

a.pop();          //a=["qq",1]

unshift()在数组的头部插入一个新元素,返回新数组长度

shift() 删除数组的第一个元素,并返回删除的值。

var a=[];

a.unshift(1,2,3);    //a=[1,2,3]

a.shift();    //a=[2,3]

js 基础知识 对象与数组

时间: 2024-10-11 16:40:56

js 基础知识 对象与数组的相关文章

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

JS 基础知识4 运算符

JS的运算符一般含有: 1 算术运算符 2 相等运算符 3 关系运算符 4 字符串运算符 5逻辑运算符 6位运算符 7 赋值运算符 首先看算术运算符,它一般有(+,-,*,/,%,++,--) 这里,%模运算符,其实也就是取余的意思,比如,5%2=1: 这里要特别说一下++,与--(这里只列了++,--是一样的道理). 1 var i = 1; 2 var j = ++i; //实际相当于 i+=1;j=i; 3 alert(i + " " + j); 4 5 var m = 1; 6

JS 基础知识2 传值和传址

要知道传址跟传址,首先我们先了解下数据值的操作. 1复制:可以把它赋值给一个新的变量 2传递:可以将他传递给一个函数或者方法 3比较:可以与另外一个值比较,判断是否相等 简要介绍下传值: 当一个数据是通过值被操作的,那么关系到的是数据的值,在赋值的过程中,是对实际值进行了COPY,储存在一个变量或者属性或数组中,copy的值与原数据是相互独立的. 当数据通过值传递给一个函数时,数据的一份传递给这个函数,如果函数体修改了这个值,只在函数体受影响,函数外的原数据不受影响. 当一个数据通过值和另外一个

JS基础知识回顾:ECMAScript的语法(一)

任何语言的核心都必然会描述这门语言最基本的工作原理,而描述的内容通常都要涉及这门语言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念. ECMAScript中的一切变量.函数名.操作符都区分大小写. ECMAScript的标识符要符合下列规则:第一个字符必须是字母.下划线或美元符号:其他字符可以是字母.下划线.美元符号或数字. 标识符中的字母也可以包含扩展的ASCII或Unicode字母字符,但是并不推荐. 按照惯例,ECMAScript标识符采用驼峰大小写的格式来书写,尽管没

JS基础知识回顾:引用类型(四)

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法. 由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 函数的声明有以下三种形式: function sum(num1,num2){return num1+num2;}//利用函数声明语法定义 var sum=function(num1,num2){return num1+num2;}//利用函数表达式定义 var sum=new Function("num1","nu

JS基础知识回顾:引用类型(三)

ECMAScript通过RegExp类型来支持正则表达式. 使用类似Perl的语法就可以创建一个正则表达式:var expression=/pattern/flags; 其中模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类.限定符.分组.向前查找以及反向引用. 每个正则表达式都可以带有一个或多个标志(flags),用以标注正则表达式的行为. 正则表达式的匹配模式只是下列三个标志: g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即

JS基础知识回顾:引用类型(六)

ECMA-262对内置对象的定义是:由ECMAScript实现提供的.不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 开发人员不必显式的实例化内置对象,因为他们已经实例化了. 前面我们已经介绍了大多数内置对象,如Object.Array.String,ECMA-262还定义了两个单体内置对象:Global和Math. Global对象可以说是ECMAScript中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的. 实际上并没有全局变量或全局属性

js基础知识总结:函数

函数内部的属性: arguments 和this是函数内部的两个特殊对象 arguments: function recursion(num){ if(num<=1){ return 1; }else{ return num*recursion(num-1); } } 另一种写法: function recursion(num){ if(num<=1){ return 1; }else{ return num*arguments.callee(num-1); } } arguments:表示当

JS基础知识大全

JS基础知识 基本语法*switch循环(设置表达式 x(通常是一个变量) 随后表达式的值会与结构中的每个 case 的值做比较.如果存在匹配,则与该 case 关联的代码块会被执行.请使用 break 来阻止代码自动地向下一个 case 运行) 不进行类型转换 var x; switch(x){ case true:console.log("x类型转换") ; default:console.log("x没有发生类型转换"); }//case没有发生类型转换 sw