您的位置:首页 > Web前端 > JavaScript

随笔,常用的Array对象的属性与方法

2017-11-07 22:18 357 查看
$(document).ready(function(){
initPage();
});

function initPage(){
var arr = [1,2,3];
console.log(arr.constructor);//返回对创建此对象的数组函数的引用
testPrototype();
testArr1();//在此处调用 下面集中测试Array对象方法和属性的函数
}

function employee(name,job,born){//创建一个employee对象
this.name = name;
this.job = job;
this.born = born;
}

function testPrototype(){
var zxr = new employee('zxr', 'it', '1993');//新建一个employee对象
employee.prototype.salary = null;//prototype 向数组对象中添加属性
zxr.salary = '2000';
console.log(zxr); 
/* 
输出:[]
*/
document.write(zxr.salary);//调用数组的该属性
}

function testArr1(){
/* 
无聊测试  ==与===
*/
/* 
1、对于string,number等基础类型,==和===是有区别的
1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
2)同类型比较,直接进行“值”比较,两者结果一样
2、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
3、基础类型与高级类型,==和===是有区别的
1)对于==,将高级转化为基础类型,进行“值”比较
2)因为类型不同,===结果为false

*/
var a = 1;
var b = '1';
var c = 1;
if(a===c){
c = 1+'';
console.log('true');
} else{
console.log("false");
}
var arr1 = [1,2,3];
var arr2 = [1,2,3];
console.log("result:"+(arr1==arr2))//false
console.log("result:"+(arr1===arr2))//都是进行指针比较,指向的内存不同,所以输出都是false
/*  
Array
*/
var arr = [11,1,2,2,3,1,12,3,5,3,4,1,6,7,8,6,8,5,3,9,0,5,32,1,12,13];//首先创建一个不规则数组
var json = {};
for(var i=0; i<arr.length; i++){//个人喜欢用json方式对数组去重,它能去重后自动的按升序排序
json[arr[i]] = arr[i];//先放入json数组
}
var newArr = [];
for(var j in json){
newArr.push(json[j]);//放入新数组
}
console.log(newArr);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 32]
console.log(newArr.join("."));//把数组中所有元素放入一个字符串中去承载,元素通过指定格式进行分隔
//0.1.2.3.4.5.6.7.8.9.11.12.13.32
console.log(newArr.pop());//删除并返回数组的最后一个元素 32
console.log(newArr.shift());//删除并返回数组的第一个元素 0
newArr.pop();
newArr.pop();
newArr.pop();//连续删除倒数三个元素
console.log(newArr);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
console.log(newArr.reverse());//颠倒数组元素的顺序 [9, 8, 7, 6, 5, 4, 3, 2, 1]
console.log(arr.sort())
//对数组元素进行排序,如果调用该方法时没有使用参数,将按照字符编码的顺序进行排序
//[0, 1, 1, 1, 1, 11, 12, 12, 13, 2, 2, 3, 3, 3, 3, 32, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9]
//若要进行数值比较,则应规定一个用于指定排序规则的函数
//例:
function sortNumber(a,b){
return a-b;
}
console.log(arr.sort(sortNumber));
//[0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9, 11, 12, 12, 13, 32]
console.log(newArr.slice(1,-5));//slice(start,end) start必须,不改变原来的数组
//[8, 7, 6]
console.log(newArr.splice(1,2,100,100));
//删除数组从1开始,2个元素,会改变原数组,并在1的位置添加2个100元素
//[8, 7]
console.log(newArr.toString());//数组转字符串
//9,100,100,6,5,4,3,2,1
console.log(newArr.toLocaleString());
//数组转字符串   ==>toString()与toLocaleString() 对Date类型转换有差别
//9,100,100,6,5,4,3,2,1
var bol = true;
console.log(bol.toString());//布尔型转字符串  'true' 
var num = 10;
var num2 = 190
var num1 = 10.0;
console.log(num.toString());//number型转字符串 10
console.log(num1.toString());//number型转字符串 10,因为默认按10进制输出
console.log(num1.toString(2));//number型转字符串 1010 2进制
console.log(num.toString(8));//number型转字符串 12 
console.log(num2.toString(16));//number型转字符串 be
console.log(newArr.valueOf());//返回数组对象的原始值
//[9, 100, 100, 6, 5, 4, 3, 2, 1]

/*  
无聊测试  eval  实际运用不多,但功能强大!
*/
var str = 'zxr 1993.12.19 sichuan chengdu neijiang';
//js顶层函数
eval("var x=10,y=11;document.write(x*y)");
//计算 JavaScript 字符串,并把它作为脚本代码来执行 write 110
document.write(eval("'result='+2*7"));//write result=14
var z = 10;
document.write(eval(z+10))//write 20
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Js Array Js eval