Es6.2 函数与symbol

本文深入讲解了JavaScript中数字类型的判断、解析方法,对象比较、赋值、原型链操作,以及函数的使用、rest参数、扩展运算符的应用实例。
摘要由CSDN通过智能技术生成

一, 数字类型的用法

(1).传统写法

console.log(isNaN(2.5));//false
console.log(window.isNaN(2.5));//false

(2).Number.isNaN函数 (先判断是否是数字类型)

  console.log(Number.isNaN(NaN));//true
  console.log(Number.isNaN(false));//false
  console.log(Number.isNaN(null));//false

(3).Number.parseInt函数:解析一个字符串,返回一个整数

    console.log(Number.parseInt('3.123'));//3
    console.log(Number.parseInt(null));//NaN
    console.log(Number.parseInt(undefined));//NaN
    console.log(Number.parseInt(3));//3

(4).Number.isInteger函数:用来判断是否是整数。不会发生隐式类型转换

    console.log(Number.isInteger(1.23));  //false
    console.log(Number.isInteger(2));//true

(5). Math.trunc函数:用于去除一个数的小数部分,返回整数部分。 会发生隐式类型转换

    console.log(Math.trunc(1.2334));//1
    console.log(Math.trunc(null));//0
    console.log(Math.trunc(true));//1
    console.log(Math.trunc(undefined));//NaN

(6).Math.sign函数:用来判断一个数到底是正数(1)、负数(-1)、还是零(0)。

    console.log(Math.sign(null));//0
    console.log(Math.sign(true));//1
    console.log(Math.sign(undefined));//NaN

二,对象的使用

1、对象中属性名和属性值一样省略属性值
2、在对象中的函数可以省略:function
3、表达式可以作为对象中的属性

    var name = 'zs'
    var first = 'first'
    var name = 'name'
    var obj = {
        name,
        age: 18,
   
        say() {
            console.log(this);//{name: 'name', age: 18, firstname: 'first', say: ƒ}
            console.log('会说话');
        },
        [first + name]: 'first'
    }

    console.log(obj.firstname);//first
    console.log(obj[first + name]);//first
    console.log(obj[name]);//name
    obj.say()//会说话

1.Object.is函数 函数的作用:比较两个值是否严格相等,或者说全等。===

     console.log(Object.is(10, '10'));//false
    console.log(Object.is(NaN, NaN));//true

2. Object.assign(目标对象,源对象,源对象)函数 函数作用:将源对象的属性赋值到目标对象上。(重点)

  var obj1 = {
        a: 1,
        b: 2
    }
    var obj2 = {
        c: 3,
        d: 4
    }
    console.log(Object.assign(obj1, obj2));//a:1, b: 2,c: 3,d: 4
// 对象的深拷贝
    var object = Object.assign({}, obj)
    object.name = 'object'
    console.log(obj);//{name: 'name', age: 18, firstname: 'first', say: ƒ}
    console.log(object)//{name: 'object', age: 18, firstname: 'first', say: ƒ}

3. Object.getPrototypeOf函数 函数作用:获取一个对象的prototype属性。

  function Person() {

    }
    Person.prototype.name = 'person'
    Person.prototype.age = 28
    var p1 = new Person()
    console.log(Object.getPrototypeOf(p1));//Object

4、Object.setPrototypeOf(实例化对象,{})函数 函数作用:设置一个对象的prototype属

  Object.setPrototypeOf(p1, {
        name: 'name',
        say() {
            console.log('会耍滑');
        }
    })
    console.log(Object.getPrototypeOf(p1));//Object

5. Object.values() 获取对象的属性值 Object.keys() 获取对象的属性名

    console.log(Object.values(obj));//['name', 18, ƒ, 'first']
    console.log(Object.keys(obj));//['name', 'age', 'say', 'firstname']

三,函数的使用

   function fn(name) {
        var name = name || 'zs'
 
        console.log(name);
    }
    fn()//zs
    fn('zs')//zs
    fn(false)//zs
    fn(true)//ture
    fn(null)//zs
    fn(undefined)//zs
    fn(0)//zs
    fn('')//zs

赋初值

   function fn1(name) {
   console.log(name);//ls
    }

    fn1('ls')

四,rest参数

   function fn(x, ...rest) {
        console.log(...rest);//2,3,4,5
        console.log(x);//1
        console.log(arguments[1]);//2
    }
    fn(1, 2, 3, 4, 5);

五,扩展运算符

1、遍历数组

   var arr = [1, 2, 3, 4]
    console.log(...arr);//1,2,3,4

2,当做数组中的元素

    var arr_1 = [1, ...arr, 5]
    console.log(arr_1);//Array(6)

3,数组的深拷贝 (重点)

var arr_2 = [...arr]
    arr_2.unshift(0)
    console.log(arr_2);
    console.log(arr);

4.函数中的参数

function fn(x, y, z, m) {
        console.log(x, y, z, m);//1 2 3 4
    }
 
    fn(...arr)

5.与解构赋值连用

 var [x, y, z, m] = [...arr]
    console.log(x, y, z, m);//1 2 3 4

6.遍历对象

   var obj = {
        name: 'zs',
        age: 18,
        say() {
            console.log('话');
        }
    }
    console.log({ ...obj });//Object
      // 深拷贝
    var obj_1 = { ...obj }
    obj_1.name = 'obj_1'

7.合并对象

  var obja = {
        a: 1,
        b: 2

    }
    var objb = {
        c: 3,
        d: 4,
        ...obja,
        a: 5,
    }
    console.log(objb);//{c: 3, d: 4, a: 5, b: 2}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值