es6知识总结--3

es6对咱们es3,es5的数据类型进行了升级下边说新APIs!

js数据类型有Number、String 、oject、Boolean、Null、Undefined六种数据类型 !

下边介绍 Math、Number、String 、Array、Boject的新 APIs

  • Math
  • Number
  • String
  • Array
  • Boject

    Math

    下边我们介绍三个觉得大家能用的着的属性Math.trunc()、Math.sqrt()、Math.sign()

let a=Math.trunc(4.1);                        //trunc去除整数的小数点部分console.log(a)//4
let b=Math.sign(-4);    //sign方法用于判断一个数为正、负、0
let c=Math.sign(4.1);
let d=Math.sign(0);console.log(b);//-1console.log(c);//1console.log(d);//0
let e=Math.sqrt(4)      //sqrt 用于开一个数的平方根console.log(e)//2
let f=Math.cbrt(27);console.log(f);    //3*/

Number

console.log(Number.isInteger(12));   //true  //isInteger判断数组是否为整数
console.log(Number.isInteger(12.3)); //flase
console.log(Number.isNaN(12145))  //false   //isNaN用于检查数组是否为NaN
console.log(Number.isNaN(NaN)) // true

String

var str="javascript";
console.log(str.includes("java"));//true   //includes()用来检查字符串是否有该连接字符
console.log(str.includes("javt"));//false
console.log(str.startsWith("ja"));//true   //startsWith用来检查字符串以什么开头
console.log(str.endsWith("pt"));//true   //endsWith以什么结尾
console.log("1".repeat(20))//20 个 1     //repeat用来复制字符串

Array

let arr=[1,2,3,4,5];
let arr1=Array.from(arr);     //Array.from() 用来拷贝一份
arr1=[2,2,3,4,55];
console.log(arr)
console.log(arr1);//[2,2,3,4,55]console.log(Array.of(1,2,3))  //Array.of用于创建一个数组
let shuzu=[1,2,3,4,5,6]
console.log(shuzu.fill(4,1))  //fill传两个值后边那个规定从一位开始全部替换*/

object

let obj={x:1,y:1};
let obj1={};
Object.assign(obj1,obj)         //Object.assign
obj1.x=2;                       /*1.合并多个对象;2.克隆对象;3.为数组添加多个方法*/
console.log(obj1)
let obj2={a:2,b:"c"};
//let obj1= Object.assign({},obj2,obj);
// console.log(obj1)//Object {a: 2, b: "c", x: 1, y: 1}
let obj3={aa:1,bb:2}
Object.assign(obj3,{sayhello:()=>{},sayhi:()=>{}
})
let person={name:"huahua",sex:"nan",age:18
}
let tao={// __proto__:person,xh:123
}
// console.log(tao)
Object.setPrototypeOf(tao,person)    //setPrototypeOf用于设置继承属性
console.log(tao.name)

同样es6新规定了一个==Symbol==新属性

ES5对象属性名都是字符串容易造成属性名的冲突。

var a = { name: 'lucy'};a.name = 'lili';
这样就会重写属性

说的明白点其实Symbol就是为了处理这件事情,它表示独一无二的值
Symbol值不能与其他类型的值进行运算


// 没有参数的情况var s1 = Symbol();var s2 = Symbol();console.log(s1 === s2) // false// 有参数的情况var s1 = Symbol("foo");var s2 = Symbol("foo");console.log(s1 === s2) // false

Symbol值作为对象属性名时,不能用点运算符

        var mySymbol = Symbol();// 第一种写法var a = {};a[mySymbol] = 'Hello!';// 第二种写法var a = {[mySymbol]: 'Hello!'};// 第三种写法var a = {};Object.defineProperty(a, mySymbol, { value: 'Hello!' });// 以上写法都得到同样结果console.log(a[mySymbol]) // "Hello!"

防止对象的属性被串改

let chenxu={name:"chenxu",age:"17"}chenxu.name="晨旭"console.log(chenxu);//被修改*/let chenxu1={[Symbol('name')]:"chenxu",age:"17"}chenxu1[Symbol('name')]="晨旭";console.log(chenxu1.name);//undefindconsole.log(chenxu1)  //Object {age: "17", Symbol(name): "chenxu", Symbol(name): "晨旭"}

