Object
這個數(shù)據類型,有點類似python中的字典
object 類型的創(chuàng)建
1 new方法
my_object = new Object();
2 對象字面量表示法
var my_object = {
xxx: xxxx撵幽,
xxx: xxxx //注意這里沒有逗號
}
object 取值
var person = new Object();
person.name = 'qifumin';
person.age = 27;
console.log(person) //{ name: 'qifumin', age: 27 }
var computer = {
name: 'apple',
'age': 33,
size: 13.4,
5: 'shanghai' // 這里最后不要有,逗號
}
console.log(computer) //{ '5': 'shanghai', name: 'apple', age: 33, size: 13.4 }
console.log(computer['5']) //shanghai
console.log(computer[5]) //shanghai
console.log(computer.name) //apple
console.log(computer.age) //33
console.log(computer.5) // 這種寫法是錯誤的
定義一個空的object
var people = new Object();
var dog = {};
console.log(people)
console.log(dog)
people.name = 'aaa';
dog.name = 'bbb'
console.log(people); //{ name: 'aaa' }
console.log(dog); //{ name: 'bbb' }
作為函數(shù)的參數(shù)
這一點python也是可以的
function displayInfo(args) {
var output = "";
if (typeof args.name == "string") {
output += "Name: " + args.name + "\n";
}
if (typeof args.age == "number") {
output += "Age: " + args.age + "\n";
}
console.log(output);
}
displayInfo({
name: "Nicholas", //Name: Nicholas
age: 29 //Age: 29
});
displayInfo({
name: "Greg" //Name: Greg
});
Array 類型
就是其他語言中的數(shù)組瘦穆,列表
這個array類型和python中的list更像零渐。一個array類型可以容下很多種不同的基本類型對象,不像c++需要聲明好是什么類型的數(shù)組伐厌。
array類型的創(chuàng)建
1 new Array()方法
2 字面值表達式
var teacher = new Array('li', 'wang', 'liu', undefined, null, 45, true);
console.log(teacher) // [ 'li', 'wang', 'liu', undefined, null, 45, true ]
// 也可以不寫new
var school = Array('qinghua', 'beida')
console.log(school)
var student = [
'xiaoming',
'xiaowen',
'xiaogang'
]
console.log(student) // [ 'xiaoming', 'xiaowen', 'xiaogang' ]
注意:括號里跟一個num會表示創(chuàng)建幾個元素的空列表
var my_array = new Array('2'); // [ '2' ]
console.log(my_array);
var my_array = new Array(2); // [ <2 empty items> ] 兩個元素的空列表
console.log(my_array);
數(shù)組的取值
常規(guī)操作定嗓,就是通過索引取,從0開始
但是取超出索引的元素注整,會返回為定義undefined能曾,而不是報錯,這點很特別
var student = [
'xiaoming',
'xiaowen',
'xiaogang'
]
console.log(student) // [ 'xiaoming', 'xiaowen', 'xiaogang' ]
console.log(student[0]) //xiaoming
console.log(student[10]) //undefined
數(shù)組的length屬性
var my_array = new Array(1,2,3,4,5,6,7,8,9);
console.log(my_array); // [1, 2, 3, 4, 5,6, 7, 8, 9]
console.log(my_array.length); //9
my_array.length = 8; // 將數(shù)組的長度置為8
console.log(my_array); // [1, 2, 3, 4, 5,6, 7, 8] 就會保留前幾位
my_array.length = 15;
console.log(my_array); // [ 1, 2, 3, 4, 5, 6, 7, 8, <7 empty items> ] 后面補undefine
console.log(my_array[10]) //undefined
檢查數(shù)組
console.log(Array.isArray(my_array)) //true
轉換方法
// toString()方法是調用了每一個元素的toString()方法
// valueOf()方法肿轨,返回的還是數(shù)組
// alert()的參數(shù)必須為字符串寿冕,所以他自己轉換了一下,也就是調用了數(shù)組的toString()
var colors = ["red", "blue", "green"]; // 創(chuàng)建一個包含 3 個字符串的數(shù)組
alert(colors.valueOf()); // red,blue,green 所以這個語句的背后椒袍,是后面這兩句
alert(colors); // red,blue,green
alert(colors.toString()); // red,blue,green
// 這個console.log()就是單純的把對象打印出來
var colors = ["red", "blue", "green"]; // 創(chuàng)建一個包含 3 個字符串的數(shù)組
console.log(colors.toString()); // red,blue,green
console.log(colors.valueOf()); // [ 'red', 'blue', 'green' ]
console.log(colors); // [ 'red', 'blue', 'green' ]
自定義兩個對象驼唱,實驗一下alert,還有tostring,tolocalstring
var person1 = {
toLocaleString: function () {
return "one";
},
toString: function () {
return "two";
}
};
var person2 = {
toLocaleString: function () {
return "three";
},
toString: function () {
return "four";
}
};
var people = [person1, person2];
console.log(people);
console.log(people.toString()); //two,four
console.log(people.toLocaleString()); //one,three
-------------------
var person1 = {
toLocaleString: function () {
return "one";
},
toString: function () {
return "two";
}
};
var person2 = {
toLocaleString: function () {
return "three";
},
toString: function () {
return "four";
}
};
var people = [person1, person2];
alert(people); //two,four 返回的結果與tostring()一樣
alert(people.toString()); //two,four
alert(people.toLocaleString()); //one,three
join方法驹暑,和python中的join類似玫恳,注意undefined
var colors = ["red", "green", "blue"];
console.log(colors.join(",")); //red,green,blue
console.log(colors.join("||")); //red||green||blue
console.log(colors.join(null)); //rednullgreennullblue
console.log(colors.join(undefined)); //red,green,blue
棧方法
// 這兩個方法都是在數(shù)組尾部操作的元素
var colors = new Array(); // 創(chuàng)建一個數(shù)組
console.log(colors.push("red", "green")); //2 推入兩項
console.log(colors.push("black")); //3 返回的是推進去后辨赐,數(shù)組的長度
var item = colors.pop(); // 取得最后一項
console.log(item); //"black"
console.log(colors.length); //2
隊列方法
var colors = new Array(); //創(chuàng)建一個數(shù)組
console.log(colors.push("red")); //1
console.log(colors); //[ 'red' ]
console.log(colors.push("green")); //2
console.log(colors); //[ 'red', 'green' ]
console.log(colors.push("black")); //3
console.log(colors); //[ 'red', 'green', 'black' ]
var item = colors.shift(); //取得第一項
console.log(item); //"red"
console.log(colors.length); //2
console.log(colors);// [ 'green', 'black' ]
console.log('---------------'); //2
var colors = new Array(); //創(chuàng)建一個數(shù)組
console.log(colors.unshift("red")); //1
console.log(colors); //[ 'red' ]
console.log(colors.unshift("green")); //2
console.log(colors); //[ 'green', 'red' ]
console.log(colors.unshift("black")); //3
console.log(colors); //[ 'black', 'green', 'red' ]
var item = colors.pop(); //取得第一項
console.log(item); //"red"
console.log(colors); //[ 'black', 'green' ]
總之:
pop 后面彈出
push 后面推進
shift 前端彈出
unshift 前端推進
前端 | 后端 | |
---|---|---|
彈出 | shift | pop |
推進 | unshift | push |
Date()類型
var now = new Date(); // Date()的參數(shù)必須是毫秒數(shù),通過parse和UTC兩個方法拓展了參數(shù)番位
console.log(now) // 2020-09-08T03:54:30.724Z
console.log(now.getDate()) // 8 多少日
Date.parse()
console.log(Date.parse('3/6/2020')) //1583424000000
// console.log(Date.parse('11111'))
console.log(new Date(1597878968161)) //2020-08-19T23:16:08.161Z
console.log(new Date('1597878968161')) // Invalid Date
console.log(new Date(Date.parse('3/5/2010'))) // 2010-03-04T16:00:00.000Z
console.log(new Date('3/5/2010')) // 直接給Date傳遞parse的參數(shù) 其實背后調用的依舊是parse方法
// 毫秒數(shù)
var start = Date.now();
console.log(start) // 1599537270731 類似與python中的time.time()獲取時間戳
console.log(Date.UTC(2020,6)) // 1593561600000
// GMT 時間 2000 年 1 月 1 日午夜零時
var y2k = new Date(Date.UTC(2000, 0)); // 月份是從0開始的
console.log(y2k); // 2000-01-01T00:00:00.000Z
// GMT 時間 2005 年 5 月 5 日下午 5:55:55
var allFives = new Date(Date.UTC(2005, 4, 5, 17, 55, 55));
console.log(allFives); // 2005-05-05T17:55:55.000Z
// 本地時間 2000 年 1 月 1 日午夜零時
console.log(new Date(2000, 0)); // 1999-12-31T16:00:00.000Z
// 本地時間 2005 年 5 月 5 日下午 5:55:55
console.log(new Date(2005, 4, 5, 17, 55, 55)); // 2005-05-05T09:55:55.000Z
var date1 = new Date(2007, 0, 1, 10,23,12); //"January 1, 2007"
var date2 = new Date(2007, 1, 1); //"February 1, 2007"
console.log(date1 < date2); //true
console.log(date1 > date2); //false
console.log(date1.valueOf()) // 1167580800000 返回的也是毫秒數(shù)
console.log(date2.valueOf())
console.log(date1.toDateString()) // Mon Jan 01 2007
console.log(date1.toTimeString()) // 10:23:12 GMT+0800 (中國標準時間)