1. 程式人生 > >關於js的一些細節和返回值1:sort排序和tostring,valueof等

關於js的一些細節和返回值1:sort排序和tostring,valueof等

程式碼如下

<script>
// var color = "blue";
// function changeColor(){
// var anotherColor = "red";
// function swapColor(){

// var tempColor = anotherColor;
// anotherColor = color;

// console.log(tempColor) ;
// console.log(anotherColor) ;
// }
// swapColor();
// }


// changeColor()
// typeof,instanceof, Array.isArray(value)
// array.toString(),array.toLocaleString(),array.valueOf()
var colors = ["red",'blue'];
console.log(colors.length)
colors[colors.length] ='black'
console.log(colors.length)
console.log(colors)
colors[20]="rr";
console.log(colors.length)
console.log(colors)
console.log(colors[5])
console.log(colors instanceof Array)
console.log(Array.isArray(colors))
console.log("toSting:",colors.toString())
console.log("valueOf:",colors.valueOf())
console.log("toLocaleString:",colors.toLocaleString())
var toS = colors.toString();
var valueO = colors.valueOf();
var toL = colors.toLocaleString();
console.log(Array.isArray(toS));//false
console.log(Array.isArray(valueO));//true
console.log(Array.isArray(toL));//false
console.log(typeof toS)//string
console.log(typeof valueO)//obj
console.log(typeof toL)//string


//join
var jo = colors.join("*");
console.log(jo)
console.log(Array.isArray(jo))//false
console.log(typeof jo)//string


//push-返回新增後陣列長度 pop-返回值是刪除項 shift-返回刪除項 unshift-返回新增後陣列長度
var color = new Array(1,"ww");
var count = color.push("a","b");
console.log(count);
console.log(color);
var countpop = color.pop();
console.log(countpop);
console.log(color);


// 倒敘:reverse()-返回排序後陣列,排序:sort()-會先呼叫tostring-所以都按字串(即使是數值)來升序
var values = [1,2,3,4,5]
var vv = values.reverse();
console.log(vv)
console.log(values)
//sort 可以接受一個比較函式
//比較函式接受兩個引數 -第一個在前返回負數,相等返回0,否則為正。
function compare(v1,v2){
if(v1<v2){//條件如小號放到前面還是大的放到前面,總之只要return-1滿足對比後條件的都在前面
return -1//第一個在前
}else if(v1>v2){
return 1
}else{
return 0;
}


}
function compare2(v1,v2){
if(v1>v2){
return -1
}else if(v1<v2){
return 1
}else{
return 0
}
}
var val = [10,22,2,4,8]
val.sort(compare)
var vals = val.sort(compare)


console.log(val)
console.log(vals)//sort返回的是排序後的陣列。
var vals2 = val.sort(compare2)//****注意:如果放到前面會安裝最後排序---sort後會改變原陣列的。即便儲存在vals2裡,但原陣列val已經跟隨變化。
console.log(vals2)


</script>