一、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笔记整理相关推荐

  1. javascript中的内置对象和数据结构

    文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...

  2. JavaScript中的内置对象

    一.什么是内置对象 js本身已经写好的对象,我们可以直接使用不需要定义它. 常见的内置对象有 Data.Array,Math.RegExp.Error.String.... Array高级API so ...

  3. JavaScript(九):JavaScript中的内置对象

    一.对象的概念 对象是一种特殊的数据类型(object). 拥有一系列的属性和方法. 分为内置对象和自定义对象. 二.String对象 String对象用来支持对于字符串的处理. 1.属性 lengt ...

  4. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...

    学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...

  5. Javascript中的内置对象:RegExp对象

    一.定义RegExp RegExp对象用于存储检索模式.创建RegExp对象的检索模式如下: var myPattern=new RegExp(pattern,attributes); (1) 参数p ...

  6. Web前端技术分享:Javascript中的内置对象数组讲解

    有关js中的数组,很多小伙伴可能都会有疑问,尤其是面试的过程中有大量有关于原生数组的题,以及数组中的方法,及方法的返回值.是否会修改原数组等等.想要彻底解决这些问题,就要系统的解析数组的方法,那么今天 ...

  7. JavaScript的常用内置对象

    JavaScript的常用内置对象 Math对象 Math对象的使用 练习 日期对象 日期对象的使用 日期对象的常用get方法 日期对象的常用set方法 练习 数组对象 数组类型检测 添加或删除数组元 ...

  8. 简单聊聊js中的内置对象

    文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...

  9. 12JavaScript中的内置对象

    技术交流QQ群:1027579432,欢迎你的加入! 1.内置对象 JavaScript中的对象分为3种:自定义对象.内置对象.浏览器对象: 前两种对象是JS中的基础内容,属于ECMAScript,第 ...

最新文章

  1. MySQL的共享锁和独占锁
  2. python【蓝桥杯vip练习题库】BASIC-26报时助手
  3. 考研英语一2011年翻译真题详解
  4. 100以内 蝗 靓耸 6的c语言怎,C语言学习C6.ppt
  5. requirejs加载顺序_教你5分钟学会用requirejs(必看篇)
  6. 有符号数与无符号数间的转换
  7. 关闭rhel 6.5的selinux
  8. MVC的Ajax传值问题
  9. springboot学习总结
  10. Axure插入ArcGIS地图或天地图
  11. 【C++】模拟String,柔性数组,运算符重载,写实拷贝
  12. cad隐藏图层命令快捷键_Auto CAD如何快速隐藏图层,快捷键是什么?
  13. Mysql语句(二)
  14. 如何获取微信好友的地理位置信息
  15. VMware虚拟机+Kali linux 2021.2 下载和安装以及初始操作
  16. 软件测试之α测试和Beta测试
  17. MBA-day20 不定方程问题-练习题
  18. Material Theme on sublime text 3 一个用起来很好的Sublime主题
  19. Spring——Spring简介
  20. python研究股价_用python处理月度股价数据

热门文章

  1. 【Docker系列】 Docker 多架构支持 和 Docker Buildx 构建多架构
  2. Windows 修vscode的插件安装和缓存目录 释放C盘空间
  3. PIC16F877A与Proteus仿真-内置EEPROM
  4. “挑战杯”中国大学生创业计划竞赛创业企划书100篇(一)-银浆、柔性透明导电膜、抗菌材料用纳米银线项目(材料类)...
  5. 高仿APP——元贝驾考(三)滑动关闭Activity
  6. 运筹学那些事,专科学生学习运筹学之盈亏分析模型,No.9
  7. 什么是定时短信?定时短信能发哪些内容?
  8. 【数据结构和算法设计】算法篇(11) 概率算法和近似算法
  9. 第2课pygame使用精灵
  10. 服装收银软件的产品优势是什么?