JavaScript 中的内置对象——0606、0607笔记整理
一、JavaScript String 对象
1、String 对象
String 对象也是字符串。
var s1="abcdefg";
常规定义的字符串;
var s2=new String("abcdefg");
使用new
关键字声明一个新的字符串对象,也可以写成var s2=new String(s1);
。
字符串类对象如何获取字符?
使用位置(索引)可以直接获取字符串类对象中的任何字符,
如:console.log(s2[0]); //a
也可以使用charAt()
,参数是要获取字符的索引
如:console.log(s3.charAt(0));
字符串类对象的遍历:
for in 遍历:
for(var index in s3){console.log(s3[index]);console.log(s3.charAt(index));console.log(s3.charCodeAt(index)); //遍历,并将字符转化为ascii}
for 遍历:
for (var i = 0; i < s3.length; i++) {console.log(s3[i]);console.log(s3.charAt(i));console.log(s3.charCodeAt(i)); //遍历,并将字符转化为ascii}
检测类型:
检测类型,用 typeof;
instanceof 检测 String类对象的类型,其实是检测类对象的构造函数,返回值是true 、false
var s1="abcdefg";var s2=new String("abcdefg");console.log(typeof s1); //stringconsole.log(typeof s2); //objectconsole.log(s2 instanceof String); //trueconsole.log(s1 == s2); //trueconsole.log(s1 === s2); //false
常规定义的字符串,是原始值,是 string 字符串类型;
使用new关键字声明的String字符串对象是 object 对象型。
2、String 对象的方法
valueOf()
返回原始值
如:console.log(s2.valueOf()); //abs
所有字符串的方法都可以给字符串类对象使用。
字符串方法对照表
常用的字符串的方法:
(1)类型的强制转换
parseFloat()
将字符串类型的数字转换为数字,带小数点
parseInt()
将字符串类型的数字转换为数字,整数型。也可以对数字类型去小数点。
以上两种方法可以去掉字符,前提是数字在前,字符在后
console.log(parseInt("9.8")); //9console.log(parseInt("9.8元")); //9console.log(parseInt(9.8)); //9console.log(parseFloat("9.8")); //9.8console.log(parseFloat("9.8元")); //9.8
toString()
数字类型转字符串
var a1=123;console.log(a1.toString());
(2)在字符串中检测字符
如果存在,返回 某个指定的字符串值 在字符串中首次出现的位置,否则返回-1。
indexOf()
从左-右查找,两个参数,分别为要查找的字符,起始查找的索引位置。
lastIndexOf()
从右-左查找,两个参数,分别为要查找的字符,起始查找的索引位置。索引不变,只是查找顺序不同。
var str="abcdea";//indexof() 从左-右查找console.log(str.indexOf("a")); //0console.log(str.indexOf("a", 3)); //5//lastIndexOf() 从右-左查找console.log(str.lastIndexOf("a")); //5console.log(str.lastIndexOf("a", 3)); //0
(3)查找字符
如果存在,返回 某个指定的字符串值 在字符串中首次出现的位置,否则返回-1。
可以查找与正则表达式相匹配的值。
search()
从左到右查找字符,参数为要查找的字符
var str="abcdea";console.log(str.search("a")); //0//可以使用正则查找console.log(str.search(/\a/g)); //0
(4)拼接字符串
可以使用 + 拼接字符串;
也可以使用concat()
拼接字符串,参数是需要拼接的字符串,可以连续拼接,返回值是拼接之后的字符串
var m="abc";var m1="abcd";console.log(m.concat(m1)); //abcabcdvar m2="fff";console.log(m.concat(m1).concat(m2)); //abcabcdfff
(5)字符的替换
replace()
替换字符,有两个参数,分别为要替换的字符,替换的值
var str="abcdea";console.log(str.replace("b", 0)); //a0cdeaconsole.log(str.replace("a", 1)); //1bcdea//正则查找console.log(str.replace(/\a/g, 0)); //1bcde1
注意:replace直接使用只能替换字符串里面相同字符中的一个,要替换全部需要使用正则表达式。
(6)ascii 值和字符之间的相互转化
charCodeAt()
字符转化为ascii ,参数为当前字符的索引;
String.fromCharCode()
ascii转化为字符,参数为ascii 值。
var s="a";console.log(s.charCodeAt(0)); //字符转化为asciiconsole.log(String.fromCharCode(97)); //ascii转化为字符
(7)字符串的遍历
for 遍历:
var n = "abcdefgh";for(var i=0;i< n.length;i++){console.log(n[i]);console.log(n.charAt(i));console.log(n.charCodeAt(i));}
for in 遍历:
var n = "abcdefgh";for(var key in n){console.log(n[key]);console.log(n.charAt(key));console.log(n.charCodeAt(key));}
charAt ()
根据索引,在字符串里面取字符
charCodeAt ()
根据索引,获取字符,转化为ascii
(8)将字符串转化为字符串数组
split()
把字符串分割为字符串数组。参数是以什么符号隔开
var n1 = "abcdefgh";console.log(n1.split(""));
(9)截取字符串
slice()
参数是索引,取小不取大,对原字符串没有影响
substring()
参数是索引,取小不取大,对原字符串没有影响
substr()
参数分别是起始索引和截取的长度,对原字符串没有影响
var k1 = "abcdefgh";console.log(k1.slice(0, 3)); //abcconsole.log(k1.substring(0, 4)); //abcdconsole.log(k1.substr(1, 2)); //bc
(10)字符串去空
trim()
去除字符串两边的空白,全部去除需要使用正则表达式
var user = " a b c d e f ";console.log(user.trim()); //a b c d e f//使用正则表达式全部去除console.log(user.replace(/\s/g, "")); //abcdef
(11)字符串大小写转化
toUpperCase()
toLocaleUpperCase()
toLowerCase()
toLocaleLowerCase()
console.log(s2.toUpperCase());console.log(s2.toLocaleUpperCase());console.log(s2.toLowerCase());console.log(s2.toLocaleLowerCase());
(12)获取字符串中的字符
使用位置(索引)可以直接获取字符串中的任何字符,
如:console.log(s2[0]);
也可以使用
charAt()
,参数是要获取字符的索引
如:console.log(s2.charAt(0));
(13)复制字符串
repeat()
复制字符串指定次数,并将它们连接在一起返回。参数是复制的次数
var t1="abc";console.log(t1.repeat(3)); //abcabcabc
(14)查看字符串是否以指定的子字符串开头
startsWith()
查看字符串是否以指定的子字符串开头,返回值是true false
var t2="abc";console.log(t2.startsWith("a"));
二、JavaScript Array 对象
1、Array 对象
Array 对象用于在变量中存储多个值,值的类型不限。
如何创建一个新的数组?
常规写法:var arr1=[];
标准写法:使用关键字new
实例化一个数组对象:var arr=new Array();
如何给数组赋值?
(1)在括号里面直接写值
常规写法:var arr1=[1,2,3];
标准写法:var arr=new Array(1,2,3,4);
注意:
在对象的括号里面直接写值,要注意参数的个数:
写一个值,指数组的长度
写多个值,才是数组里面的值
var a1=new Array(1);console.log(a1); //[empty]var a2=new Array(1,2,3);console.log(a2); //[1,2,3]
(2)按照 key:value 给数组的某个索引位置赋值
var a3=[1,2,3,4];a3[0]="a";console.log(a3); //["a",2,3,4]
数组的取值:
根据索引位置取值:console.log(a3[0]); //a
数组的属性 length:
返回数组的长度 :console.log(a3.length); //4
2、Array 对象的方法
Array 对象的方法对照表
常用方法:
(1)将数组转化为字符串
join()
将数组的每一位进行拼接,参数是符号,返回一个新的字符串
var a4=[1,2,3,4];console.log(a4.join("")); //1234
(2)数组的翻转
reverse()
反转数组的元素顺序,翻转后对原数组有影响
var a4=[1,2,3,4];console.log(a4.reverse()); //[4,3,2,1]
(3)数组的截取
slice()
截取数组,并返回一个新数组。参数是索引,取小不取大,对原数组没有影响
splice()
截取数组,并返回一个新数组。参数是起始索引和截取的长度,对原数组有影响
var a4=[1,2,3,4];console.log(a4.slice(0, 3),a4); //[1,2,3] [1,2,3,4]console.log(a4.splice(1, 2),a4); //[2,3] [1,4]
(4)数组的拼接
concat()
连接两个或更多的数组,并返回新的数组。参数是要拼接的数组
var a5 = [1, 2, 3];var a6 = [4, 5, 6];console.log(a5.concat(a6).concat([7,8,9])); //[1,2,3,4,5,6,7,8,9]
(5)从数组的指定位置拷贝元素到数组的另一个指定位置中
copyWhithin()
三个参数分别为:target,放的位置,start,起始复制位置 end,终止复制位置
对原数组有影响
数组的长度不变
var a7 = ["a", "b", "c", "d"];console.log(a7.copyWithin(1, 0, 3)); //["a", "a", "b", "c"]console.log(a7.copyWithin(3, 0, 3)); //["a", "a", "b", "a"]
(6)检测数值元素的每个元素是否都符合条件
every()
检测数值元素的每个元素是否都满足条件,满足返回true,否则false;
参数是一个函数,函数的形参分别为当前值、当前值的索引、原数组
var array = [2, 6, 3];console.log(array.every(function (currentValue, value, array) {return currentValue % 2 == 0;})); //false
(7)使用一个固定值来填充数组
fill()
使用一个固定值来填充数组,对原数组有影响;
参数分别为:要填充的值、start、end;
如果只写一个参数,默认全部填充
var array = [2, 6, 3];console.log(array.fill("a", 1, 3)); //[2, "a", "a"]
(8)数组的过滤
filter()
检测数值元素,并返回符合条件所有元素的数组。对原数组没有影响。
两个参数,分别为函数、传递给回调函数的this指针,第二个参数不写,this指针为undefined。
var array = [2, 6, 3];var arr2 = [1, 2, 3, 4, 5, 6];console.log(arr2.filter(function (cvalue, index) {console.log(this); //[2, "a", "a"]return cvalue % 2 == 0; //[2, 4, 6]}, array));
(9)返回符合条件的第一个元素值
find()
返回符合传入测试(函数)条件的数组元素。
检测每一个元素值,遇到满足条件的一个值,直接返回,不会再执行。
var t1 = [1, 2, 3, 4, 5];console.log(t1.find(function (currentValue, value) {return currentValue % 2 == 0; //2}));
(10)返回符合条件的第一个元素的索引
findIndex()
返回符合传入测试(函数)条件的数组元素索引。
检测每一个元素值,遇到满足条件的一个值,直接返回,不会再执行。
var t1 = [1, 2, 3, 4, 5];console.log(t1.findIndex(function (currentValue, index) {return currentValue % 2 == 0; //1}));
(11)数组的遍历
for
遍历
for in
遍历
forEach()
遍历
下边是 forEach 遍历数组:
var t1 = [1, 2, 3, 4, 5];t1.forEach(function (currentValue, value, arr) {console.log(currentValue);})
(12)检测数组里面是否包含某个值
includes()
检测数组里面是否包含某个值,包含返回 true,否则 false
参数是要检测的值
var t1 = [1, 2, 3, 4, 5];console.log(t1.includes(5)); //true
(13)查找数组里面的某个值,返回索引
和字符串的用法一致。
如果存在,返回该值在数组中首次出现的位置,否则返回-1。
indexOf()
从左-右查找,两个参数,分别为要查找的字符,起始查找的索引位置。
lastIndexOf()
从右-左查找,两个参数,分别为要查找的字符,起始查找的索引位置。索引不变,只是查找顺序不同。
var t2 = [1, 2, 3, 4, 5, 3];console.log(t2.indexOf(3)); //2console.log(t2.indexOf(3, 3)); //5console.log(t2.lastIndexOf(4)); //3console.log(t2.lastIndexOf(4, 2)); //-1
(14)检测当前的对象是否是数组
Array.isArray()
判断当前对象是否是数组,参数是当前对象。
var t2 = [1, 2, 3, 4, 5, 3];console.log(Array.isArray(t2)); //true
(15)数组的映射
map()
通过指定函数处理数组的每个元素,并返回处理后的数组。
var t2 = [1, 2, 3, 4, 5, 3];console.log(t2.map(function (currentValue, value, array) {return currentValue*2; //[2, 4, 6, 8, 10, 6]}));
(16)累计器
reduce()
将数组元素计算为一个值(从左到右)
reduceRight()
将数组元素计算为一个值(从右到左)
var t3 = [1, 2, 3, 4, 5, 6, 7];console.log(t3.reduce(function (total, current, value) {return total + current;}));console.log(t3.reduceRight(function (total, current, value) {return total * current;}));
函数的参数 total 是前边累计的计算结果,开始是数组的第一位;
current 是当前值。
(17)删除数组里面的元素,返回删除的值
pop()
删除数组的最后一个元素并返回删除的元素。对原数组有影响
shift()
删除数组的第一个元素并返回删除的元素。对原数组有影响
var t3 = [1, 2, 3, 4, 5, 6, 7];console.log(t3.pop()); //7console.log(t3.shift()); //1
(18)给数组里面添加值
push()
向数组的末尾添加一个或更多元素。
unshift()
向数组的开头添加一个或更多元素。
var m=[1,2,3];m.push(4,4);m.unshift(5,5);console.log(m); //[5, 5, 1, 2, 3, 4, 4]
(19)将数组转化为字符串
toString()
将数组转化为字符串。
var m1=[1,2,3];console.log(m1.toString());
(20)对数组的元素进行排序
sort()
对数组的元素进行排序,默认从小到大
var arr3=[1,4,2,5,3];console.log(arr3.sort()); //[1,2,3,4,5]
sort() 方法也可以调整排序方式
底层源码是根据值差进行排序的,n2-n1是从大到小,n1-n2 是从小到大
console.log(arr3.sort(function (n1, n2) {return n2-n1; //[5, 4, 3, 2, 1]//return n1-n2;}));
(21)检测数组元素中是否有元素符合指定条件
some()
检测数组元素中是否有元素符合指定条件,返回值是true、false
var arr4 = [1, 2, 3, 4];console.log(arr4.some(function (currentValue, value) {return currentValue % 2 == 0; //true}));
三、JavaScript Math 对象
Math 对象用于执行数学任务。
Math 对象不是对象的类,因此没有构造函数 Math()。直接使用Math 对象的属性和方法。
点此查看 ——Math 对象的属性和方法对照表
Math 对象的常用属性
Math.E
返回算术常量 e,即自然对数的底数(约等于2.718)
Math.PI
返回圆周率(约等于3.14159)
Math 对象的常用方法
Math.abs(x)
返回 x 的绝对值。
Math.sin(x)
返回数的正弦
Math.cos(x)
返回数的余弦
Math.tan(x)
返回角的正切
Math.asin(x)
返回 x 的反正弦值
Math.acos(x)
返回 x 的反余弦值
Math.atan(x)
以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值
注意:
正弦、反正弦、余弦、反余弦、正切、反正切的参数不能直接写角度,要写成弧度。
弧度= 角度 * Math.PI / 180
Math.floor(x)
向下取整
Math.ceil(x)
向上取整
Math.round(x)
四舍五入
Math.max(x,y,z,...,n)
返回 x,y,z,…,n 中的最大值
Math.min(x,y,z,...,n)
返回 x,y,z,…,n 中的最小值
Math.random()
返回0-1之间的随机数,取小不取大
应用:
//取0-5之间的随机整取,取小不取大
console.log(Math.floor(Math.random() * 5));
Math.pow(x,y)
返回 x 的 y 次幂
Math.sqrt(x)
返回x的平方根
四、JavaScript Date 对象
1、概念
Date 对象用于处理日期与时间。
new Date()
实例化一个Date 对象:
var time=new Date();console.log(time); //Wed Jun 10 2020 13:44:43 GMT+0800 (中国标准时间)
2、Date 对象的方法
set 方法:
var newtime = new Date();newtime.setFullYear(2021, 2, 12); //设置的月份大一个月newtime.setYear(2021);newtime.setMonth(2); //设置的月份大一个月newtime.setDate(12);newtime.setHours(14);newtime.setMinutes(30);newtime.setSeconds(00);newtime.setMilliseconds(999);
设置时间除了使用set 设置,也可以直接写在Date 对象的参数中
//注意月份的问题var time1=new Date(2020,6,1,23,59,59); console.log(time1); //Wed Jul 01 2020 23:59:59 GMT+0800 (中国标准时间) //写到字符串里边 不需要考虑月份的问题var time2=new Date("2020-7-1 23:59:59"); console.log(time2); //Wed Jul 01 2020 23:59:59 GMT+0800 (中国标准时间)
to 方法:
转化时间格式
var timenow=new Date();console.log(timenow.toDateString()); //Wed Jun 10 2020console.log(timenow.toISOString()); //2020-06-10T06:14:30.109Z 获取的是ISO时间,和北京时间-8时差console.log(timenow.toLocaleDateString()); //2020/6/10console.log(timenow.toLocaleString()); //2020/6/10 下午2:12:45console.log(timenow.toLocaleTimeString()); //下午2:13:14console.log(timenow.toTimeString()); //14:13:48 GMT+0800 (中国标准时间)console.log(timenow.toUTCString()); //Wed, 10 Jun 2020 06:14:30 GMT -8时差
get 方法:
var nowtime=new Date();console.log(nowtime.getFullYear()); //2020console.log(nowtime.getYear()); //120 从1900年开始计算console.log(nowtime.getMonth()); //5 实际月份要+1console.log(nowtime.getDay()); //3 周几console.log(nowtime.getDate()); //10 日期console.log(nowtime.getHours());console.log(nowtime.getMinutes());console.log(nowtime.getSeconds());console.log(nowtime.getMilliseconds());console.log(nowtime.getTime()); //1591770245361 获取的是当前时间到1970年1月1日00:00的总毫秒数
五、改变对象的方法里边的 this 指向
可以使用
.call()
或者.apply()
来改变函数的this指向
比如:
//改变shift()方法的this指向var arr=new Array(1,2,3);var a=[23];console.log(arr.shift.call(a)); //23
JavaScript 中的内置对象——0606、0607笔记整理相关推荐
- javascript中的内置对象和数据结构
文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...
- JavaScript中的内置对象
一.什么是内置对象 js本身已经写好的对象,我们可以直接使用不需要定义它. 常见的内置对象有 Data.Array,Math.RegExp.Error.String.... Array高级API so ...
- JavaScript(九):JavaScript中的内置对象
一.对象的概念 对象是一种特殊的数据类型(object). 拥有一系列的属性和方法. 分为内置对象和自定义对象. 二.String对象 String对象用来支持对于字符串的处理. 1.属性 lengt ...
- JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...
- Javascript中的内置对象:RegExp对象
一.定义RegExp RegExp对象用于存储检索模式.创建RegExp对象的检索模式如下: var myPattern=new RegExp(pattern,attributes); (1) 参数p ...
- Web前端技术分享:Javascript中的内置对象数组讲解
有关js中的数组,很多小伙伴可能都会有疑问,尤其是面试的过程中有大量有关于原生数组的题,以及数组中的方法,及方法的返回值.是否会修改原数组等等.想要彻底解决这些问题,就要系统的解析数组的方法,那么今天 ...
- JavaScript的常用内置对象
JavaScript的常用内置对象 Math对象 Math对象的使用 练习 日期对象 日期对象的使用 日期对象的常用get方法 日期对象的常用set方法 练习 数组对象 数组类型检测 添加或删除数组元 ...
- 简单聊聊js中的内置对象
文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...
- 12JavaScript中的内置对象
技术交流QQ群:1027579432,欢迎你的加入! 1.内置对象 JavaScript中的对象分为3种:自定义对象.内置对象.浏览器对象: 前两种对象是JS中的基础内容,属于ECMAScript,第 ...
最新文章
- MySQL的共享锁和独占锁
- python【蓝桥杯vip练习题库】BASIC-26报时助手
- 考研英语一2011年翻译真题详解
- 100以内 蝗 靓耸 6的c语言怎,C语言学习C6.ppt
- requirejs加载顺序_教你5分钟学会用requirejs(必看篇)
- 有符号数与无符号数间的转换
- 关闭rhel 6.5的selinux
- MVC的Ajax传值问题
- springboot学习总结
- Axure插入ArcGIS地图或天地图
- 【C++】模拟String,柔性数组,运算符重载,写实拷贝
- cad隐藏图层命令快捷键_Auto CAD如何快速隐藏图层,快捷键是什么?
- Mysql语句(二)
- 如何获取微信好友的地理位置信息
- VMware虚拟机+Kali linux 2021.2 下载和安装以及初始操作
- 软件测试之α测试和Beta测试
- MBA-day20 不定方程问题-练习题
- Material Theme on sublime text 3 一个用起来很好的Sublime主题
- Spring——Spring简介
- python研究股价_用python处理月度股价数据
热门文章
- 【Docker系列】 Docker 多架构支持 和 Docker Buildx 构建多架构
- Windows 修vscode的插件安装和缓存目录 释放C盘空间
- PIC16F877A与Proteus仿真-内置EEPROM
- “挑战杯”中国大学生创业计划竞赛创业企划书100篇(一)-银浆、柔性透明导电膜、抗菌材料用纳米银线项目(材料类)...
- 高仿APP——元贝驾考(三)滑动关闭Activity
- 运筹学那些事,专科学生学习运筹学之盈亏分析模型,No.9
- 什么是定时短信?定时短信能发哪些内容?
- 【数据结构和算法设计】算法篇(11) 概率算法和近似算法
- 第2课pygame使用精灵
- 服装收银软件的产品优势是什么?