js[引用类型之内置对象][整理]

js全局对象(全局函数和全局属性):14种全局函数,5种全局属性

全局函数最常用的有:6种
1.parseFloat() 解析一个字符串或数字并返回一个浮点数
2.parseInt() 解析一个字符串并返回一个整数
3.isNaN() 是否为非数字
4.isFinite() 是否是无穷大的数
5.Number() 把对象的值转换为数字
6.String() 把对象的值转换为字符串

全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象
js种的全局对象分为全局函数和全局属性两种,顾名思义其函数和属性不属于任何对象也没有原型原型链之说,它是js内建的函数和属性,在任何运行js的地方都可以直接调用。
在这里插入图片描述
全局函数直接使用即可,例如:

console.log("parseInt()", parseInt(123.123));

由于全局属性是不属于任何对象的,因此无法通过xx.xx的形式来调用,这是属于js内部的属性。
在这里插入图片描述

js常用的内建对象:9种

对象创建的通用规律: 在执行任意类似x = new X()时,都会把X的prototype赋给x的__proto__,也就是说,x.__proto__和X.prototype此时会指向同一个对象。

1.算数对象 Math :8种静态属性、20种静态方法、es6新增17种静态方法

js种Math对象用于执行数学任务,如:各种数学算法。
由于Math没有构造函数,因此使用的时候只需直接Math.xx即可

- Math对象最常用的静态方法有:
1.Math.ceil(x) 对数进行上舍入取整(向上取整)
2.Math.floor(x) 对数进行下舍入取整(向下取整)
3.Math.random() 返回 0 ~ 1 之间的随机数
4.Math.round(x) 把数四舍五入为最接近的整数(四舍五入取整)

- ES6新增的有:17种

  1. Math.trunc() — 方法用于去除一个数的小数部分,返回整数部分。
  2. Math.sign() — 方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值
  3. Math.cbrt() — 方法用于计算一个数的立方根
  4. Math.clz32() — 方法将参数转为 32 位无符号整数的形式,然后返回这个 32 位值里面有多少个前导 0
  5. Math.imul() — 方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。
  6. Math.fround() — 方法返回一个数的32位单精度浮点数形式。
  7. Math.hypot() — 方法返回所有参数的平方和的平方根。
  8. Math.expm1(x) — 方法返回 ex - 1,即Math.exp(x) - 1。
  9. Math.log1p(x) — 方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。
  10. Math.log10(x) — 返回以 10 为底的x的对数。如果x小于 0,则返回 NaN。
  11. Math.log2(x) — 返回以 2 为底的x的对数。如果x小于 0,则返回 NaN。
  12. Math.sinh(x) — 返回x的双曲正弦(hyperbolic sine)
  13. Math.cosh(x) — 返回x的双曲余弦(hyperbolic cosine)
  14. Math.tanh(x) — 返回x的双曲正切(hyperbolic tangent)
  15. Math.asinh(x) — 返回x的反双曲正弦(inverse hyperbolic sine)
  16. Math.acosh(x) — 返回x的反双曲余弦(inverse hyperbolic cosine)
  17. Math.atanh(x) — 返回x的反双曲正切(inverse hyperbolic tangent)

- ES5拥有的方法与属性:8种属性,20种方法
在这里插入图片描述

console.log(Math);

打印结果:
在这里插入图片描述

2.数字对象 Number:7种静态属性,6种方法,es6新增6种静态方法、3种静态属性

- Number对象最常用的方法有:
1.test.toString() 将数字类型转换为字符串类型
2.test.toFixed(x) 取指定位数小数的值

-ES6新增的静态方法有:6种

  1. Number.isFinite() — 用来检查一个数值是否为有限的(finite),即不是Infinity。如果参数类型不是数值,Number.isFinite一律返回false。
  2. Number.isNaN() — 用来检查一个值是否为NaN,如果参数类型不是NaN,Number.isNaN一律返回false
  3. Number.parseInt() — 和全局的parseInt()一样
  4. Number.parseFloat() — 和全局的parseFloat()一样
  5. Number.isInteger() — 用来判断一个数值是否为整数
  6. Number.isSafeInteger() — 用来判断一个整数是否落在上下限范围之内。

