深入理解ES6之《ES6中较小的改动》

news/2024/12/13 13:46:32

识别整数

console.log(Number.isInteger(25))//true
console.log(Number.isInteger(25.0))//true
console.log(Number.isInteger(25.1))//false

安全整数

IEEE 754只能准确的表示-2的53次方到2的53次方的整数

let inside = Number.MAX_SAFE_INTEGER,outside = Number.MAX_SAFE_INTEGER + 1//Number.MIN_SAFE_INTEGER表示整数范围的下限
console.log(Number.isInteger(inside))//true
console.log(Number.isSafeInteger(inside))//trueconsole.log(Number.isInteger(outside))//true
console.log(Number.isSafeInteger(outside))//false

Unicode标识符

可以将Unicode转义序列用作标识符

let \u0061 = 'abc'
console.log(\u0061)//abc
console.log(a)//abc

可以使用Unicode码位转义序列来作为标识符

let \u{61} = 'abc'
console.log(\u{61})//abc
console.log(a)//abc

正式化__proto__属性

  1. 只能在对象字面量中指定一次__proto__,如果指定两个__prpto__属性则会抛出错误,这是唯一具有该限制的对象字面量改改
  2. 可计算形式的["__proto__"]的行为类似于普通属性,不会设置或返回当前对象的原型。与对象字面量属性相关的所有规则均适用于此形式,应用不可计算的形式则会抛出异常
    使用__proto__和使用Object.getPrototypeOf或Object.setPrototypeOf方法的区别在于__proto__可以直接设置对象字面量的原型
let person = {getGreeting() {return 'hello'}
}
let dog = {getGreeting() {return 'woof'}
}
let friend = {__proto__: person
}
console.log(friend.getGreeting())//hello
console.log(Object.getPrototypeOf(friend) === person)//true
console.log(friend.__proto__ === person)//true
friend.__proto__ = dog
console.log(friend.getGreeting())//woof
console.log(Object.getPrototypeOf(friend) === dog)//true
console.log(friend.__proto__ === dog)//true

没有通过调用Object.create方法来创建friend对象,而是创建一个标准对象字面量,并将一个值赋给__proto__属性,换句话说,当使用Object.create方法创建对象时,必须为所有其它对象属性指定完整的属性描述符


https://dhexx.cn/news/show-4208551.html

相关文章

React 的源码与原理解读(七):commit 阶段

写在专栏开头(叠甲) 作者并不是前端技术专家,也只是一名喜欢学习新东西的前端技术小白,想要学习源码只是为了应付急转直下的前端行情和找工作的需要,这篇专栏是作者学习的过程中自己的思考和体会,也有很多参…

Redis的Cluster集群搭建(CentOS7环境,Redis6.0.9)

目录 一、介绍 二、部署Redis的Cluster集群 1、编译完成Redis文件 2、新建准备好6个文件夹 3、拷贝redis执行文件和conf 4、修改redis.conf文件 5、创建启动文件start_all.sh 6、创建停止文件stop_all.sh 7、启动节点 8、创建集群 三、验证集群正常工作 参考文献&…

Docker 容器内无法通过 HTTP 访问外网

本文是转载:原文链接https://www.cnblogs.com/shawhe/p/11209678.html 实测可以解决问题 现象 内/外网 IP 和 域名 可以 ping 通容器内无法访问宿主机所在内网及外网的 Web 服务(404)通过 curl 查看返回头信息感觉是所有 Web 请求被中转到一…

软键盘管理

安卓开发一般都需要进行软键盘管理,常用操作老司机已为你封装完毕,你可以用这份工具进行管理,具体可以查看源码,现在为你开车,Demo传送门。 站点 软键盘管理 → AppKeyBoardMgr openKeybord : 打卡软键盘 closeK…

Java NIO系列1-概观

Java NIO系列1-概观 Java NIO。中间的N你既可以理解为(new),也就是新的IO,相对于java1.5之前的IO它确实是新的;也可以理解为(no-blocking),也就是非阻塞的IO。 Java NIO的包和类 从Java 文档中可以看到&…

CentOS上兼容安装Python3

yum install yum-utils yum-builddep python curl -O https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz tar xf Python-3.9.1.tgz cd Python-3.9.1 ./configure make make install 注:其中源码包参考目录为:https://www.python.org/ftp/python…

职业思想感悟

如何提高自己的职业素养?要经常考虑自己的职业发展方向。战术方法:在工作中,将工作做到极致。这会快速的提高你的能力。快速的学习能力,是职业素养中,个人软实力的体现。如何提高个人的软实力呢,就要做到尽…

Debian、Ubuntu系统中开机启动设置

Unix系统使用比较广泛的便是Linux系统,而基于Linux内核下也有很多衍生的其他的系统,其中就有Debian、Ubuntu这类的系统,在Linux系统下平时使用习惯的开机启动/etc/rc.local或/etc/rc.d/rc.local就没有了,那在Debian、Ubuntu下需要…

CentOS7修改服务器时区

1、查看时区设置 timedatectl 2、修改时区,比如上海时区 timedatectl set-timezone Asia/Shanghai 注:列出所有时区 timedatectl list-timezones [rootyang ~]# timedatectlLocal time: Wed 2021-03-10 22:09:01 ESTUniversal time: Thu 2021-03-11 03:0…

02_shell_basic 01_prepare

#理解什么是Linux,什么是GNU/Linux (GNU is not UNIX, recursion)#能区分程序和进程这两个概念#知道Shell 其实是一个程序(shell 脚本编程,shell scripting)#知道Linux 的目录树中最顶级的目录的表示方法 ( / )#知道绝对路径和相对…