文档章节

JaveScript内置对象(JS知识点归纳八)

丶不将就
 丶不将就
发布于 2018/12/20 18:16
字数 2050
阅读 0
收藏 0

1)JS自身提供的方式

用于对数据进行简便的操作,根据方法可以操作的数据类型不同,形成了不同的对象--内置对象

2)数组

​ a)基本操作方法--对数组进行修改

从数组最后进行操作
    1)数组.push(); 传入参数  添加到数组最后  返回值=>新数组
    2)数组.pop();  传入参数  删除最后一个   返回值=>删除元素
   从数组开始进行操作
    3)数组.unshift();   传入参数 添加到数组开始  返回值=>新数组
    4)数组.shift();     传入参数 删除最开始的一个     返回值=>删除元素

​ b)操作方法

    1)数组.concat();  用于数组连接
        特性:不会修改原数组,返回操作的结果=>新数组
        特殊功能:进行数组的复制操作
    2)数组.slice(start,end)   复制数组中指定部分数据
        返回值:返回值:获取的结果不含end位置的值,以数组形式返回
        特殊功能:
            a)不传参数2,默认到最后
            b)参数可以为负数.表示从后往前
    3)数组.splice(start,len);  截取数组中的指定部分
        返回值:截取元素的部分  数组形式
        特殊用法:数组.splice(start,len,item1,item2,item3..)  将后面的元素放入原数组中被截取的位置上,个数不需要对应
        常用用法:删除数组中的指定元素 
   

​ c)位置方法-IE9以下不支持

-->   数组.indexof(要查找的元素值,检索的起始位置索引值(默认是==0))   ---  查找数组中置顶元素的索引值
    返回值:找到=>返回索引值   没有找到=>-1
    数组去重  
        var arr = [1, 1, 2, 2, 3, 3, 4, 3, 2, 1, 1, 2, 3, 2, 1];
        var resultArr = [];
        for(var i= 0 ; i<arr.length; i++){
            if(resultArr.indexof(arr[i]===-1){
                resultArr.push(arr[i]);
            }
        }
        console.log(resultArr);
 -->   数组.lastIndexOf()  不经常使用

​ 问题:如果在一个数组中具有多个满足条件的元素,需要多次使用indexof

        var arr = ["a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a"];
         var indexArr = [];//用于保存找到的索引值
         var index = -1;
         while (arr.indexof("a",index +1) != -1){
             index = arr.indexof("a",index +1 );
             indexArr.push(index);
         }
         console.long(indexArr);

​ d)排序方法

    1)数组.reverse( ) 翻转数组   修改原数组  返回值=>原数组
    2)数组.sort( )  排序   修改原数组  
    3)return a-b;  升序   return b-a; 降序 
         var arr = [7, 5, 8, 6, 3, 11, 22, 9, 2, 1, 4];
            //升序的参数形式:  function(a,b){return a-b;}
            //arr.sort(function (a,b) {
            //  return a-b;
            //});
            //降序的参数形式:   function(a,b){return b-a;}
            arr.sort(function (a, b) {
            return b - a;
            });
            console.log(arr);
    

模拟 sorted

        模拟:
             function sorted(arr, fn) {
                //fn = function (a,b) {
                //  //使用时需要的是差的计算结果
                //  return a-b;//返回的是当前项减后项的差
                //  return b-a;//返回的是后项减当前项的差
                //}
                
                var j, temp;
                for (var i = 0; i < arr.length - 1; i++) {
                    for (j = 0; j < arr.length - 1 - i; j++) {
                    //比較当前项和后项的大小关系:
                    //升序的判断条件  :  arr[j] > arr[j + 1]
                    // arr[j] - arr[j+1] > 0;
                    
                    //降序的判断条件  :  arr[j] < arr[j + 1]
                    // arr[j+1] - arr[j] > 0;
                    
                    //结论:升序和降序的控制实际上是由比較运算前面的操作数决定的。
                    //如果是当前项-后项的差,升序。
                    //如果是后项-当前项的差,降序。
                    if (fn(arr[j], arr[j + 1]) > 0) {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                    }
                }
             }
                var arr = [1, 6, 3, 5, 4, 2];
                sorted(arr, function (a, b) {
                //使用时需要的是差的计算结果
            //      return a-b;//返回的是当前项减后项的差
                return b - a;//返回的是后项减当前项的差
             });
                console.log(arr);

3)字符串

