来源博客:【Harryの心阁】
-
构造函数,遍历对象,内置对象
构造函数
- 将对象里面相同的属性和方法抽象出来封装到函数里面
- 构造函数首字母要大写
- 构造函数必须使用new,只要调用new就创建了一个对象
function Star(uname) {
this.name = uname;
this.sing = function(sang){
console.log(sang);
}
}
var ldh = new Star('ldh')
console.log(typeof ldh);
console.log(ldh.name);
ldh.sing('你好')
遍历对象
for..in
格式for(变量in 对象){}
var momo = {
age: 18,
name: '你好'
}
for (var k in momo) { /*k变量 输出得到的是属性名*/
console.log(k);
console.log(momo[k]);
}
- 创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码
- 使用系统自带的构造函数创建对象
// 创建对象
var computer = new Object();
// 为对象添加属性
computer.color = '灰色';
computer.weight = '2kg';
computer.brand = 'lenovo';
computer.type = 'xiaoxin';
// 为对象添加方法
computer.movie = function(){
console.log('看电影');
}
computer.music = function(){
console.log('听音乐');
}
computer.play = function(){
console.log('玩游戏');
}
computer.Kcode = function(){
console.log('敲代码');
}
//调用对象属性
console.log('我的颜色是'+computer.color );
console.log('我的重量是'+computer.weight);
console.log('我的品牌是'+computer.brand);
console.log('我的类型是'+computer.type);
//调用对象方法
computer.movie();
computer.music();
computer.play();
computer.Kcode();
- 自定义构造函数创建对象
function Computer(color, weight, brand, type) {
this.color = color;
this.weight = weight;
this.brand = brand;
this.type = type;
var re = ('这台' + this.color + ',重量为' + this.weight + '的' + this.type)
this.movie = function () {
console.log(re + '可以看电影');
},
this.game = function () {
console.log(re+ '可以打游戏');
},
this.Kcode = function () {
console.log(re+ '可以敲代码');
}
}
var com = new Computer('灰色', '2kg', 'lenovo', '小新');
com.movie();
com.game();
com.Kcode();
- 使用字面量形式创建对象
var computer2 = {
color: '灰色',
weight: '2kg',
brand: 'lenovo',
type: '小新',
movie: function () {
console.log('这台' + this.color + ',重量为' + this.weight + '的' + this.type + '电脑可以看电影');
},
game: function () {
console.log('这台' + this.color + ',重量为' + this.weight + '的' + this.type + '可以打游戏');
},
write: function () {
console.log('这台' + this.color + ',重量为' + this.weight + '的' + this.type + '可以敲代码');
}
}
// 使用for..in便利对象和方法
for (var k in computer2) {
console.log(computer2[k]);
}
// 调用方法
computer2.movie();
computer2.game();
computer2.write();
回顾练习
- 写一个函数,实现反转任意数组。
function reverse(arr){
var newArr = [];
for(var i = arr.length - 1; i >= 0; i--){
newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = reverse([1,2,31,412,3124])
console.log(arr1)
/*如果使用arguments的话后面的赋值不需要加`[]`*/
{% endfolding %}
- 写一个函数,实现对数组的排序。
function sort(num){
for(var i = 0; i<=num.length -1; i++){
for(var j=0;j<=num.length -i-1;j++){
if(num[j]>num[j+1]){
var temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;
}
}
}
return num;
}
var num1 = new sort([1,32141,212,23,12,21])
console.log(num1);
内置对象
- Math,Date,Array,String
- 数学属性 【属性地址】
- 不是构造函数,直接使用
- 绝对值
Math.abs()
三个取整方法
- Math.floor()向下取整
- Math.ceil()向上取整
- Math.round()四舍五入
随机数
- Math.random()
- 随机点名
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var arr = ['dasd', 'dasxaw', 'dasaxfa', '正读', '真弟弟'];
console.log(arr[getRandom(0, arr.length - 1)]);
- 猜数字游戏
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var random = getRandom(1, 50);
while (true) {
for (var i = 1; i <= 10; i++) {
var num = prompt('你来猜,请输入一个1-50的数字');
if (num > random) {
alert('提示:您猜大了!!' + '\n' + '您还有' + (10 - i) + '次机会');
} else if (num < random) {
alert('提示:你猜小了!!' + '\n' + '您还有' + (10 - i) + '次机会')
} else if (num == random) {
alert('恭喜你猜对了');
break;
}
} break;
}
日期对象
- 日期对象是一个构造函数
var date = new Date()
; - 数字写法
,
字符串写法2021-1-1 0:0:0
var date = new Date();
console.log(date);
console.log(date.getFullYear());
console.log(date.getMonth() + 1);
console.log(date.getDate());
console.log(date.getDay());