ES6对象新增的属性和方法
// 1.Object.is();判断两个数据是否相等
var res = Object.is(NaN,NaN)
console.log(res)
// 2. 合并2个或者多个对象 合并成一个对象
// Object.assign();
// ... 展开运算符
var obj = {
name:'zhngsan1',
age : 20
}
var obj1 = {
height:'178cm',
age : 30
}
var obj2 ={
address : '上海'
}
var res = Object.assign(obj,obj1,obj2)
console.log(res)
// 3.Object.hasOwn : ES6出现 取代 ES5里的 obj.hasOwnProperty
// 判断某个属性是否是对象的自身属性;
Object.prototype.height = "178cm"
var obj4 = {
myname:'xiaole',
age:20
}
for(let key in obj4){
if(Object.hasOwn(obj4,key)){
console.log(obj4)
}
}
// 4. Object.seal(); 把对象变成不可配置对象 不能删除可以修改
var obj5 = {
myname : '张三',
age : 20
}
Object.seal(obj5)
delete obj5.myname
console.log(obj5)
// 5. 获取对象的所有键名;var 键名数组 = Object.keys(对象)
var obj6 = {
myname : '张三',
age : 20
}
var arr = Object.keys(obj6)
console.log(arr)
// 6. 获取对象所有的键值 : var 键值的数组 = Object.values(对象)
var obj6 = {
myname : '张三',
age : 20
}
var arr1 = Object.values(obj6)
console.log(arr1)
ES6对对象写法的更新
// ES6对象写法更新
// 1.对象里面函数的简写
/* var obj = {
name : '张三',
// 这种简写仅限于对象中写法
fn(){
console.log('fn')
}
}
obj.fn() //fn */
// 箭头函数简写
/* var obj = {
fn:()=>{
console.log('fn')
}
}
obj.fn() //fn */
// 2. 键名和键值的简写 ;
// 对象里的键名和键值相同的时候 可以省略掉一个;
// var myname = "张三"
// var age = 20
// var obj = {
// // myname:myname, // 键名和键值 相同了 ,可以简写一个;
// myname,
// age,
// height:"178cm"
// }
// console.log(obj)
// 3.动态的键名 ;键名可以是变量 ;
// 对象里 如果键名需要解析变量 那么 需要加上 []
// 对象的键名不能重复 键名只能是字符串
// var myobj = {test:"hello"}
// var myage = "age"
// var str = "hello"
// var obj = {
// myname:"张三",
// [myage]:myage,
// [str+"1"]:"你好",
// [myobj]:"hello"
// }
// console.log(obj)
// for(let key in obj){
// console.log(typeof key)
// }
// 数组去重,利用对象的贱命不重复对象
/* var arr = ["a","b","c","b","a","b"]
var obj = {}
for(let i = 0
console.log(arr[i])
obj[arr[i]] = 1
}
console.log(obj)
var newArr =[]
for(let key in obj){
newArr.push(key)
}
console.log(newArr) */
ES6对于字符串方法的扩展
ES6对于字符串方法的扩展
1.repeat()方法 : 重复输出字符串
2.startsWith() : 判断字符串是否以某个字符开头返回值是布尔值
3.endsWith() : 判断字符串是否以某个字符结尾返回值是布尔值
4.padStart() : 在前面补全 指定字符
5.padEnd() : 在字符串后面补全指定字符
6.includes() : 判断字符串是否包含某个字符
*/
//为什么原始数据类型可以使用方法属性。(万物皆对象)包装函数概念:
//在js中里面的包装函数类型有:Number,String ,bingInt,Symbol
// 在调用原始类型数据Number,String ,bingInt,Symbol时,首先会生成一个包装对象,然后调用包装对象字符串的方法,调用完成后在底层销毁这个包装对象
// 1.repeat()方法 : 重复输出字符串
// ES5循环输出字符串次数
/* var str = '*'
for(let i = 0
str+='*'
}
console.log(str) */
// ES6循环输出字符串次数
/* var str = '*'
var res = str.repeat(5)
console.log(res) //输出***** */
//2.startsWith() : 判断字符串是否以某个字符开头
/* var str = 'abcdefg'
console.log(str.startsWith('ab')) //true
//通过正则表达式获取
var res = /^a[a-zA-Z]+/
console.log(res.test(str)) */
//3.endsWidth():判断字符串是否以某个字符串进行结尾
/* var str = 'abcdefg'
console.log(str.endsWith('g')) //true
// 通过正则表达式
var res = /[a-zA-Z]+g$/
console.log(res.test(str)) //true */
// // 4. padStart:在前面补全 指定字符
// var str = "abc"
// var res = str.padStart(5,"*")
// console.log(res)
// 5. padEnd :在字符串后面补全指定字符
// var str = "abc"
// var res = str.padEnd(6, ".")
// console.log(res)
// 6.includes :判断字符串是否包含某个字符
// var str = "abcdef"
// console.log( str.includes("cdf"))
ES6中Number和Math新增的方法
// 一、Math新增方法
// 1.Math.trunc() 去掉小数部分
/* var num = 3.14
var res = Math.trunc(num)
console.log(res) */
// 2.Math.sign(): 判断一个数是正数还是负数 ,正数返还 1 ;负数返还-1 0就返还0
/* var num = -10
console.log(Math.sign(num)) */
// 3.Math.sqrt():求平方根
/* var num = 4
console.log(Math.sqrt(num)) */
// 4.Math.cbrt():求立方根
/* var num = 8
console.log(Math.cbrt(num)) */
// 5.Math.hypot():求所有参数平方和的平方根 括号里面的参数最少一个,如果是一个开出来的值就是本身
/* console.log(Math.hypot(2)) */
// 二、number新增内容
// 1.Number.isFinite(); 有限的数就会返还true ,否则就是false
/* var num = Math.pow(2,1024)//平方数,括号内第一个数是底数,第二个数是指数
console.log(Number.isFinite(num)) */
// 2.Number.isNaN();判断一个字符是否是 NaN 是就返还true 否则就返还false
// js里的 isNaN() :判断是不是一个非数字 如果是非数字就返还true 否则就返还false。
/* console.log(Number.isNaN(3)) //false
console.log(Number.isNaN(NaN))//true */
//3.判断是否是一个整数 Number.isInteger
/* var num = 3
console.log(Number.isInteger(num)) //true
*/
// 4.Number.parseInt() : 和 js里的parseInt 一致 ;
/* var num = 3.1454514
console.log(Number.parseInt(num)) //3
console.log(Number.parseFloat(num)) //3.1454514 */