JavaScript

Posted yotakuleetspeak

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript相关的知识,希望对你有一定的参考价值。

1、创建对象
javascript中可以通过直接量、关键字new和Object.create函数来创建对象。
1.1、通过对象直接量的方式创建
?对象直接量是一个表达式,这个表达式的每次运算都创建并初始化一个新对象。
var data={};//没有任何属性的对象 var point1={x:0,y:0};//两个属性的对象 var point2={x:point1,y:point1.y};//更复杂的值 var apple ={"fruit color":"red",//属性名字有空格,必须用字符串表示 "today-price":5.4 //属性名字有连字符,必须用字符串表示 }
1.2、通过new创建对象
?new运算符创建并初始化一个对象,关键字后要跟一个函数调用,函数称为构造函数。JavaScript语言核心中的原始类型都包含内置构造函数。
var a = new Object();//空对象 var b = new Arrary();//空数组 var c = new Date();//当前时间的date对象
1.3、通过Object.create()创建对象
var obj7 = Object.create({x:1})//普通的空对象 var obj8 = Object.create(null)//创建一个对象的原型属性 var obj9 = Object.create(Object.prototype);//prototype对象的原型属性
2、数组
数组是值都等的有序集合。数组里面的值叫做用元素,而且每个元素在数组中都有一个位置,以数字表示,称为索引。
2.1、创建数组
使用数组直接量是创建数组最简单的方法,在方括号中将数组元素用逗号隔开即可。
var carname = [];//没有元素的数组 var fruit = ["apple","orange"];//两个数值的数组 var number =[1,2,true,"abc"];//不同类型的元素
数组值不一定要是常量,可以是任意表达式,也可以包含对象或者其他的数组,
var number=123; var numbers = [1,2,3,a+1,a+2]; var a =[[2,{x:2,y:3}],[3,{x:4,y:5}]];
调用构造函数Array()是创建数组的另一种方法,可以用以下三种方式调用构造函数:

(1) 调用时没有参数。
var data = new Array();
该形式创建一个没有任何元素的空数组,等同于数组直接量[]。
(2)调用时有一个数值参数,它指定长度。
var data = new Array(5)
指定数组的长度,用来预分配一个数组空间。注意,数组中没有存储值,甚至数组的索引属性还未定义。
(3)显示指定两个或多个数组元素或者数组的一个非数值元素。
var data = new Array(1,2,3,"hello","world");
2.1、数组元素的添加和删除
(1)添加
var test = []; test[0] = "a"; test[2] = "b";
也可以使用push()方法在数组末尾增加一个或多个元素,
var test=[]; test.push("c"); test.push("d","f");
使用push()方法在数组尾部压入一个元素与给数组test[test.length]赋值是一样的。可以使用unshift()方法在数组的首部插入一个元素,并且将其他元素依次移动到更高的索引处。
(2)删除
可以使用delate运算符来删除数组元素,
var test = [1,2,3]; delate test[1];
使用delate不会修改数组的length属性;可以使用length属性重新设置数组的长度删除数组尾部的元素。数组还有pop()方法(和push一起使用),后者一次使长度减少1并返回被删除元素的值。还有一个shift()方法(和unshift一起使用),从数组头部删除一个元素。
var fruits=["banana","orange","apple","mango"]; fruits.pop(); //fruits结果输出:banana,orange,apple var fruits=["banana","orange","apple","mango"]; fruits.shift(); //fruits结果输出:orange,apple,mango
2.2、多维数组
var a = new Array(3); a[0]=[];//(0,0)(0,1)(0,2) a[1]=[];//(1,0)(1,1)(1,2) a[2]=[];//(2,0)(2,1)(2,2)
2.3、数组方法
(1)join()
Array.join()方法将数组中的所有元素都转化为字符串并连接在一起,返回最后生成的字符串。
var arr=[1,2,3]; console.log(arr.join());//打印出1,2,3 console.log(arr.join("-"));//1-2-3 console.log(arr);//[1,2,3](原数组不变)
(2)reverse()
Array.reverse()方法将数组中的元素颠倒顺序,返回逆序的数组。
var arr=[13,24,51,3]; console.log(arr.reverse());//[3,51,24,13]
(3)sort()
Array.sort()方法将数组中的元素排序并返回排序后的数组。
(4)concat()
Array.concat()方法创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。
var arr = [1,3,5,7]; var arrCopy=arr.concat(9,[11,13]); console.log(arrCopy);//[1,3,5,7,9,11,13] // var arrCopy2=arr.concat([9,[11,13]]); cinsole.log(arrCopy2);//[1,3,5,7,9,Array[2]] cinsole.log(arrCopy2[5]);//[11,13]
(5)slice()
Array.slice()方法返回指定数组的一个片段或者子数组。
var arr = [1,3,5,7,9,11]; var arrCopy=arr.slice(1); var arrCopy2=arr.slice(1,4); console.log(arrCopy);//[3,5,7,9,11] console.log(arrCopy);//[3,5,7]
(6)splice()
Array.splice()方法是数组中插入或者删除元素的通用方法。
splice()方法的第一个参数指定了插入或者删除的起始位置。第二个参数指定了因该从数组
中删除的元素个数。如果省略第二个参数,则从起始点开始到数组结尾的所有元素所有元素都将被删除。splice()返回一个有删除元素组成的数组,或者如果没有 删除元素就返回一个空数组。
(7)push()和pop()
?push():可以接收任意数量的参数,把他们逐个添加到到数组末尾,并返回修改后数组的长度。
?pop():数组末尾移除最后一项,减少数组length值,然后返回移除项。
var arr=["a","b","c"]; var count = arr.push("d","e"); console.log(count);//5 console.log(arr);//["a","b","c","d","e"] var item=arr.pop(); console.log(item);//e console.log(arr);//["a","b","c","d"]
(8)shift()和unshift()
?shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。
?unshift():将参数添加到原始数组开头,并返回数组的长度。
(9)toString()
(10)indexOf和lastIndexOf()
?indexOf():接收两个参数,既要查找的项和(可选的)表示查找起点位置的索引。
?lastIndxOf():接收两个参数,即要查找的项和(可选的)表示查找起点位置的索引。
var arr=[1,3,5,7,7,5,3,1]; console.log(arr.indexOf(5));//2 console.log(arr.lastIndexOf(5));//5 console.log(arr.indexOf(5,2));//2 console.log(arr.lastIndexOf(5,4))//2 console.log(arr,indexOf("5"));//-1
(11)forEach()
?forEach():对数组进行遍历循环,为每个元素调用指定的函数。
var arr=[1,2,3,4,5]; arr.forEach(function(x,index,a){ console.log(x+‘|‘+index+‘|‘+(a===arr)); }); //输出是: //1|0|true //2|1|true //3|2|true //4|3|true //5|4|true
(12)map()
?map():指映射,对数组中的每一项 运行给定函数,返回每次函数调用的结果组成的数组。
var arr=[1,2,3,4,5]; var arr2=arr.map(function(item){ return item*item; }); console.log(arr2);//[1,4,9,16,25]
(13)filter()
?filter(): 过滤功能,数组中的每一项运行给定函数,返回满足条件组成的数组。
var arr=[1,2,3,4,5]; var arr2=arr.filter(function(x){ return x<10; }); console.log(arr2);//true var arr3=arr.filter(function(x){ return x<3; }); console.log(arr3);//false
(14)some()
?some:判断数组中是否存在满足条件的项,只要一项满足条件,就会返回true。
var arr=[1,2,3,4,5]; var arr2=arr.some(function(x){ return x<3; }); console.log(arr2);//true var arr3=arr.some(function(x){ return x<1; }); console.log(arr3);//false
(15)reduce()和reduceRight()
?reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项开始,向前遍历到第一项。
ar values=[1,2,3,4,5]; var sum = values.reduceRight(function(prev,cur,index,array){ return prev+cur; },10); console.log(sum);

以上是关于JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

30秒就能看懂的JavaScript 代码片段

常用Javascript代码片段集锦

48个值得掌握的JavaScript代码片段(上)

如何将此 JavaScript 代码片段翻译成 Parenscript?

javascript 代码片段

javascript JS-常用代码片段