ES6解析彩票项目学习记录(二)
5. 数字扩展
进制表示
console.log(0b111101110); // 494
console.log(0o767); //503
数值判断
console.log("15", Number.isFinite(15)); //trueconsole.log("NaN", Number.isFinite(NaN)); //falseconsole.log("1/0", Number.isFinite(1 / 0)); // false
console.log("NaN", Number.isNaN(NaN)); //falseconsole.log("0", Number.isNaN(0)); //true
console.log(Number.isInteger(25)); //trueconsole.log(Number.isInteger(25.0)); //true 25.0 等于 25console.log(Number.isInteger(25.1)); //false 25.1 不等于 25console.log(Number.isInteger("25")); //false 参数必须是数
console.log(Number.MAX_SAFE_INTEGER); //9007199254740991console.log(Number.MIN_SAFE_INTEGER); //-9007199254740991
console.log(Number.isSafeInteger(10)); //trueconsole.log(Number.isSafeInteger(10.4)); //false
console.log(Math.trunc(4.11)); //4console.log(Math.trunc(4.9)); //4
console.log(Math.sign(-5)); //-1console.log(Math.sign(0)); //0console.log(Math.sign(5)); //1console.log(Math.sign("ffd")); //NaN
计算立方根
console.log(Math.cbrt(-1)); //-1console.log(Math.cbrt(8)); //2console.log(Math.cbrt("gf")); //NaN
6. 数组扩展
数组转换
let arr = Array.of(3, "sd", 7, 9, 11);console.log("arr=", arr); //[3, "sd", 7, 9, 11]
// 把元素集合转义成数组let p = document.querySelectorAll("p");let pArr = Array.from(p);pArr.forEach(item => {console.log(item.textContent);//ES6//慕课网//学习教程 });//映射关系console.log(Array.from([1, 3, 5], item => item * 2));// [2,6,10]
填充数组
console.log([1, "a", undefined].fill(7)); // [7,7,7]// 后两个参数 起始位置 终止位置console.log(["a", "b", "c", "d", "e"].fill(7, 1, 3)); //['a',7,7,'d','e']
打印值
for (let index of ["1", "c", "ks"].keys()) {console.log(index);//0//1//2}
for (let [index, value] of ["1", "c", "ks"].entries()) {console.log(index, value);//0 '1'//1 'c'//2 'ks'}
console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4)); //[4, 2, 3, 4, 5]
console.log([1, 2, 3, 4, 5, 6].find(item => item > 3)); //4
console.log([1, 2, 3, 4, 5, 6].findIndex(item => item > 3)); //3
console.log([1, 2, NaN].includes(1)); //trueconsole.log([1, 2, NaN].includes(NaN)); //true
7. 函数扩展
参数
function test(x, y = "world") {console.log("默认值", x, y);}test("hello"); //hello world
let x = "test";function test2(x, y = x) {console.log("作用域", x, y);}test2("kaka"); // kaka kaka
let x = "test";function test2(c, y = x) {console.log("作用域", c, y);}test2("kaka"); // kaka test
rest 参数, 扩展运算符
// 把一些离散的值转换成了数组function test3(...arg) {for (let v of arg) {console.log("rest", v);// 1// 5// a }}test3(1, 5, "a");// 把数组转成离散的值console.log("a", ...[1, 2, 4]); //a 1 2 4
箭头函数
// this 绑定// es5: 函数被调用时的对象// es6: 定义时候的对象let arrow = v => v * 2;console.log(arrow(3)); //6let arrow2 = () => 5;console.log(arrow2()); //5
尾调用
function tail(x) {console.log("tail", x);}function fx(x) {return tail(x);}fx(123); // 123
8. 对象扩展
简洁表达
let o = 1;let k = 2;let es5 = { o: o, k: k };let es6 = { o, k };console.log(es5);console.log(es6);// {o: 1, k: 2} let es5_method = {hello: function() {console.log("hello es5");}};let es6_method = {hello() {console.log("hello es6");}};es5_method.hello();es6_method.hello();
属性表达式
let a = "b";let es5_obj = {a: "c"};// 中括号包起变量,a 是变量,变量的值是blet es6_obj = {[a]: "c"};console.log(es5_obj); //{a: "c"}console.log(es6_obj); //{b: "c"}
新增api
// 判断相等,等同 ===console.log(Object.is("abc", "abc")); //true// 引用类型 引用两个不同地址console.log(Object.is([], [])); //false// 浅拷贝 属性有限制 ,拷贝自身属性的地址console.log("拷贝", Object.assign({ a: "a" }, { b: "b" })); //{a: "a", b: "b" let test = { k: 123, o: 456 };for (let [key, value] of Object.entries(test)) {console.log([key, value]);// ["k", 123] // ["o", 456]
扩展运算符 (es7特性, 支持度不高)
//扩展运算符 (es7特性)//let { a, b, ...c } = { a: "test", b: "kill", c: "ddd", d: "ccc" };// c= {// c:ddd,// d:ddd// }
9. symbol 类型
symbol 作用
//声明let a1 = Symbol();let a2 = Symbol();console.log(a1 === a2); //false // 设定key值,同key 的值是相等的let a3 = Symbol.for("a3");let a4 = Symbol.for("a3");console.log(a3 === a4); //true
// 同键值不会造成冲突let a1 = Symbol.for("abc");let obj = {[a1]: "123",abc: 345,c: 456};console.log(obj); //{abc: 345, c: 456, Symbol(abc): "123"}/*** 对象中有用到symbol作key值时,for in 和 let of 是拿不到属性的*/for (let [key, value] of Object.entries(obj)) {console.log(key, value);// abc 345// c 456 }for (let key in obj) {console.log(key, obj[key]);// abc 345// c 456 }// 这时候就需要一个api了,得到一个数组Object.getOwnPropertySymbols(obj).forEach(item => {console.log(obj[item]);// 123 (只取到symbol) });// 所有都要那到要使用Reflect, 返回symbol变量作为key值的属性Reflect.ownKeys(obj).forEach(item => {console.log(item, obj[item]);// abc 345// c 456// Symbol(abc) '123'});
转载于:https://www.cnblogs.com/anqwjoe/p/11138464.html
ES6解析彩票项目学习记录(二)相关推荐
- GitHub mall项目学习(二) mall-admin
GitHub mall项目学习(二) mall-admin 本文主要介绍mall-admin后台系统 mall ├── mall-common -- 工具类及通用代码 ├── mall-mbg -- ...
- 大数据之spark学习记录二: Spark的安装与上手
大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...
- 01-Flutter移动电商实战-项目学习记录
01-Flutter移动电商实战-项目学习记录 一直想系统性的学习一下 Flutter,正好看到该课程<Flutter移动电商实战>的百度云资源,共 69 课时,由于怕自己坚持不下去(经常 ...
- MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- VUE项目学习(二):学习项目文件结构
VUE项目学习(二):学习项目文件结构 VUE项目结构: index.html:主页,项目入口 App.vue:根组件 main.js:入口文件 router文件夹下的index.js:路由配置文件 ...
- Android动画学习记录二(属性动画、估值器和插值器)
Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) 一.补间动画缺陷 二.属性 ...
- HTML学习记录二:html标签(五):超链接标签
HTML学习记录二:html标签(五):超链接标签 一.超链接标签写法 二.超链接标签的属性 三.超链接的锚点用法 四.链接分类 一.超链接标签写法 在 HTML 标签中, 标签用于定义超链接,作用是 ...
- 卡狗项目学习记录 - Churning Customers Prediction
卡狗项目学习记录-Churning Customers Prediction 1. 数据预处理 1.1 导入需要的包 1.2 读取数据集 1.3 数据分析 1.3.1 Customer_Age 1) ...
- Openzeppelin学习记录二:utils模块(SafeMath.sol+SafeCast.sol)
Openzeppelin学习记录一:access模块(AccessControl.sol+Ownable.sol) Openzeppelin学习记录 2.Utils 2.1 Math 2.2 Safe ...
最新文章
- 再谈Linux修改应用程序获得root权限
- oracle sql语句
- Burnside引理与Pólya定理
- vs2008使用技巧
- 战神笔记本电脑自带access吗_笔记本电脑卡顿不要急着换,这几个方法,让你的电脑流畅爆表...
- centos配置mysql
- 编译驱动的Makefile解析
- 操作系统实验报告-系统调用
- python做逻辑回归r2_利用python实现逻辑回归
- SiteMesh2-示例工程
- 高数上册下册答案详解第七版高数同济7版上册下册答案高等数学答案吧
- 字典攻击——彩虹表攻击与防御
- 戴尔计算机网卡驱动程序,dell戴尔网卡驱动如何安装
- 电子元器件选型——功率电感
- 关于动物识别论文的阅读笔记——青鳉鱼的个体识别和“面部反转效应”
- C++ 全局变量 静态全局变量 傻傻分不清
- Fabrie:PPT有风险,设计师请停用
- vmware workstation14永久激活密钥
- 推荐系统中learning to rank(学习排名)
- 文字细化算法matlab,细化算法matlab