视频号推广入口,扬州网站优化,做二手车放在哪个网站好,google打开wordpress前文提要:【js实例】js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /*
Array类型
js数组中的每一项可以用来保… 前文提要:【js实例】js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /*
Array类型
js数组中的每一项可以用来保存任何类型的数据js数组的大小是可以动态调整的
*/
var colors [red, blue, green];
alert(colors[0]); //red
alert(colors[1]); //blue
alert(colors[2]); //green
alert(colors[3]); //undefined
alert(colors.length);
/*1.检测数组:instanceof(), isArray()*/
if (colors instanceof Array) {alert(yes); //yes
}if (Array.isArray(colors)) {alert(yes); //yes
}
/*
转换方法:toString(), toLocaleString(), valueOf()
alert()要接收字符串参数当传入alert()的不是字符串参数时它会在后台调用toString()方法
*///返回一个字符串字符串由数组中每个值的字符串组成并且以逗号分隔
alert(colors.toString());
//通常和toString()方法一样但是它是调用数组中每一项的toLocaleString()方法
alert(colors.toLocaleString());
//先是valueOf()方法调用toString()方法(valueOf返回的是数组)
alert(colors.valueOf());
alert(colors);//join接收一个参数返回以参数做分隔符的所有数组项的字符串
alert(colors.join(~)); //red~blue~green/*
栈方法push()和pop()
push()向数组中添加元素返回修改后数组的长度
pop()移除数组中最后一项返回移除的项
*/var colors [red, blue, green];
var count colors.push(white, yellow);
alert(count); //5
alert(colors.length); //5
alert(colors); //red,blue,green,white,yellowvar item colors.pop();
alert(item); //yellow
alert(colors.length); //4
alert(colors); //red,blue,green,white/*
队列方法shift()和unshift()
shift()移除数组的第一项并返回移除的项
unshift()在数组的第一项之前添加任意项并返回数组的长度
*/
var colors [red, blue, green];
var item colors.shift();
//shift()
alert(item); //red
alert(colors.length); //2
alert(colors); //blue,green
//unshift()
var count colors.unshift(white, yellow);
alert(count); //4
alert(colors.length); //4
alert(colors); //white,yellow,blue,green/*
排序方法reverse()和sort()
reverse()会反转数组想的顺序返回排序后的数组
sort()比较的是字符串接收的参数会调用每个数组项的toString()方法返回排序后的数组
sort()接收的参数也可以是函数
*/
//reverse()
var value [1, 3, 5, 2, 10];
var values value.reverse();
alert(value); //10,2,5,3,1
alert(values); //10,2,5,3,1//sort()
var value [1, 3, 5, 2, 10];
var values value.sort();
alert(value); //1,10,2,3,5
alert(values); //1,10,2,3,5/*
操作方法concat(), slice()和splice()
concat()创建当前数组的副本若有参数则将其添加到副本数组尾部最后返回新创建的数组slice()基于当前数组创建新数组但是不改变原数组接收两个参数start, end
start为返回项的起始位置end为返回项的结束位置具体见例子,splice()接收2个或3个参数通常用于删除插入或替换(插入和替换都要产生删除操作删除项数可为0),返回删除的项
删除splice(x, y);
x为删除的起始位置y为要删除的项数
插入和替换(通过改变参数实现)splice(x, y, z);
x为起始位置y为要删除的项数z为要插入的项z可以是任意多个项
*/
//concat()
var colors [red, blue, green];
var colors2 colors.concat();
alert(colors); //red,blue,green
alert(colors2); //red,blue,green
var colors3 colors.concat(yellow, [black, brown]);
alert(colors); //red,blue,green
alert(colors3); //red,blue,green,yellow,black,brown//slice()
var colors [red, blue, green, yellow, black];
//1.若有一个参数则返回从起始位置到原数组末尾所组成的数组
var colors2 colors.slice(1);
//2.若有两个参数则返回从起始位置到结束位置前一项所组成的数组
var colors3 colors.slice(1, 4);
//3.若start end时返回空数组
var colors4 colors.slice(2, 1);
//4.若参数为负数则参数加上数组长度作为start或者end
var colors5 colors.slice(-3, -1);alert(colors); //red,blue,green,yellow,black
alert(colors2); //blue,green,yellow,black
alert(colors3); //blue,green,yellow
alert(colors4); //返回空数组屏幕上显示空白警告框
alert(colors5); //green,yellow//splice()
//删除
var colors [red, blue, green, yellow, black];
var remove colors.splice(1, 2);
alert(colors); //red,yellow,black
alert(remove); //blue,green//插入
var colors [red, blue, green, yellow, black];
var remove2 colors.splice(1, 0, white, brown); //删除项数为0
alert(colors); //red,white,brown,blue,green,yellow,black
alert(remove2); //空数组//替换
var colors [red, blue, green, yellow, black];
var remove2 colors.splice(1, 1, white, brown); //删除项数为1
alert(colors); //red,white,brown,green,yellow,black
alert(remove2); //blue/*
位置方法indexOf()和lastIndexOf()
两个方法用于返回查找项在数组中的位置未找到返回-1都接收两个参数x和y x:要查找的项y查找起始点位置的索引(可选参数)indexOf()从数组开头向后查找查找并返回查找参数的第一个位置找不到返回-1
lastIndexOf()从数组末尾向前查找返回查找参数的第一个位置注意要查找的项必须严格相等()
*/
var numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
//indexOf()
alert(numbers.indexOf(4)); //3
alert(numbers.indexOf(4, 4)); //5
alert(numbers.indexOf(4, 6)) //-1
alert(numbers.indexOf(10)); //-1
//lastIndexOf()
alert(numbers.lastIndexOf(4)); //5
alert(numbers.lastIndexOf(4, 4)); //3
alert(numbers.lastIndexOf(4, 2)); //-1
alert(numbers.lastIndexOf(10)) //-1//要查找的项必须严格相等()
var person {name : Nicholas};
var people [{name : Nicholas}];
var morePeople [person]; //注意这是数组alert(people.indexOf(person)); //-1
alert(morePeople.indexOf(person)); //0/*
迭代方法:every(), filter(), forEach(), map(), some()
每个方法接收两个参数函数参数x运行该函数的作用域对象y
函数参数x接收三个参数数组项的值该项在数组中的位置和数组对象本身every():对数组中的每一项运行给定的函数如果该函数对每一项都返回true则返回true
some():对数组中的每一项运行给定的函数如果该函数中某一项返回true则返回true
filter():对数组中的每一项运行给定的函数返回该函数会返回true的项组成的数组
forEach():对数组中的每一项运行给定的函数无返回值
map():对数组中的每一项运行给定的函数返回每次函数调用结果组成的数组
*/var numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
//every()
var everyResult numbers.every(function(item, index, array) {return (item 2);
});
alert(everyResult); //false//some()
var someResult numbers.some(function(item, index, array) {return (item 2);
});
alert(someResult); //true//filter()
var filterResult numbers.filter(function(item, index, array) {return (item 2);
});
alert(filterResult); //3,4,5,4,3//map()
var mapResult numbers.map(function(item, index, array) {return item * 2;
});
alert(mapResult); //2,4,6,8,10,8,6,4,2/*
归并方法reduce()和reduceRight()
接收两个参数一个在数组每一项调用的函数x作为归并基础的初始值y(可选)
函数x接收四个参数前一个值当前值项的索引和数组对象
reduce()从数组的第一项开始
reduceRight():从数组的最后一项开始
*/var values [1, 2, 3, 4, 5];
//reduce()
var sum values.reduce(function(prev, cur, index, array) {return prev cur;
});
alert(sum); //15//redeceRight()
var sum2 values.reduceRight(function(prev, cur, index, array) {return prev cur;
})
alert(sum2); //15 Date类型的41个日期方法 Date类型可分为如下: 继承的方法:Date(), parse(),toLocaleString(),toString()和valueOf()方法; 日期格式化方法: toDateString()toTimeString()toLocaleDateString()toLocaleTimeString()toUTCString() 日期/时间组件方法:getTime(), getTimezoneOffset()等 具体在实例中给出: /*
Date类型
*/
var now new Date();
alert(now);
//继承的方法
//Date.parse()接收一个表示日期的字符串参数根据参数返回相依日期的毫秒数
//ECMA-262规范没有定义此函数支持的格式应地区实现而异
var someDate new Date(Date.parse(May 25, 2004));
alert(someDate); //Tue May 25 2004 00:00:00 GMT0800//Date.UTC()方法接收7个参数年year月month(0开始)日day(1-31)小时hour(0-23)分钟min秒s毫秒ms
//year和month为必须参数day默认为1其它参数默认为0var y2k new Date(Date.UTC(2000, 0));
alert(y2k); //Sat Jan 01 2000 08:00:00 GMT0800var allFives new Date(Date.UTC(2005, 4, 5, 17, 55, 55, 3600));
alert(allFives); //Fri May 06 2005 01:55:58 GMT0800//Date()构造函数会模仿Date.parse()和Date.UTC()方法
var d new Date(May 25, 2004);
var dd new Date(2005, 4, 5, 17, 55, 55, 3600);
alert(d); //Tue May 25 2004 00:00:00 GMT0800
alert(dd); //Fri May 06 2005 01:55:58 GMT0800/*
Date类型也重写了toLocaleString(),toString()和valueOf()方法;
但是浏览器之间对toLocaleString()和toString()输出不一致.下面输出为火狐浏览器下输出
*/
var date new Date(1, 1, 2001);
alert(date); //Mon Jan 01 2001 00:00:00 GMT0800
alert(date.toLocaleString()); //2001/1/1 上午12:00:00
alert(date.toString()); //Mon Jan 01 2001 00:00:00 GMT0800
//注意valueOf()方法返回的是日期的毫秒数
alert(date.valueOf()); //978278400000/*
日期格式化的方法
这些方法也是因浏览器而异,以下为火狐浏览器输出
*/
var date new Date(1, 1, 2001);
//toDateString():以特定于实现的格式显示星期几月日和年
alert(date.toDateString()); //Mon Jan 01 2001
//toTimeString():以特定于实现的格式显示时分秒和时区
alert(date.toTimeString()); //00:00:00 GMT0800
//toLocaleDateString():以特定于地区的格式显示星期几月日和年
alert(date.toLocaleDateString()); //2001/1/1
//toLocaleTimeString():以特定于实现的格式显示时分秒
alert(date.toLocaleTimeString()); //上午12:00:00
//toUTCString():以特定与实现的格式完整的UTC日期
alert(date.toUTCString()); //Sun, 31 Dec 2000 16:00:00 GMT/*
日期/时间组件方法
*/
var date new Date(2001, 1, 1);
//返回表示日期的毫秒数与valueOf()返回的值相同
alert(date.getTime());
//返回本地时间与UTC世纪那相差的分钟数
alert(date.getTimezoneOffset());
//以毫秒数设置日期传入参数为毫秒
alert(date.setTime(3600000000000));//参数为为毫秒数//年
var date new Date(2001, 1, 1);
//取得四位数的年份
alert(date.getFullYear());
//返回UTC日期的4位数年份
alert(date.getUTCFullYear());
//设置日期年份传入参数必须为4位数
alert(date.setFullYear(2002)); //参数为年
//设置UTC日期年份传入参数必须为4位数
alert(date.setUTCFullYear(2003));//参数为年//月0-11
var date new Date(2001, 1, 1);
//返回日期中的月份
alert(date.getMonth());
//返回UTC日期中的月份
alert(date.getUTCMonth());
//设置日期的月份传入参数必须大于0超过则增加年份
alert(date.setMonth(1));//参数为月
//设置UTC日期的月份传入参数必须大于0超过则增加年份
alert(date.setUTCMonth(2));//参数为月//日1-31
var date new Date(2001, 1, 1);
//返回日期月份中的天数
alert(date.getDate());
//返回UTC日期月份中的天数
alert(date.getUTCDate());
//设置日期月份中的天数
alert(date.setDate(23));//参数为日
//设置UTC日期月份中的天数
alert(date.setUTCDate(24));//参数为日//星期1-60表示星期日
var date new Date(2001, 1, 1);
//返回日期中的星期几
alert(date.getDay(2));
//返回UTC日期中的星期几
alert(date.getUTCDay(3));//时0-23
var date new Date(2001, 1, 1);
//返回日期中的小时数
alert(date.getHours());
//返回UTC日期中的小时数
alert(date.getUTCHours());
//设置日期中的小时数
alert(date.setHours(2));//参数为时
//设置UTC日期中的小时数
alert(date.setUTCHours(3));//参数为时//分0-59
var date new Date(2001, 1, 1);
//返回日期中的分钟数
alert(date.getMinutes());
//返回UTC日期中的分钟数
alert(date.getUTCMinutes());
//设置日期中的分钟数
alert(date.setMinutes(34));//参数为分
//设置UTC日期中的分钟数
alert(date.setUTCMinutes(35));//参数为分//秒0-59
var date new Date(2001, 1, 1);
//返回日期中的秒数
alert(date.getSeconds());
//返回UTC日期中的秒数
alert(date.getUTCSeconds());
//设置日期中的秒数
alert(date.setSeconds(45));//参数为秒
//设置UTC日期中的秒数
alert(date.setUTCSeconds(46));//参数为秒//毫秒
var date new Date(2001, 1, 1);
//返回日期中的毫秒数
alert(date.getMilliseconds());
//返回UTC日期中的毫秒数
alert(date.getUTCMilliseconds());
//设置日期中的毫秒数
alert(date.setMillseconds(3454));//参数为毫秒
//设置UTC日期中的毫秒数
alert(date.setUTCMillseconds(1111));//参数为毫秒 Function类型 /*
函数Function 类型
*/
/*
1.函数是对象函数名是只想函数对象的指针不会与函数绑定(函数是对象函数名是指针)
*/
function sum(num1, num2) {return num1 num2;
}
alert(sum(10, 10)); //20var anotherSum sum;
alert(anotherSum(10, 10)); //20//sum是函数的指针并不与函数绑定
sum null;
alert(anotherSum(10, 10)); //20/*
2.函数没有重载
*/
function addNum(num) {return num 100;
}function addNum(num) {return num 200;
}alert(addNum(100)); //300/*
3.解析器会通过“函数声明提升”将函数声明添加到执行环境中去而函数表达式则须解析器执行到它所在的代码行才会被执行
*/
alert(sum(10, 10)); //20
function sum(num1, num2) {return num1 num2;
}alert(sum2(19, 10)); //error
var sum2 function(num1, num2) {return num1 num2;
}/*
4.函数的内部属性arguments和thiscalleecaller
注意不能在严格模式下使用calleecaller
*/
//arguments保存函数的参数该对象还有一个callee的属性,callee是一个指针指向拥有arguments对象的函数
function factorial(num) {if (num 1) {return -1;} else {return num * arguments.callee(num - 1);}
}alert(4); //24//this引用的是函数执行的环境对象。
var color red;
var o {color : blue};function showColor() {alert(this.color);
}//直接调用函数则this引用的环境对象是window
showColor(); //red
alert(window.color);//red
//this引用的环境对象是o所以调用的是o中的color
o.showColor(); //red/*
caller保存至调用当前函数的函数的引用(在全局作用域中调用当前函数则值为null)除opera早期版本不支持外其他都支持
注意ECMAScript并没有定义这个属性
*/
function outer() {inner();
}function inner() {alert(inner.caller);
}outer(); //显示outer函数的源代码/*
apply(), call()
apply():接收两个参数xyx为运行函数的作用域y为参数数组(可以为Array实例)
call():第一个参数与apply()类似但是后面的参数不已数组形式传递而是直接传递给数组
*/
function sum(num1, num2) {return num1 num2;
}//注意在严格模式下未指定环境对象而调用函数则this值不会转型为windowthis此时为undefined
function callSum1(num1, num2) {return sum.apply(this, arguments);
}
function callSum2(num1, num2) {return sum.apply(this, [num1, num2]);
}
alert(callsum1(10 ,10)); //20
alert(callsum2(10 ,10)); //20function sum(num1, num2) {return num1 num2;
}
function callSum(num1, num2) {return sum.call(this, num1, num2);
}
alert(callSum(10, 10)); //20 转载于:https://www.cnblogs.com/libra-yong/p/6903705.html