1.ES6明确二进制、八进制和十六进制分别用Qb、0o、ex作为前缀;
consoLe. log( Number( 0b11"));
console.log( Number ( ' 0o11"));console.log( Number ( ' 0x11"));
2. ES6提供了Number.isFinitel()、Number.isNaN()判断无穷大和 NaN;
//非数值为false,数值为true
console.log( Number.isFinite(10e));//NaN为true,其余为false
console.log( Number.isNaN( 100) );
3.ES6提供了Number.parseInt()、Number.parseF1oat()转换整型和浮点型;
console.log( Number.parseInt( "55.55a ' ));
console.log( Number.parseFloat( "55.555b" ));
4.ES6提供了Number.isInteger(),来判断参数是否是一个整型;
console. log( Number .isInteger(10)) ;
5.ES6提供了一个常量,值特别小,用于判断是否得到正确结果;
console.log((0.1+0.2-0.3).toFixed(20));
console.log(Number.EPSILON);//判断是否是正确结果
console.log(Number.EPSILON.toFixed(20));//直接打印
console.log((0.1+0.2-0.3)<Number.EPSILON);//
6.ES6+新增了一个指数运算符**,并且可以进行赋值运算;
console.log(2 ** 3);//** 赋值运算
let num =2;
num **=5;
console.log(num);
或备注解工典腼
最此s
二.Math扩展
1. ES6对 Math对象新增了一些方法.trunc()、.sign()、cbrt()、c1z32():2. .imul()、.fround()、.hypot()、expm1()、.log1p()、log10()、log2():
最此s
二.Math扩展
1. ES6对 Math对象新增了一些方法.trunc()、.sign()、cbrt()、c1z32():2. .imul()、.fround()、.hypot()、expm1()、.log1p()、log10()、log2():
console.log(Math.trunc(5.55));//去掉小数部分
consoLe.log( Math .sign(-5));//判断是否为正、负、日还是 NaNconsole. log( Math . cbrt(2));//求出一个值的立方根
console. log( Math .cbrt(2));//求出一个值得立方根
console. log( Math .clz32(1));//求—个数的32位二进制
console.log( Math .imul(2,-4));//两个数整数形式相乘的结果带符号console.log(Math.fround(1.555));//求一个数单精度浮点形式
console.log( Math .fround(1.555));//求一个数单精度浮点形式
console.log(Math .hypot(3,4));//求出所有参数平方和的平方根console.log( Math . expm1( -1));1/返回Math.exp(x)-1
onsole.log( Math .expm1(1));//返回Math.exp(x)-1
onsole.log( Math .log10(1));//求10为底得x得对数
onsole.log( Math .log1p(1));//求1n(1+×) , Math.log(1+X)console.log( Math . log10(1));1/求10为底的×的对数
consoLe. log(Math .log2(3))//求2为底的×的对数
数组
1. ES6提供了(.)三个点将一个数组转换为逗号分割来进行处理;
2.既然三点运算符通过逗号分割,那么可以想象的应用场景就随意发挥;
1.ES6提供了Array.of()方法,它的主要目的是弥补Array()的不足;
1 ES5声明数组,当小于两位,显示长度
ES6声明数组,简化版
2. ES6提供了Array.from()方法,将类似数组的对象或遍历转换成真正的数组:
3. ES6提供了find()和findIndex()方法,用于查找数组中第一个匹配的值;
4.ES6提供了fi11(()方法,可以填充重写数组中的元素值;
5. ES6提供了copywithin方法,从数组内部复制值,然后粘贴指定位置:
对象简写
1.ES6可以让对象字面量中属性初始值实现简写,一定程度降低了代码量;
1. ES6提供了(.)三个点将一个数组转换为逗号分割来进行处理;
function add(x,y){
return x +y;
}
console.log(add(...[10,20]));三个点将一个数组转换为逗号分割
2.既然三点运算符通过逗号分割,那么可以想象的应用场景就随意发挥;
console.log(Math.max(...[10,20,30]));最大值
console.log([...[1,2], ...[3,4]]);合并数组
1.ES6提供了Array.of()方法,它的主要目的是弥补Array()的不足;
1 ES5声明数组,当小于两位,显示长度
let items=Array(1,2,3);
console.log(items);
ES6声明数组,简化版
let items =Array.of(3);
console.log(items);
let obj={
0(.key):'name',
1:'age',
2:'gender',
length:3
};
console.log(Array.from(obj));
ps对此严格 1.key必须是数值或字符串数字; 2.length设置长度,而且key在范围内
什么样的场景会产生这种对象? 1.DOM的Nodelist集合; 2.es6新增的Set和Map
let nl= document.querySelectorAll('p');
console.log(nl);
3. ES6提供了find()和findIndex()方法,用于查找数组中第一个匹配的值;
let items=[10,20,30,40,50];
console.log(items.find(abc=>abc>19));
console.log(items.findIndex(abc=>abc>19));参数是一个回调函数,可以用箭头函数,findIndex可以得到索引
4.ES6提供了fi11(()方法,可以填充重写数组中的元素值;
let items=[10,20,30,40,50];
console.log(items.fill('a',2,3))索引3开始,索引4开始
5. ES6提供了copywithin方法,从数组内部复制值,然后粘贴指定位置:
let items=[10,20,30,40,50];
console.log(items.copyWithin(2,0));从索引0开始复制 然后把值从索引20开始粘贴 参数30设置结束粘贴索引值
对象简写
1.ES6可以让对象字面量中属性初始值实现简写,一定程度降低了代码量;
ess
function fn(name,age){
return{
name,
age
}
}
console.log(fn('Mr.lee','100'));
es6
function fn(name,age){
return{
name,age
}
}
console.log(fn('Mr.lee','100'));
2. ES6还提供了对象字面量中方法的简写方式,也降低了一定的代码量;
ess
let obj={
fn:function(){
return 'fn'
}
};
console.log(obj.fn());
es6
let obj={
fn(){
return 'fn'
}
};
console.log(obj.fn());
表达式
1.ES6允许对象字面量中,使用表达式进行属性名称的拼装操作;
let obj={
['user'+'Name']:'Mr.lee',
['user'+'Age']:100,
'user Gender':'男'
};
console.log(obj.ueserName);
console.log(obj['ueserName']);//拼装组合属性
console.log(obj['ueser Age']);//有空格的情况下
console.log(obj['user Gender']);//字符串属性
2.ES6提供了在对象字面量中使用可计算(动态)属性名称,具体如下;
通过变量myName动态更改obj属性
问题是当变量值更改了,属性名就失效了
let myName='naem';
let obj={
name:'Mr.lee'
};
console.log(obj['myName']);
使用[myName]可以计算属性名
实现了真正的动态计算
let myName='abc';
let obj={
[myName]:'Mr.lee'
};
console.log(obj);
3.ES6在对象字面量方法上,也可以使用拼装名称:
let obj={
['f'+'n'](){
return 'fn';
}
};
console.log(obj.fn());
新增方法
console.log(Object.is(100,'100'));false,必须相等
console.log(Object.is({},{}));false,指向不同
console.log(+0 === -0);true
console.log(Object.is(+0,-0));fales
console.log(NaN === NaN);fales
console.log(Object.is(NaN,NaN));true
2.ES6提供了0bject.assign()方法可以合并指定对象至目标对象内部;
let obj1={
name:'Mr.lee',
age:100
};
let obj2={
name:'Mr.Wang',
age:200
};
let obj3={
gender:'男'
};
console.log(Object.assign(obj1,obj2,obj3));传参,合并所有对象,返回给参数一的目标对象
console.log(obj1);//第一个对象得到合并后的结果
console.log(obj2);
ps:
1.如果属性有相同,后面的源对象内容会覆盖之前的属性值;
2.如果直接传非对象内容,会转换为对象:
3.如果传入的是undefined和l null会报错;
let obj={
fn(){
return 'fn';
}
};
let obj2={
fn(){
return 'fn2';
}
};
let f=Object.create(obj);//以obj对象为原型
console.log(f.fn());// 输出原型对象的fn
console.log(Object.getPrototypeOf(f) === obj)// 检查是obj是否f的原型对象
Object.setPrototypeOf(f,obj2);// 设置f的原型对象为obj2
console.log(f.fn());
4. ES6提供了super关键字,用于原型中方法的继承功能;
let obj={
fn(){
return 'fn';
}
};
let f={
fn(){
return super.fn() + 'extend!';
}
};
Object.setPrototypeOf(f,obj);//设置obj是f的原型
console.log(f.fn());
let h=Object.create(f);//可以再设置以f为原型
console.log(h.fn());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix