es6知识总结--3
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的更多相关文章
- 前端项目中常用es6知识总结 -- 箭头函数及this指向、尾调用优化
项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...
- ES6知识整理(4)--数组的扩展
最近工作比较忙,基本每天都会加班到很晚.处理一些客户端兼容问题以及提升用户体验的优化.也将近一周没更文了,现在继续es6的学习总结. 上篇回顾 ES6知识整理(三)--函数的扩展 扩展运算符 形式是3 ...
- 前端项目中常用es6知识总结 -- Async、Await让异步美如画
项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...
- 前端项目中常用es6知识总结 -- Promise逃脱回调地狱
项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...
- 前端项目中常用es6知识总结 -- let、const及数据类型延伸
项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2 ...
- ES6知识整理(1)--let和const命令
最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...
- 开发中常用的es6知识
结合实际开发,开发中常用的es6的知识: 1.新增let和const命令: ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效: cons ...
- ES6知识整理(10)--class的继承
(这是es6的第10篇文章.说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧) 类的继承 有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法.不包 ...
- ES6知识整理(5)--对象的扩展
个人开这个公众号的初心是为了积累知识,因此并没有做什么推广,再说自己也不知道怎么推广,推广之后又能干些什么.已经将近10天没发文章了,虽然每天都加班,但也不会一点时间都没有,有时还是会懒癌发作不想学习 ...
随机推荐
- es6之Generator
1.Generator函数其实是一个封装了多个内部状态的状态机,执行它会返回一个遍历器对象,然后可以依次遍历Generator中的每一个状态,也就是分段执行,yield是暂停执行的标记,next恢复执 ...
- vue实例的几个概念
1.构造器 vue应用都是通过vue构造函数创建实例来启动的,在创建vue实例时需要传入一个options对象,该对象可以包含数据.模板.挂在元素.方法.生命周期钩子等选项: var vm = new ...
- java7增强的try语句关闭资源
java7增强的try语句关闭资源 传统的关闭资源方式 import java.io.FileInputStream; import java.io.FileOutputStream; import ...
- 分享几个python小脚本
by 梁凯 今天我想给大家分享几个python脚本,分别是: 1.公司访问外网认证脚本(最初有同事写过,我优化了一下). 2.统计周报系统所有同事的最近一篇周报. 3.统计测试技术分享里指定一个月所有 ...
- C++函数调用的反汇编过程及Thunk应用
x86汇编基础知识 1. 汇编常用寄存器 esp,(Extended stack pointer)栈顶指针.因为x86的栈内存是向下扩展的,因此当push入栈时,esp–.pop出栈时,esp++.e ...
- java音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例
前言:Java默认采用大端序存储方式,实际编码的音频数据是小端序,如果处理单8bit的音频当然不需要做转换,但是如果是16bit或者以上的就需要处理成小端序字节顺序. 注:大.小端序指的是字节的存储顺 ...
- 二分查找(binary search)
二分查找又叫折半查找,要查找的前提是检索结果位于已排序的列表中. 概念 在一个已排序的数组seq中,使用二分查找v,假如这个数组的范围是[low...high],我们要的v就在这个范围里.查找的方法是 ...
- eclipse 好用的插件总结
改变eclipse的背景色,各种关键词颜色的插件. color theme. 在mac下最好是通过手动复制粘贴jar文件到, eclipse的plugins下面. 通过Install new soft ...
- 常用数组、字符串方法总结&获取元素、DOM操作
字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符 ...
- Vulkan Tutorial 16 Command buffers
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 诸如绘制和内存操作相关命令,在Vulkan中不是通过函数直接调用的.我们需要在命令缓 ...