-ES6新增的静态属性有:3种

  1. Number.EPSILON — 根据规格,它表示 1 与大于 1 的最小浮点数之间的差。
  2. Number.MAX_SAFE_INTEGER — 用来表示整数的上限(9007199254740991 == 2的53次方)
  3. Number.MIN_SAFE_INTEGER — 用来表示整数的下限(-9007199254740991)

-ES6新增指数运算符 (**)


-ES5的静态属性和方法:7种静态属性,6种方法
在这里插入图片描述

console.log("Number.constructor", Number.constructor);
console.log("Number.MAX_VALUE", Number.MAX_VALUE);
console.log("Number.MIN_VALUE", Number.MIN_VALUE);
console.log("Number.NaN", Number.NaN);
console.log("Number.NEGATIVE_INFINITY", Number.NEGATIVE_INFINITY);
console.log("Number.POSITIVE_INFINITY", Number.POSITIVE_INFINITY);
console.log("Number.prototype", Number.prototype);

打印结果:
在这里插入图片描述
通过new Number形式创建出来的实例可以调用的方法:6种
在这里插入图片描述

let a = 1000.123;
console.log("Number方法", a.toString());
console.log("Number方法", a.toLocaleString());
console.log("Number方法", a.toFixed(2));
console.log("Number方法", a.toExponential());
console.log("Number方法", a.toPrecision(2));
console.log("Number方法", a.valueOf());

打印结果:
在这里插入图片描述

3.正则对象 RegExp:5种实例属性、3种方法,es6新增3种实例属性、1种方法

- 正则对象RegExp最常用的实例属性和方法有:
1.test.exec() 返回一个数组,其中包含寻找的字符以及第一次找到的位置
2.test.test(x) 返回一个布尔值,找到为true否则为false

字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()

正则表达式创建方式:2种
let reg1 = /xx/
let reg2 = new RegExp(pattern, attributes);
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 “g”、“i” 和 “m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数

- ES6新增 u 和 y 和 s 三种修饰符

- ES6新增实例属性:3种

  1. test.unicode — 表示是否设置了u修饰符
  2. test.sticky — 表示是否设置了y修饰符。
  3. test.flags — 返回正则表达式的修饰符

- ES6新增方法:1种

  1. test.matchAll() — 一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组。
const string = 'test1test2test3';
const regex = /t(e)(st(\d?))/g;

for (const match of string.matchAll(regex)) {
  console.log(match);
}
// ["test1", "e", "st1", "1", index: 0, input: "test1test2test3"]
// ["test2", "e", "st2", "2", index: 5, input: "test1test2test3"]
// ["test3", "e", "st3", "3", index: 10, input: "test1test2test3"]

上面代码中,由于string.matchAll(regex)返回的是遍历器,所以可以用for…of循环取出。相对于返回数组,返回遍历器的好处在于,如果匹配结果是一个很大的数组,那么遍历器比较节省资源。

遍历器转为数组是非常简单的,使用…运算符和Array.from()方法就可以了。

// 转为数组的方法一
[...string.matchAll(regex)]

// 转为数组的方法二
Array.from(string.matchAll(regex))

- ES5实例属性和方法:5种实例属性、3种方法

正则对象实例属性:
在这里插入图片描述

let a = /[0-9]/;
console.log('a.global',a.global);
console.log('a.ignoreCase',a.ignoreCase);
console.log('a.lastIndex',a.lastIndex);
console.log('a.multiline',a.multiline);
console.log('a.source',a.source);

打印结果:
在这里插入图片描述
正则对象方法:
在这里插入图片描述

 let a = /[0-9]/;
 console.log("a.exec", a.exec('qwe123qwewq'));
 console.log("a.test", a.test('qwe123qwewq'));

打印结果:
在这里插入图片描述

4.日期对象 Date:2种属性、48种方法

- 日期对象 Date最常用的方法有:9种
let date = new Date();
1.date.getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
2.date.getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
3.date.getMonth() 从 Date 对象返回月份 (0 ~ 11)。
4.date.getFullYear() 从 Date 对象以四位数字返回年份。
5.date.getHours() 返回 Date 对象的小时 (0 ~ 23)。
6.date.getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
7.date.getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
8.date.getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
9.date.getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
注:new Date(‘2020-01-01 12:00:00’) 返回的则是2020-01-01 12:00:00点的日期,而仅仅使用new Date()则返回当前的日期

2种实例属性
在这里插入图片描述
48种方法
在这里插入图片描述

5.布尔对象 Boolean:2种属性,3种方法

