复习-JS对象

167 阅读3分钟

1 JS对象

1.1 创建对象

1            var obj = {};
2            var obj = new Object();
3            function obj() {
                this.属性 = 值;
                this.方法 = function () {};
            }

1.2 遍历对象

            for (var k in obj) {
                console.log(k);   //得到属性名
                console.log(obj[k]);//得到属性值
            }

1.3 new 执行过程

  1. 在内存中建立一个新的空对象
  2. 让this指向这个新对象
  3. 执行构造函数中的代码,给这个新对象添加属性和方法
  4. 返回这个对象(所以构造函数不需要return)

2 内置对象

2.1 Math对象

Math对象不是构造函数,所以可以直接使用里面的方法和属性

常见用法

            Math.PI;
            Math.abs();     //圆周率
            Math.floor();   //向下取整
            Math.ceil();    //向上取整
            Math.round();   //四舍五入  但如  -3.5 结果是-3
            Math.max();     //最大值
            Math.min();     //最小值
            Math.random()

随机取整封装

在两个整数中随机选择整数,包括这两个整数本身.

             function getRandom(max, min) {
                 return Math.floor(Math.random() * (max - min + 1)) + min;
             }

2.2 Date对象

Date对象是一个构造函数 ,必须使用new来调用创建我们的日期对象

获取总毫秒数

(1)通过valueOf() getTime()

var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());

(2)简单方法

var date = +new Date();

(3)直接调用 Date.now()

用时间戳做倒计时

function countDown(time) {
                var nowTime = +new Date();
                var inputTime = +new Date(time);
                var times = (inputTime - nowTime) / 1000;
                var d = parseInt(times / 3600 / 24);
                d = d < 10 ? '0' + d : d;
                var h = parseInt((times / 3600) % 24);
                h = h < 10 ? '0' + h : h;
                var m = parseInt((times / 60) % 60);
                m = m < 10 ? '0' + m : m;
                var s = parseInt(times % 60);
                s = s < 10 ? '0' + s : s;
                return d + '天' + h + '小时' + m + '分钟' + s + '秒';
            }

2.3 数组对象

Array对象是构造函数

创建数组

var arr = [1,2,3];
var arr = new Array[];

数组操作

检测是否为数组

arr instanceof Array   返回值为truefalse
arr.isArray()          返回值为truefalse    优先

添加数组元素

 arr.push()    //在数组末尾添加一个或多个元素,返回值为新数组长度
 arr.unshift() //在数组开头添加一个或多个元素,返回值为新数组长度

删除数组元素

arr.pop()   //删除数组末尾最后一个元素,一次只能删一个,返回值为被删除的元素
arr.shift() //删除数组开头第一个元素,一次只能删一个,返回值为被删除的元素

数组翻转

arr.reverse()  

冒泡排序

arr.sort()
arr.sort(function(a,b){
 //return a-b  升序
 //return b-a  降序
 }

数组索引

arr.indexOf()

数组去重

           function unique(arr) {
                var newArr = [];
                for (var i = 0; i < arr.length; i++) {
                    if (newArr.indexOf(arr[i]) === -1) {
                        newArr.push(arr[i]);
                    }
                }
                return newArr;
            }

数组转化为字符串

arr.toString()
arr.join('-')  //可以在将','转化为其他连接符号

2.4 字符串对象

字符串在内存中不可变,所以不要大量的拼接字符串,并且所有的字符串操作方法都不会修改字符串。

根据字符返回位置

var str = 'dsklgklj'
str.indexOf('s'2)   //第一个参数选择字符,第二个参数选择从哪个位置开始
console.log(str.indexOf('s'))  //返回值为1

指定字符串出现的位置以及次数

            var str = 'jklsglkajlkgj';
            var index = str.indexOf('k');
            num = 0;
            while (index !== -1) {
                console.log(index);
                index = str.indexOf('k', index + 1);
                num++;
            }
            console.log(num);  //返回值为 1,6,10,3

根据位置返回字符

            str.charAt(index); //返回字符
            str.charCodeAt;    //返回相应索引号的ASCII值
            str[index];        //返回字符

统计出现最多次数的字符

            var str = 'kljlkkdasjfdksjfdksajfksljfkjl';
            var obj = {};
            for (var i = 0; i < str.length; i++) {
                if (obj[str[i]]) {
                    obj[str[i]]++;
                } else {
                    obj[str[i]] = 1;
                }
            }
            console.log(obj);
            for (var k in obj) {
                num = obj['k']; //出现多少次
                max = k;        //出现最多次的字符
            }
            console.log(num);
            console.log(max);

常用字符串操作方法

concat(str1, str2);                       //连接两个或多个字符串
str.substr(start, length);                //从start位置开始截取,length是取的个数
str.replace('被替换的字符', '替换的字符');  //只会替换第一个
str.split('分隔符');                       //用分隔符隔开的字符串才能转化为数组;