JavaScript总结2

1.数值检测

    1.isNaN 用来检测变量是否是一个数字 是数字返回false 否则返回true

    2.isFinite 用来检测是否为有效数值

2.JS数字最值

    console.log(Number.MIN_VALUE); //最小数

    console.log(Number.MAX_VALUE); //最大数

3.null 和 undefined 关系

    undefined派生自null

    相等 会将数据类型转换为同一类型再去比较

        console.log(null == undefined); //true

    全等 先比较数据类型 数据类型不一致直接返回false

        console.log(null == undefined); //false

4.深浅拷贝

    深拷贝 拷贝值

    浅拷贝 拷贝地址

5.算术运算符

    + - * / % 算术运算符

    + 右侧其他数据类型会转换为number进行计算 是字符串做字符串拼接

    除了+号,其他字符都可以隐式将字符串转为数字运算

6.一元运算符 ! ++ -- delete + - typeof

    + 取正数

    - 取负数

    在其他数据类型前加+可以隐式将其他数据类型转换为number类型

        console.log(+true,typeof +true);

    字符串拼接 需要两个或者两个以上操作数

        console.log(1 + 2 + 3 + '4');

    递增 前++  先自增 再赋值

        var a = ++num;

    递增 后++ 先赋值 再自增

        var a = num++;

    !取反

        console.log(!null);//true

    delete

        可以删除对象属性 删除数组元素

            var obj = {name:'zhangsan',age:12}

            删除对象属性

            delete obj.name;

            console.log(obj);

        数组元素可以是任意数据类型

            arr[index] 访问数组元素 index下标 索引

            var arr1 = [true,null,undefined,{name:'zhangsan'},10,function(){},Symbol('name')];

            删除数组元素

            delete arr1[5];

            console.log(arr1)

6.隐式转换 +- *  / % ==

    + 运算符 两个操作数有一个是字符串 就是字符串拼接

        console.log(1 + '2');

    - / * % 两个字符串有一个是其他数据类型 就是隐式转换为number进行运算

        console.log(1 - undefined);

    将其他数据类型转为number类型

        console.log(+[],+null,+true,+false,+"",+'hello');

   

    ==

        如果两个操作数 一个是数字 一个是字符串 隐式将字符串转为数字进行比较

        如果两个操作数 一个是数字 一个是布尔值 隐式将布尔值转为数字进行比较

        如果两个操作数 一个是布尔 一个是字符串 隐式将它两转成数字进行比较

   

    引用数据类型隐式转换

        将引用数据类型转换为原始值 基本数据类型

        引用数据类型中的 toString() valueOf()

            console.log([].toString(),[].valueOf(),typeof ([].toString()),typeof ([].valueOf()));//"" [] string obejct

            console.log({}.toString(),{}.valueOf(),typeof ({}.toString()),typeof ({}.valueOf()));

            console.log([] + [],typeof ([] + []),'转换1');//"" toString()

            console.log([] + {},'转换2');//[object Object] // toString()

            console.log({} + {},'转换3');//[object Object][object Object]

        对于 console.log(obj.valueOf() +10);

            默认调用toString()   若手动改成valueOf(),还会调用toString()

       

        重写toString()和valueOf()

            如果重写了toString()方法,调用toString()

            如果重写了valueOf()方法,调用valueOf()

            如果重写toString()和valueOf()方法,调用valueOf()方法

7.赋值运算符

    += -= *= /= %=

8.比较运算符

    == 会将数据类型转换为同一类型再去比较

        console.log(null == undefined); //true

    === 先比较数据类型 数据类型不一致直接返回false

        console.log(null == undefined); //false

        console.log([]=[]); false

        console.log({}={}); false

        console.log(![]=[]); true

            !优先级高 ![]=false

            右侧[]转为原始值 +[] =0

    进行引用数据类型 ==  === 比较是一样的,只比较地址

    !=

        用法等同于==

    !==

        先比较数据类型 数据类型不一致直接返回true

       

    > <

        true转换为数值是1 false转换为数值是0

            console.log(1 > true); // 结果为false

        任何值和NaN作比较结果都是false

            console.log(1 > 'hello'); // 结果为false 任何值和NaN作比较结果都是false

            console.log(1 > '9/0');  //正无穷字符串/NAN和数字比较 false

        正无穷数字 和数字比较 表达式成立true 表达式不成立false

            console.log(1 < 9 / 0);

9.逻辑运算符 与 或 非

    && 同真才真 有假就假

        如果两个操作数第一个是假的 返回第一个操作数 null '' NAN undefined 都是假的操作数

        如果两个操作数第一个是真的 返回第二个操作数

            console.log(null && 'hello');

        并且 既满足前面表达式 又满足后面表达式

            if (a >= 10 && b < 6) {console.log('满足条件');} else {console.log('不满足条件');}

    || 或者 有真就真

        或者操作时 如果第一个操作数是假的 返回第二个操作数

        如果第一个操作数是真的,返回第一个操作数

            满足其中一个条件 就能进入条件语句

                if (a < 10 || b > 3) {console.log('满足条件');}else {console.log('不满足条件');}

10.基本数据类型和引用数据变量的区别

    1.基本数据类型的变量和值保存在栈区

    2.引用数据类型变量和引用地址保存在栈区,内容保存在堆区

    3.基本数据类型赋值时值传递,引用数据类型赋值就是引用地址的传递


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值