Boolean类型只有两个值,true和false
转换
1、Boolean() 判定函数,直接将需要的内容放置其中即可返回true和false;
2、!!两次取反操作
核心:js中有6个值在做bool运算(如if判断)时将判定为false,这六个值分别为null、undefined、0、’’、NaN、false ;其余情况都将表示为true。
在这里插入图片描述

6.字符串对象 String:3种属性,34种方法

- 字符串对象 String最常用的方法有:
let str = ‘abc’;
1.str.length 字符串的长度
2.str.charAt(num) 返回在指定位置的字符,参数为下标序号
3.str.indexOf(str) 检索字符串,返回指定字符串的下标序号,参数为字符串。
4.str.localeCompare(str) 用本地特定的顺序来比较两个字符串。排序
5.str.slice(start,end) 提取字符串的片断,并在新的字符串中返回被提取的部分。参数为下标序号,开始和结束
6.str.split(param) 把字符串分割为字符串数组。param为分割标识
7.str.substring() 用于提取字符串中介于两个指定下标之间的字符
8.str.includes():返回布尔值,表示是否找到了参数字符串。
9.str.trim() 消除空格

字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()

- ES6静态方法:2种
1.String.fromCodePoint() 可以识别大于0xFFFF的字符,弥补了String.fromCharCode()方法的不足。
2.String.raw() 该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。

- ES6方法:11种
1.codePointAt():能够正确处理 4 个字节储存的字符,返回一个字符的码点。
2.normalize():用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
3.includes():返回布尔值,表示是否找到了参数字符串。
4.startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
5.endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
6.repeat():方法返回一个新字符串,表示将原字符串重复n次
7.补全长度的功能,padStart()用于头部补全,padEnd()用于尾部补全,一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串
8.trimStart()和trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格
9.matchAll()方法返回一个正则表达式在当前字符串的所有匹配

- ES5实例属性和方法:3种实例属性、34种方法
在这里插入图片描述
在这里插入图片描述

7.函数对象 Function

函数对象的创建方式
1.function a(){};
2.var a=function(){};
3.var a=new Function();

第一种方式创建的是有名函数,
第二种则是创建了一个无名函数,只是让一个变量指向了这个无名函数。
两者在使用上仅有一点区别,就是:对于有名函数,它可以先调用后定义;而对于无名函数,它必须是先定义后调用,原因在于函数上下文的构建顺序中,函数将会提升,而变量只会在上下文构建完毕后在赋值。
第三种则是通过Function对象来直接进行函数的创建,而这三种方式的本质都是通过new Function这种形式来创建的。

示例:

function a(){
  console.log('test');
}
console.log(a);
console.log(a.prototype);

示例结果:
在这里插入图片描述
构造函数和普通函数区别
1、实际上并不存在创建构造函数的特殊语法,其与普通函数唯一的区别在于调用方法。对于任意函数,使用new操作符调用,那么它就是构造函数;不使用new操作符调用,那么它就是普通函数。

2、按照惯例,我们约定构造函数名以大写字母开头,普通函数以小写字母开头,这样有利于显性区分二者。例如上面的new Array(),new Object()。

3、使用new操作符调用构造函数时,会经历(1)创建一个新对象;(2)将构造函数作用域赋给新对象(使this指向该新对象);(3)执行构造函数代码;(4)返回新对象;

静态方法是直接定义在对象上的方法,只能通过直接对象的形式调用,实例无法调用。

function Cat(){
}
// 直接定义在构造函数本身上的方法
Cat.eat = function(){console.log('吃')}
Cat.eat() // 吃

实例方法是定义在构造方法之中通过this指向的方法,

function Cat(){
  this.move = function() {
    console.log('移动')
  }
}
let shortCat = new Cat()
shortCat().move(); // 移动

原型方法是定义在prototype上的方法

function Cat(){
}
Cat.prototype.sleep = function(){console.log('睡觉')}
let shortCat = new Cat()
shortCat().sleep(); // 睡觉

原型方法和实例方法都可以通过 new 出来的实例直接调用,而且其内容都是可以传递继承给下一代的。

8.数组对象 Array:1种静态方法、1种实例属性、31种实例方法

https://blog.csdn.net/lxy869718069/article/details/102803718

9.普通对象 Object:20种静态方法、6种实例方法

https://blog.csdn.net/lxy869718069/article/details/106832112

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值