JavaScript知识整理(5)

来源博客:【Harryの心阁

  • 构造函数,遍历对象,内置对象

构造函数

  1. 将对象里面相同的属性和方法抽象出来封装到函数里面
  2. 构造函数首字母要大写
  3. 构造函数必须使用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('你好') 

遍历对象

  1. for..in格式for(变量in 对象){}
    var momo = {
        age: 18,
        name: '你好'
    }
    for (var k in momo) { /*k变量 输出得到的是属性名*/
        console.log(k);
        console.log(momo[k]);
    }
  1. 创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码
  • 使用系统自带的构造函数创建对象
// 创建对象
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();

回顾练习

  1. 写一个函数,实现反转任意数组。

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 %}

  1. 写一个函数,实现对数组的排序。
    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);

内置对象

  1. Math,Date,Array,String
  2. 数学属性 【属性地址
  3. 不是构造函数,直接使用
  4. 绝对值Math.abs()

三个取整方法

  1. Math.floor()向下取整
  2. Math.ceil()向上取整
  3. Math.round()四舍五入

随机数

  1. Math.random()
  2. 随机点名
    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)]);
  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;
    }

日期对象

  1. 日期对象是一个构造函数 var date = new Date();
  2. 数字写法,字符串写法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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harry-iu

顺手给小编加个鸡腿????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值