函数与symbol笔记

数字类型的用法

1、is.NaN()  相当于window.isNaN用于判断是不是非数字 

console.log(window.isNaN(NaN));   //true
console.log(window.isNaN(isNaN));  //true
console.log(window.isNaN("123"));  //false
console.log(window.isNaN(123));   //false
console.log(window.isNaN(null));  //false
console.log(window.isNaN(true));  //false
console.log(window.isNaN(undefined));  //true

2、Number.isNaN()  用于判断传入的是否是非数值(先判断是不是数字类型)

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

3、Number.isFinite()  解析一个数值判断是否非无穷

console.log(Number.isFinite("1.23"));  //false
console.log(Number.isFinite(1.23));  //true
console.log(Number.isFinite(NaN));  //false
console.log(Number.isFinite(Math.PI));  //true
console.log(Number.isFinite(undefined));  //false
console.log(Number.isFinite(null));  //false

4、Number.parseInt()  解析一个数值返回一个整数

console.log(Number.parseInt("1.123"));  //1
console.log(Number.parseInt(1.123));  //1
console.log(Number.parseInt(null));  //NaN
console.log(Number.parseInt(undefined));  //NaN
console.log(Number.parseInt(true));  //NaN

5、Number.isInteger()  用来判断是否是整数

console.log(Number.isInteger(NaN));  //false
console.log(Number.isInteger(11.32));  //false
console.log(Number.isInteger(2.00));  //true
console.log(Number.isInteger());  //false
console.log(Number.isInteger(NaN));  //false
console.log(Number.isInteger(NaN));  //false
console.log(Number.isInteger(NaN));  //false

6、Math.trunc()  用于去除一个数的小数部分,返回整数部分,(会发生隐试数据类转化)

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

7、Math.sign()  用来判断一个数到底是正数、负数还是零

console.log(Math.sign(2));    //
console.log(Math.sign(-2));   //-1
console.log(Math.sign(0));    //0

对象的使用

1.对象中属性名和属性值一样省略属性值

2.在对象中的函数可以省略":function"

3.表达式可以作为对象中的属性

 var name = "zs"
    var first = "first"
    var name = "name"
    var obj = {
        name,
        age:18,
        say(){
            console.log("说话");
        },
        [first + name]:"first"
    }
    console.log(obj);  //Object   age:18,firstname:"first",name:"name",say:f say()
    obj.say()  //说话
    console.log(obj[first+name]);  //first
    console.log(obj[name]);  //name

对象的方法

1、Object.is()  作用:比较两个值是否严格相等(全等/===)

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

 2、Object.assign(目标对象,原始对像)  作用:将源对象的属性赋值到目标对象上

var obj1 ={
        a:1
    }
    var obj2 = {
        b:2
    }
    console.log(Object.assign(obj1,obj2));  //Object  a:1  b:2
// 对象深拷贝
    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.setPrototypeOf()  作用:获取一个对象的prototype属性

function Person(){}
    Person.prototype.name="person"
    Person.prototype.age = 28
    var p1 = new Person()
    console.log(Object.getPrototypeOf(p1));  //{name: 'person', age: 28, constructor: ƒ}

4、Object.setPrototypeOf()  作用:创建实例化对象, 设置一个对象的prototype属性

Object.setPrototypeOf(p1,{
        name:"name",
        say(){
            console.log("huishuohua");
        }
    })
    console.log(Object.getPrototypeOf(p1));  //{name: 'name', say: ƒ}

5、Object.values()  作用:获取对象的属性值,,Object.keys()  作用:获取对象的属性名

   console.log(Object.values(obj1));  //[1,2]

    console.log(Object.keys(obj1));  //["a","b"]

函数的使用

在函数中,传的参数为false null undefined 0 ""  时走"||"后边

 function fn(name) {

        var name = name || "zs"

        console.log(name);

    }

    fn()  //zs

    fn("zs")  //zs

    fn(false)  //zs

    fn(true)  //true

    fn(null)  //zs

    fn(undefined)  //zs

    fn(0)  //zs

    fn("")  //zs
    function fn2(name) {

        var name = name ?? "zs"

        console.log(name);

    }

    fn2()  //zs

    fn2("zs")  //zs

    fn2(false)  //false

    fn2(true)  //true

    fn2(null)  //zs

    fn2(undefined)  //zs

    fn2(0)  //0

    fn2("")  //
    function fn3(name = "ww") {

        console.log(name);

    }

    fn3()  //ww

 rest 参数   意思为“剩下的部分”

function fn4(x, ...rest) {

        console.log(...rest);  //3,4,5,6

        console.log(x);  //2

        console.log(arguments[1]);  //3

    }

    fn4(2, 3, 4, 5, 6)

    扩展运算符   ...

    //1.遍历数组

var arr=[1,2,3,4,5]

    console.log(...arr);  //1 2 3 4 5 6

    // 2.当做数组中的元素   

 var arr2 = [1, ...arr,6]

    console.log(arr2);  //[1,1,2,3,4,5,6]

    // 3.数组的深拷贝(重点)   

 var arr3= [...arr]

    arr3.unshift(0)

    console.log(arr3);  //[0,1,2,3,4,5]

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

    // 4.函数中的参数   

 function fn7(x,y,z,m){

        console.log(x,y,z,m);  //1 2 3 4

    }

    fn7(...arr)

    // 5.与结构赋值连用   

var [x,y,z,m] = [...arr]

    console.log(x,y,z,m);  //1 2 3 4

    // 6.将伪数组转换成真正的数组   

var str = "我们都是好孩子"

    console.log([...str]);  //['我', '们', '都', '是', '好', '孩', '子']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值