但是这里的Symbol在类外部也是可以访问的,只是不会出现在for...in、for...of循环中,也不会被Object.keys()、Object.getOwnPropertyNames()返回。但有一个Object.getOwnPropertySymbols方法,可以获取指定对象的所有Symbol属性名

转载于:https://www.cnblogs.com/chenxua/p/7168241.html

es6知识总结--3相关推荐

  1. vue解构赋值_前端开发es6知识 模块化、解构赋值、字符串模板

    项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍1.块级作用域 let const 2.箭 ...

  2. let的解构赋值_前端开发es6知识 模块化、解构赋值、字符串模板

    项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...

  3. JS面试题--ES6知识大全

    ES6知识 字面量增强的写法的三种写法 ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量). 字面量的增强主要包括下面几部分: 属性的简写: ...

  4. es6 知识总结--3

    es6知识总结--3 上午发表了一个总结觉得还是把自己的了解做成一个小系列吧,明天把那个总结一下! es6对咱们es3,es5的数据类型进行了升级下边说新APIs! js数据类型有Number.Str ...

  5. Vue的三个点es6知识,扩展运算符表达含义

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. es6知识总结 模块 承诺加载

    模块 ES6 的模块化分为导出(export) @与导入(import)两个模块. var name='mumu'; function fun(){console.log('拟好') } class ...

  7. 30分钟搞定ES6常用基础知识

    ES6基础智商划重点 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值 ...

  8. ES6 复习,知识补充

    ES6 知识补充 概念 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了. 它的目标,是使得 JavaScript 语 ...

  9. 重温ES6核心概念和基本用法

    ES6在2015年6月就得以批准,至今已两年了.近一年多以来陆续看过很多ES6的资料,工作项目中也逐步的用上了很多ES6的特性(let,const,promise,Template strings,C ...

最新文章

  1. C++ template
  2. 独家 | 准备数据时如何避免数据泄漏
  3. 牛客 - 树上求和(贪心+树形dp)
  4. 算法设计与分析(第三周)递归/迭代求Fibonacci前n项 【以及递归算法速度慢的原因】
  5. 红黑树中nil结点_什么是红黑树?程序员面试必问!
  6. 【Python】如何判断一个字符串为空
  7. airpods删除别人的配对_怎么不让别人连我的airpods
  8. [BZOJ2879] [Noi2012] 美食节 (费用流 动态加边)
  9. opera官方教程 预订二
  10. 手动方式安装 eclipse 的svn插件 Subversive和 Subversive SVN Connectors
  11. MFC通过窗口标题获得窗口句柄
  12. 【物联网控制技术】--第一章--【自动控制】【反馈控制】【调节过程】【系统要求】【典型的外部输入信号】
  13. 灵魂电钢琴音源 Native Instruments George Duke Soul Treasures
  14. 遗传算法matlab_当结构设计遇到遗传算法应用ANSYS和MATLAB联合优化设计探索(二)...
  15. 验证下《指数基金投资指南》中的策略是否有效
  16. 新手焊接电路板_手把手教您如何掌握焊接电路板基础知识
  17. 神级总结:报价英文函电的常用金句
  18. 3dsmax-uv展开
  19. 淘宝鹊桥计算工具安卓版小程序
  20. java64位官方下载10_Java10.0下载|Java10.0.1 64位官方版 - 爱学府软件园

热门文章

  1. 正则表达式中的圆括号
  2. 关于ADC转换设计中的基本问题(82问)
  3. 悟空号 量子计算机,“悟空号”首席科学家常进做客物理学院研究生学术周末...
  4. 数据结构第二版(朱昌杰版)习题2答案
  5. 王小二切饼 2050
  6. 使用ffmpeg将avi转mp4以及yuyv转为图片
  7. ExternalInterface的call函数返回null的原因分析(AS2)
  8. {2018.4.21}荀(gou)彧(huo)同学的函数与排序整合
  9. mipsel_24kc的linux内核,歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载...
  10. 树莓派从选购到入门一条龙