资讯专栏INFORMATION COLUMN

es6基础0x017:新的 Math、Number、String、Array、Object 的 Ap

why_rookie / 2397人阅读

摘要:更新了几个方法,但是一般情况下没有太大的用处反双曲线函数,返回一个数字的反双曲余弦值算数平方根函数,返回所有参数的算术平方根类的位整数乘法运算函数该常量表示与可表示的大于的最小的浮点数之间的差值,那有什么用呢可以用来解决浮

0x001 Math

Math更新了几个方法,但是一般情况下没有太大的用处

反双曲线函数,返回一个数字的反双曲余弦值

Math.acosh(-1);  // NaN
Math.acosh(0);   // NaN
Math.acosh(0.5); // NaN
Math.acosh(1);   // 0
Math.acosh(2);   // 1.3169578969248166

算数平方根函数,返回所有参数的算术平方根

Math.hypot(3, 4)        // 5
Math.hypot(3, 4, 5)     // 7.0710678118654755
Math.hypot()            // 0
Math.hypot(NaN)         // NaN
Math.hypot(3, 4, "foo") // NaN, +"foo" => NaN
Math.hypot(3, 4, "5")   // 7.0710678118654755, +"5" => 5
Math.hypot(-3)          // 3, the same as Math.abs(-3)

类C的32位整数乘法运算函数

Math.imul(2, 4);          // 8
Math.imul(-1, 8);         // -8
Math.imul(-2, -2);        // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10

0x002 Number

Number.EPSILON
该常量表示1Number可表示的大于1的最小的浮点数之间的差值,那有什么用呢?可以用来解决浮点数的比较问题

x = 0.2;
y = 0.3;
z = 0.1;
equal = (Math.abs(x - y + z) < Number.EPSILON); // true 

Number.isInteger
该函数接受一个参数,如果该参数是整数,则返回true,否则返回falseNaN+Infinity-Infinity不是整数

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger(-100000);   // true

Number.isInteger(0.1);       // false
Number.isInteger(Math.PI);   // false

Number.isInteger(Infinity);  // false
Number.isInteger(-Infinity); // false
Number.isInteger("10");      // false
Number.isInteger(true);      // false
Number.isInteger(false);     // false
Number.isInteger([1]);       // false

0x003 String

String.protorype.includes(searchString[, position])
判断字符串是否包含子串,该函数有两个参数,返回值为boolean

searchString:要搜索的子串

position:可选的起始索引位置,默认就是0

`123456`.includes(1) // true
`123456`.includes(1, 2) // false
`123456`.includes(7) // true

String.protorype.repeat(count)
将一个字符串重复多次

count:重复的次数

`12`.repeat(10) // "12121212121212121212"
`12`.repeat(-10) // Uncaught RangeError: Invalid count value

0x004 Array

Array.from(arrayLike[, mapFn[, thisArg]])
该函数可以从一个伪数组对象或者可迭代对象中创建一个数组。

arrayLike:目标对象

mapFnarrayLike到数组的映射方式

thisArg:映射函数中的this

Array.from("123") //[1,2,3]
Array.from([1,2,3]) //[1,2,3]
Array.from(new Set([1,2,3])) //[1,2,3]
Array.from(new Map([[1,2],[3,4],[5,6]])) // [[1,2],[3,4],[5,6]]
Array.from("123",n=>n*2})// [2,4,6]

function func(){
    return Array.from(arguments)
}
func(1,2,3,4) // [1,2,3,4]

Array.of(element0[, element1[, ...[, elementN]]])
根据给的元素返回包含这些元素的数组

Array.of(1) // [1]
Array.of(1,2,3,4,5) // [1,2,3,4,5]

Array.fill(value[, start[, end]])
用指定元素填充数组

value:要填充的元素

start:开始填充的位置

end:借宿填充的位置

[1,2,3].fill(1,1)//[1,1,1]
[1,2,3].fill(1,2,1)//[1,1,1]

Array.findIndex(callback[, thisArg])
查找指定元素的索引

callback:指定命中的方式

thisArgcallback中的this

[1,2,3].find(n=>n===2) // 1
[1,2,3].find(n=>n===8) // -1

Array.entries()
获取数组迭代器

let entries=[1,2,3].entries()
for(let e of entries){
    console.log(e)
}
// (2)[0,1]
// (2)[1,2]
// (2)[2,3]

Array.keys()
获取数组的键迭代器

let keys=[1,2,3].keys()
for(let k of keys){
    console.log(k)
}
// 0
// 1
// 2

Array.values
获取数组的值迭代器

let values=[1,2,3].values()
for(let v of values){
    console.log(v)
}
// 1
// 2
// 3

0x005 Object

Object.assign(target, ...sources)
对象合并,将第二个开始的参数合并到第一个,并返回一个新的对象,不存在的属性将会添加,存在的属性将会覆盖。

target:目标对象

sources:源对象

Object.assign({}, {a:1},{a:2,b:2})// {a:2,b:2}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108562.html

相关文章

  • ES6特性概述 - ES6 - ECMAScript特性 - Javascript核心

    摘要:特性概述比较新特性更多。之后后分篇描述目前已经比较成熟的语法特性例如和。同上,但返回该元素的索引号。和对象的属性行为一致。不将参数强制转行为。判断是否为在范围内的正整数。不少层面的特性可以通过进行兼容性支持。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html 源...

    Ali_ 评论0 收藏0
  • 前端培训-初级阶段(13) - ECMAScript (内置对象、函数)

    摘要:前端培训初级阶段语法变量值类型运算符语句上节的基础内容知识,这节我们会用到。这意味着开发者不必明确实例化内置对象,它已被实例化了。不进行有效性检查。对象是自年月日起经过的毫秒数。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中...

    fobnn 评论0 收藏0
  • 基础】JavaScript类型判断

    摘要:基本类型类对象纯对象类数组其中部分参考了的函数实现。比如说所以如果此时对象不是由内置构造函数生成的对象,这个为。判断对于类数组对象,只要该对象中存在属性并且为非负整数且在有限范围之内即可判断为类数组对象。 本文主要讲解如何准确判断JavaScript中出现的各种类型和对象。(基本类型、Object类、Window对象、纯对象plainObject、类数组)其中部分参考了jQuery的函...

    YuboonaZhang 评论0 收藏0
  • 重温ES6核心概念和基本用法

    摘要:凡是部署了属性的数据结构,就称为部署了遍历器接口。调用这个接口,就会返回一个遍历器对象。 ES6在2015年6月就得以批准,至今已两年了。近一年多以来陆续看过很多ES6的资料,工作项目中也逐步的用上了很多ES6的特性(let,const,promise,Template strings,Class,箭头函数等等),不得不说,这些特性给开发带来了非常多的便利。但是做决定我的ES6知识其...

    philadelphia 评论0 收藏0
  • Js基础知识(一) - 变量

    摘要:内置函数和对象中内置了一些函数和对象,很多语言都会有内置的方法,直接可以调用开发。根据语法标准提供的内置函数包括和。注意基础语法提供的内置函数和方法只有这些,像那是浏览器提供给我们的。强制类型转换大家应该都知道。 js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源、书籍、课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量...

    leone 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<