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);//-1
console.log(c);//1
console.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);//undefind
console.log(chenxu1) //Object {age: "17", Symbol(name): "chenxu", Symbol(name): "晨旭"}

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

es6知识总结--3的更多相关文章

  1. 前端项目中常用es6知识总结 -- 箭头函数及this指向、尾调用优化

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

  2. ES6知识整理(4)--数组的扩展

    最近工作比较忙,基本每天都会加班到很晚.处理一些客户端兼容问题以及提升用户体验的优化.也将近一周没更文了,现在继续es6的学习总结. 上篇回顾 ES6知识整理(三)--函数的扩展 扩展运算符 形式是3 ...

  3. 前端项目中常用es6知识总结 -- Async、Await让异步美如画

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

  4. 前端项目中常用es6知识总结 -- Promise逃脱回调地狱

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

  5. 前端项目中常用es6知识总结 -- let、const及数据类型延伸

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

  6. ES6知识整理(1)--let和const命令

    最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...

  7. 开发中常用的es6知识

    结合实际开发,开发中常用的es6的知识: 1.新增let和const命令: ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效: cons ...

  8. ES6知识整理(10)--class的继承

    (这是es6的第10篇文章.说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧) 类的继承 有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法.不包 ...

  9. ES6知识整理(5)--对象的扩展

    个人开这个公众号的初心是为了积累知识,因此并没有做什么推广,再说自己也不知道怎么推广,推广之后又能干些什么.已经将近10天没发文章了,虽然每天都加班,但也不会一点时间都没有,有时还是会懒癌发作不想学习 ...

随机推荐

  1. 关于vue生命周期中的同步异步的理解

    在vue官网中介绍生命周期的图如下: 主要测试代码如下: 主要是测试前四个生命周期beforeCreate,created,beforeMount,mounted,里面同步和异步的执行顺序,其它的类似 ...

  2. Java经典编程题50道之一

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Example01 {    publi ...

  3. 为什么说上ERP找死?

    长期以来,管理软件领域流行着这样一句话“不上ERP等死,上了ERP找死”.根据为十九年管理软件开发的经验来看,“不上ERP等死”这句话不敢苟同,但“上了ERP找死”这句话倒有些同感.上ERP虽然不一定 ...

  4. canvas动画——粒子系统(1)

    这个动画在很早之前就见过,当时就没迷住了.最近在学canavs动画,动手实现了一下.代码在这里.展示效果在这里. 这属于粒子系统的一种,粒子系统就是需要管理一堆粒子嘛,动画实现的关键在于,遍历这些粒子 ...

  5. java设计模式面试考点

    分类(常见的设计模式) 1.创建型模式 a) 工厂模式 b) 抽象工厂模式 c) 单例模式 d) 建造者模式 2.结构型模式 a) 适配器模式 b) 装饰器模式 c) 桥接模式 d) 代理模式 3.行 ...

  6. Coursera 机器学习笔记(四)

    主要为第六周内容机器学习应用建议以及系统设计. 下一步做什么 当训练好一个模型,预测未知数据,发现结果不如人意,该如何提高呢? 1.获得更多的训练实例 2.尝试减少特征的数量 3.尝试获得更多的特征 ...

  7. IntelliJ IDEA 2017.1.4 x64配置说明

    只是为了研究下idea这款编译器怎么使用.开门见山,说下如何配置这款编译器,不配置也能用,但是强迫症表示不服.下面直入正题: 下载与安装就不说了,除了更改安装目录外,没啥注意的地方,建议下载idea去 ...

  8. 干货 | 云智慧透视宝Java代码性能监控实现原理

    这篇图文并茂,高端大气上档次,思维缜密的文章,一看就和我平时的风格不同.对了.这不是我写的,是我家高大英俊,写一手好代码,做一手好菜的男神老公的大作,曾发表于技术公号,经本人授权转载~~ 一.Java ...

  9. python os模块学习

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是wi ...

  10. jQuery 插件 的this 指向问题(实战)

    daterangepicker 是一个JavaScript组件,用来选择日期. 资源直接搜索 daterangepicker 即可,当然好看的样式可以基于Bootstrap. 官网:http://ww ...