​ a)概念

字符串就是基本数据类型,不是对象;JS帮我们创建了基本包装类型对象,并且调用了其属性和方法;我们一定不要自己书写基本包装类型对象

​ b)转换为字符串

    1)数组.toString( );
    2)join( );
        //var arr = [1,2,3,4,5];
        //2.1 如果不传参数,形式和toString相同
        //console.log(arr.join());//"1,2,3"
        //2.2 传入参数时,会按照传入的字符串将数组的所有元素进行连接
        //console.log(arr.join("-"));//"1-2-3"
        //2.3 传入空字符串,可以返回元素相连的字符串
        //console.log(arr.join(""));//"123"

​ c)基本属性

    1)字符串.length   字符串长度
    2)索引
        a)字符串[索引值]    IE9 以下不支持
        b)字符串.charAt(索引值)

​ d)字符串方法--字符串具有不可变性

    1)字符串.concat( )   字符串连接(不常用,一般使用+)
    2)字符串.slice(start,end)   拷贝字符串中的指定部分字符
    3)字符串.substring(start,end)   截取字符串中的指定字符(不常用)   
        不支持负数参数(负数默认是0 ,参数1 > 参数2 =>交换两个参数的值)
    4)字符串.substr (start,len)  截取字符串中的指定长度的部分字符

​ e)大小写转换

    1)字符串.toUpperCase(转为大写)
    2)字符串.toLowerCase(转为小写)  

​ f)位置方法--没有兼容性

    1)字符串.indexOf("要查找的字符串",起始位置索引值);
        如果参数1是多个字符,会返回首字母所在的位置(前提是整体必须存在)
    2)字符串.LastindexOf("要查找的字符串",起始位置索引值);

g)替换方法

字符串.replace("要替换的字符串","替换为什么字符串");
        replace在使用时一次只能替换从左往右的第一个指定字符。
        替换次数不定时,使用while循环
            var str = "adbcddefdg";
            while(str.indexOf("d") != -1){
            str = str.replace("d", "z");
            }
            console.log(str);

​ l)转换方法

字符串.split()  将字符串转换为数组结构
        按照传入的字符串参数将字符串str进行分割操作
            var str = "da-bac-ade-af-ag-dwd";
      a) 什么也不传,整体会变成一个数组,字符串为数组的第一个元素(不常用)
        console.log(str.split());//["abcdefg"]
      b) 传入空字符串,转换为数组形式,每个字符为数组中的一个元素
        console.log(str.split(""));//["a", "b", "c", "d", "e", "f", "g"]
      c) 传入某个字符串
        console.log(str.split("-"));

​ e)常用的使用方法--与数组方法join进行结合

       1) 删除字符串中的所有a
            var str = "dahuwaadawadaukbawaadua";
            var arr = str.split("a");
            console.log(arr.join(""));*/
        2) 将字符串中的所有a替换为z
            var str = "dahuwaadawadaukbawaadua";
            var arr = str.split("a");//将a去除
            console.log(arr.join("z"));//将z添加

4)Date对象

    1 创建方式---var date = new Date();
        1.1 当前时间---var date = new Date();
        1.2 具体的某一个时间---var date = new Date("2015-1-1 12:12:12");
            如果传入的参数为数值,月份是从0开始,如果月份大于11,可能会跨年---var date = new Date(2015,13,1,12,12,12);--console.log(date);                
    2 date对象的方法---作用:用于获取日期中的某个部分
        a)获取年份---console.log(date.getFullYear());
        b)获取月份:月份从0开始,使用时注意要加1---console.log(date.getMonth()+1);
        c)获取日---console.log(date.getDate());
        d)获取星期:  星期是从0开始的,但是0表示周日---console.log(date.getDay());
        e)获取小时--- console.log(date.getHours());
        f)获取分钟--- console.log(date.getMinutes());
        g)获取秒---console.log(date.getSeconds());
        h)获取毫秒: 0-999---1秒 是 1000毫秒---console.log(date.getMilliseconds());

5)Math对象

1)Math.PI  圆周率
2)Math.max(item1,item2....)计算多个数的最大值
3)Math.min(item1,item2....)计算多个数的最小值
4)向上取整:取到比当前数值大的最近的一个整数
    console.log(Math.ceil(2.3));//3
