12JavaScript中的内置对象
技术交流QQ群:1027579432,欢迎你的加入!
1.内置对象
- JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象;
- 前两种对象是JS中的基础内容,属于ECMAScript,第三个浏览器对象属于JS独有的,后面JS API中会有讲解;
- 内置对象:JS语言自带的一些对象,这些对象提供给开发者使用,并提供了一些常用的或者最基本且必要的功能(属性和方法);
- JavaScript中提供了多个内置对象:Math、Date、Array、String等;
2.查文档
- MDN:学习内置对象的使用时,只要学会其常用成员的使用即可。可以通过查阅文档学习,通过MDN/W3C来查阅;
- Mozilla开发者网络(MDN)提供了有关开发网络技术(Open Web)的信息,包括HTML、CSS和万维网及HTML5应用的API;
- MDN官方网站
- 如何学习对象中的方法?
- 首先查阅该方法的功能;
- 接着查看里面参数的意义和类型;
- 再查看返回值的意义和类型;
- 最后,通过demo进行测试;
3.Math对象
- Math对象:不是一个构造函数,所以不需要new来调用,而是直接使用里面的属性和方法。
Math.PI // 圆周率 Math.floor() // 向下取整 Math.ceil() // 向上取整 Math.round() // 四舍五入 Math.abs() // 绝对值 Math.max()/Math.min() // 最大值或最小值// 实际案例如下: // 绝对值 console.log(Math.abs(-1)); console.log(Math.abs('-1')); // -1 隐式转换,会把字符串型的-1转换为数字型的-1 console.log(Math.abs('curry')); // NaN// 取三个整数方法 console.log(Math.floor(-1.2)); // 向下取整-2 console.log(Math.ceil(1.9)); // 向上取整2 console.log(Math.round(3.4)); // 3 四舍五入,其他数字都是四舍五入,但是.5特殊,它往大了取! console.log(Math.round(-1.5)); // -1
- 随机数方法random()
- random()返回一个随机的小数,小数的范围是[0,1);
- random()函数没有传入的参数;
- 返回的是一个随机小数[0, 1);
// 随机数方法random():返回一个随机小数[0, 1) console.log(Math.random());// 案例:得到两个数之间的随机整数,并且包含两个端点 // 记住公式:Math.floor(Math.random() * (max - min + 1)) + min function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min; }var res = getRandom(1, 10); console.log(res);// 案例:随机点名 var arr = ['curry', 'durant', 'harden', 'james'] console.log(arr[getRandom(0, arr.length - 1)]);// 案例:猜数字游戏 var random = getRandom(1, 10); while (true) {var num = prompt('你来猜?输入1~10之间的一个数字:');if (num > random) {alert('你猜大了');} else if (num < random) {alert('你猜小了');} else {alert('恭喜你答对了!');break;} }
4.日期对象
- Date()对象是一个构造函数,必须使用new来调用创建我们的日期对象;
- 参数常用的写法:
数字型 2020,02,15 字符串型 '2020-02-15 14:23:56'
- Date()方法使用实例如下:
// 日期对象Date var obj = new Object(); // 创建了一个对象 var arr = new Array(); // 创建了一个数组对象 // 如果没有参数,返回系统当前的时间 var date = new Date(); // 创建了一个日期对象 console.log(date); var date1 = new Date(2020, 02, 15); console.log(date1); // 返回的是3月不是2月 var date2 = new Date('2020-02-15 14:26:59'); // 常用的写法 console.log(date2);
- 日期的格式化
- 需要获取日期指定的部分,因此要手动得到这种格式。
// 格式化日期 年月日 var date = new Date(); console.log(date.getFullYear()); // 返回当前日期的年 console.log(date.getMonth()); // 返回的月份+1等于实际的月份即3月 console.log(date.getDate()); // 返回的是几号 console.log(date.getDay()); // 3 周六返回的是6,周一返回的是1,周日返回的是0 // 返回2020年2月15日 星期六 var year = date.getFullYear(); var month = date.getMonth() + 1; var dates = date.getDate(); var day = date.getDay(); var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);// 格式化日期 时分秒 var date = new Date(); console.log(date.getHours()); console.log(date.getMinutes()); console.log(date.getSeconds()); // 案例:要求封装一个函数返回当前的时分秒 function getTimer() {var time = new Date();var h = time.getHours();h = h < 10 ? '0' + h : h;var m = time.getMinutes();m = m< 10 ? '0' + m : m;var s = time.getSeconds();s = s < 10 ? '0' + s : s;return h + ':' + m + ':' + s; } console.log(getTimer());
- 需要获取日期指定的部分,因此要手动得到这种格式。
- 获取日期总的毫秒(时间戳)形式
- Date对象是基于1970年1月1日(世界标准时间)算起的毫秒数,我们经常利用总的毫秒数来计算时间,因为它更准确。
// 获取Date对象总的毫秒数(时间戳),不是当前时间的毫秒数,而是距离1970年1月1日后算起的总毫秒数 // 1.通过valueOf()或者getTime() var date = new Date(); console.log(date.valueOf()); console.log(date.getTime()); // 2.简单写法(实际开发中最常用的方法!) var date11 = +new Date(); // +new Date()返回的就是总的毫秒数 console.log(date11); // 3.更简单的方法(H5新增的特性) console.log(Date.now());
- 倒计时案例
// 案例:倒计时效果 /* 先把输入的时间减去现在的时间就是剩余时间即倒计时。又因为不能用时分秒直接相减。因此,把剩余时间转换为时间戳来实现。再把剩余时间总的毫秒数转换为天 时 分 秒 转换公式如下: d = parseInt(总秒数/60/60/24); h = parseInt(总秒数/60/60%24); m = parseInt(总秒数/60%60); s = parseInt(总秒数%60); */ function countDown(time) {var nowTime = +new Date(); // 返回的是当前时间总的毫秒数var userInputTime = +new Date(time); // 返回用户输入的时间var res = (userInputTime - nowTime) / 1000; // res就是剩余时间总的毫秒数var d = parseInt(res / 60 / 60 / 24);d = d < 10 ? '0' + d : d;var h = parseInt(res / 60 / 60 % 24);h = h < 10 ? '0' + h : h;var m = parseInt(res / 60 % 60);m = m < 10 ? '0' + m : m;var s = parseInt(res % 60);s = s < 10 ? '0' + s : s;return d + '天' + h + '时' + m + '分' + s + '秒'; } console.log(countDown('2020-02-15 18:16:59')); var date = new Date(); console.log(date);
- Date对象是基于1970年1月1日(世界标准时间)算起的毫秒数,我们经常利用总的毫秒数来计算时间,因为它更准确。
5.数组对象
- 创建数组对象的两种方式:
- 字面量方式;
- new Array();
// 1.字面量方式 var arr = ['curry', 'harden', 'durant']; // 2.new Array()方式 var arr1 = new Array(); // 创建了一个空的数组 var arr2 = new Array(2); // 这个2表示数组的长度为2,表示数组中有两个元素 console.log(arr2); var arr3 = new Array(3, 3); // 等价于创建了数组[2,3] console.log(arr3);
- 检测是否为数组
- (1). instanceof是一个运算符,它可以用来检测是否为数组;
- (2). Array.isArray(参数)方法[H5新增的特性]
// 检测是否为数组:instanceof或isArray()方法 var arr = []; var obj = {}; console.log(arr instanceof Array); console.log(obj instanceof Array); console.log(Array.isArray(arr)); console.log(Array.isArray(obj));
- 添加或删除数组元素的方法
// 添加或删除数组元素方法 // push() var arr = [1, 2, 3]; // arr.push(4, 'curry'); console.log(arr.push(4, 'curry')); // 返回的是新数组的长度 console.log(arr); // unshift() console.log(arr.unshift('red', 'blue')); console.log(arr); // pop() console.log(arr.pop()); // 返回值是curry console.log(arr); // shift() console.log(arr.shift()); console.log(arr);
- push():数组尾部追加元素;
- push():在数组末尾添加一个或者多个数组元素;
- push()的目的是给数组追加新的元素;
- push()中的元素直接写需要追加的数组元素;
- push()操作结束后返回的是新数组的长度;
- 原数组也会发生变化;
- unshift():数组头部追加元素;
- unshift():在数组开头添加一个或者多个数组元素;
- unshift()的目的是给数组追加新的元素;
- unshift()中的元素直接写需要追加的数组元素;
- unshift()操作结束后返回的是新数组的长度;
- 原数组也会发生变化;
- pop():删除数组中的最后一个元素
- pop()的目的是删除数组的最后一个元素,记住一次只能删除一个元素;
- pop()没有参数;
- pop()操作结束后返回的是被删除的那个元素;
- 原数组也会发生变化;
- shift():删除数组中的第一个元素
- shift()的目的是删除数组的第一个元素,记住一次只能删除一个元素;
- shift()没有参数;
- shift()操作结束后,返回的是被删除的那个元素;
- 原数组也会发生变化;
- push():数组尾部追加元素;
- 数组排序
// 数组翻转与排序 // 1.翻转数组 var arr = ['pink', 'red', 'blue']; arr.reverse(); console.log(arr); // 2.冒泡排序 var arr1 = [13, 4, 77, 1, 7]; arr1.sort(function(a, b) {// return a - b; // 按照升序进行排序return b - a; // 按照降序进行排序 }); console.log(arr1);
- 数组索引方法
// 数组索引方法:indexOf(数组元素)和lastindexOf(数组元素) var arr = ['red', 'green', 'blue', 'pink', 'blue']; console.log(arr.indexOf('blue')); // 只返回第一个满足条件的索引号 console.log(arr.indexOf('yellow')); // 如果该数组中找不到元素,则返回的是-1 console.log(arr.lastIndexOf('blue')); // 注意返回的索引号是4,只是查找顺序是从后往前查找! console.log(arr.lastIndexOf('yellow'));
- 数组转换为字符串
// 数组转换为字符串 // 1.toString() var arr = [1, 2, 3, 'curry']; console.log(arr.toString()); // 2.join('分隔符') console.log(arr.join()); console.log(arr.join('-')); console.log(arr.join('&'));
- 其他重要方法
6.字符串对象
- 基本包装类型:把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
- 为了便于操作基本数据类型:JavaScript还提供了三个特殊的引用类型:String、Number、Boolean。
// 对象才会有属性和方法,复杂数据类型才有属性和方法 // 简单数据类型为什么会有length属性呢? // 基本包装类型:将简单数据类型包装成为复杂数据类型 // (1)把简单数据类型包装为复杂数据类型 var temp = new String('andy'); // (2)把临时变量的值赋值给str str = temp; // (3)销毁临时变量 temp = null;
- 字符串的不可变性:是指里面的值不可变,虽然看上去可以改变内容,但是其实是地址变了。实质是在内存中新开辟了一个内存空间。
// 字符串的不可变性 var str = 'andy'; console.log(str); str = 'red'; console.log(str);
- 因为字符串的不可变性,所以不要大量拼接字符串!
// 因为字符串的不可变性,所以不要大量拼接字符串! var str = ''; for (var i = 1; i <= 1000000; i++) {str += i; } console.log(str); // 这个结果需要花费大量时间来显示,因为需要不断开辟新的内存空间
- 根据字符返回位置
- 字符串的所有方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串。
// 根据字符返回位置:indexOf('要查找的字符',[起始的位置]) var str = '改革春风吹满地,春天来了'; console.log(str.indexOf('春')); console.log(str.indexOf('春', 3)); // 从索引号3的位置开始查找字符'春' console.log(str.lastIndexOf('吹'));
- 字符串的所有方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串。
- 根据位置返回字符[重点]
// 根据位置返回字符 // 1.charAt(index):根据位置返回字符 var str = 'Curry'; console.log(str.charAt(3)); // 遍历所有的字符 for (var i = 0; i < str.length; i++) {console.log(str.charAt(i)); } // 2.charCodeAt(index):根据位置返回字符的ASCII码,目的:判断用户按下了哪个键 console.log(str.charCodeAt(3)); // 3.str[index] (H5新增特性) console.log(str[2]);
- 字符串操作方法[重点]
// 字符串的操作方法 // 1.concat('字符串1', '字符串2', ...) var str = 'Curry'; console.log(str.concat(' Harden')); // 2.substr('截取的起始位置', '截取几个字符') var str1 = 'CurryHarden'; console.log(str1.substr(5, 6)); // Harden
- 其他方法
// 其他方法 // 1.替换字符replace('被替换的字符', '替换后的字符'),它只会替换第一次出现的字符 var str = 'Harden Curry Durant'; console.log(str.replace(' ', '+')); // 案例:将所有的字符o替换为* var str = 'abcoefoxyozzopp'; while(str.indexOf('o') != -1) {str = str.replace('o', '*'); } console.log(str); // 2.字符转换为数组split('分隔符'),类似于前面的join var str = 'Curry, Durant, Harden'; console.log(str.split(',')); var str = 'Curry&Durant&Harden'; console.log(str.split('&')); // 3.toUpperCase():转换为大写字母 // 4.toLowerCase():转换为小写字母
7.资料下载
- 笔记及代码,欢迎star,follow,fork…
12JavaScript中的内置对象相关推荐
- javascript中的内置对象和数据结构
文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...
- 简单聊聊js中的内置对象
文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...
- jsp中的内置对象(9个)、作用
jsp内置对象 定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象 客户 ...
- JS中的内置对象 --- Math、Date、Array、String
1. 基本概念区分 实例对象:通过构造函数创建出来,实例化对象.实例方法必须通过实例对象调用 静态对象(内置对象): 不需要创建, 直接就是一个对象,方法(静态方法)直接通过这个对象名调用.静态方法必 ...
- JavaScript(九):JavaScript中的内置对象
一.对象的概念 对象是一种特殊的数据类型(object). 拥有一系列的属性和方法. 分为内置对象和自定义对象. 二.String对象 String对象用来支持对于字符串的处理. 1.属性 lengt ...
- js中的内置对象(详细篇)
在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在调用属性和 ...
- JavaScript中的内置对象
一.什么是内置对象 js本身已经写好的对象,我们可以直接使用不需要定义它. 常见的内置对象有 Data.Array,Math.RegExp.Error.String.... Array高级API so ...
- JSP中out内置对象的使用
out内置对象的应用方法 方法名 含义 print() 输出显示信息 println() 换行输出显示信息 clear() 清除缓冲区里的内容 clearBuffer() 清除当前缓冲区的内容 flu ...
- JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...
最新文章
- eclipse egit(分支管理 上)
- 【运营】策划朋友圈营销必知的微信八大“封杀”规则
- python3九九乘法表儿歌下载_python3的基础学习之九九乘法表和format函数,值得收藏...
- android拍照功能无预览,Android 无预览拍照
- 搭建srs服务器(rtmp)
- (王道408考研数据结构)第三章栈和队列-第三节2:栈的应用之递归
- (三)MFC学习之动画
- 树莓派舵机 c语言,树莓派控制SG90舵机
- Flash存储卡与读卡器常识
- 程序员摆地摊的正确姿势!
- ruoyi框架集成magic-api
- 小白基础知识必备|| 整型常量与进制间的转换
- java数学运算(Math类)
- Go的WaitGroup源码分析
- VIOS磁盘映射关系确认
- Trivy是CD流水线上面向容器的脆弱性扫描器
- OpenLayers之多源数据加载七:矢量地图
- echarts做了一个气泡图
- Web测试中定位bug方法
- 多摩川绝对值编码器CPLD FPGA通信源码(VHDL格式+协议+说明书)