5)向下取整:取到比当前数值小的最近的一个整数
    console.log(Math.floor(1.3)s);//1
    console.log(Math.floor(-1.3));//-2*/
    四舍五入
        console.log(Math.round(1.4));
        console.log(Math.round(1.5));
    对于负数来说:
    下面的计算方式指的是某一位上的数值,不管符号的问题
        如果小于等于5,去除小数位,如果大于5,去除小数位并且将整数位的数值扩大1
        console.log(Math.round(-1.5));//-1
        console.log(Math.round(-1.6));//-2
6)Math.random()  获取随机数 [0.1)
        console.log(Math.random());
        传入的参数值需要是弧度,可能会出现精度的问题,后期在使用时进行处理即可
7)Math.PI 表示的为180度的弧度   Math.PI/180  1弧度
8)正弦值 console.log(Math.sin(Math.PI / 180 * 60));
9)余弦值: console.log(Math.cos(Math.PI / 180 * 60));
10)正切值: console.log(Math.tan(Math.PI / 180 * 45));

本文转载自:https://www.cnblogs.com/AmorR/p/8687652.html

丶不将就
粉丝 1
博文 61
码字总数 0
作品 0
杭州
程序员
私信 提问
关于javascript的原型和原型链,看我就够了(一)

关于js的原型和原型链,有人觉得这是很头疼的一块知识点,其实不然,它很基础,不信,往下看 要了解原型和原型链,我们得先从对象说起 创建对象 创建对象的三种方式: 对象直接量 通过对象直...

陌上寒
2018/11/03
0
0
深克隆-Ramda源码中的实现

知识点总结 写一个深克隆的方法,我们需要掌握的知识点 js的数据类型:原始类型,引用类型。 js对象的理解。Date,ExpRep等内置对象的使用。 使用typeof、Object.prototype.toString进行类型...

猎户座小陈
06/28
0
0
查看TypeScript库自带的声明文件

拥抱TypeScript 我很喜欢TypeScript。 我是名C#转前端的程序员,当第一次看到TypeScript时,感觉好熟悉,当上网查询到TS是由微软出品时,瞬间明白了。微软将很多的C#特性移植到了JS上,就是T...

猎户座小陈
07/08
0
0
JavaScript 参考手册

JavaScript 参考手册 http://www.w3school.com.cn/jsref/index.asp 本部分提供完整的 JavaScript 参考手册: JavaScript 本地对象和内置对象 Browser 对象(BOM) HTML DOM 对象 JavaScript...

chenhao_asd
2018/05/25
0
0
玩转 JavaScript 之不得不懂的原型

概述 本系列文章的第一篇中提到了对象类型,对象是 JavaScript 中的重要角色之一,本篇便从原型这个知识点切入,希望大家在阅读过本篇文章之后脑海中都能够建立起一张完整的思维导图。 函数与...

Seymoe
03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

47.Nginx安装 默认虚拟主机 用户认证 域名重定向

12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.9 Nginx域名重定向 扩展 nginx.conf 配置详解 http://www.ha97.com/5194.html http://my.oschina.net/duxuefeng/blog/34880 nginx......

oschina130111
11分钟前
0
0
vue+element 封装弹窗

子组件: <template> <el-dialog title="" :visible.sync="dialogVisible" :before-close="handleCloseBindWarnStandard" width="500px"> <el-form label-width="100px"> <el-form-item prop......

羊皮卷
25分钟前
0
0
ABB变送器大胆创新实现技术突破

本文关键字:ABB变送器http://www.whdkm.cn/ 虽然市场上变送器传感器种类繁多,但是近几年传感器的技术创新速度却是比较缓慢,这是由于大多数用户宁可坚持使用久经经验的技术,而不愿冒险采用...

whdkm666
29分钟前
0
0
TPA2080D1相关介绍

TPA2080D1相关介绍 1说明 TPA2080D1器件是一款高效D类音频功率放大器,集成了G类升压转换器,可在低输出功率下提高效率。它可以驱动高达2.2 W的4-Q扬声器(1%THD + N)。 TPA2080D1具有85%...

不能吃肉的仙女
34分钟前
0
0
今日大暑,JEPaaS提醒您注意防暑降温

“大暑,六月中。暑,热也,就热之中分为大小,月初为小,月中为大,今则热气犹大也。” 天气炎热,JEPaaS提醒您注意防晒,预防中暑。

JEPaaS云平台
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部