• java script-数据类型转换&&运算符


    一、数据类型的转换方法:

    1)强制转换:

    1.字符转数值:

    parseInt(要转换的数据或变量)

    ·规则:

    从左向右依次检测,遇到第一个非数字的字符,停止转换;

    忽略小数点后所有的内容,其实是将小数点识别成了非数字;

    如果第一位就是非数字,直接NaN

    parseFloat(要转换的数据或变量)

    ·规则:

    从左向右依次检测,遇到第一个非数字的字符,停止转换;

    可以识别小数点;

    如果第一位就是非数字,直接NaN

    Math.round(要转换的数据或变量)

    ·规则:

    Math.round不是专门做字符转数值的

    专门做取整的,取最近的整数,顺带着给可以实现转换

    严格转换:只要出现非数字,那么就是NaN;

    Number(要转换的数据或变量)

    ·规则:

    Number不是专门做字符转数值的

    系统内置的构造函数,用来创建数值对象,后话...顺带着给可以实现转换,直接转换;

    严格转换:只要出现非数字,那么就是NaN;

    2.数值转字符:

    ①数值变量.toString()

    ·规则:直接转换,相当于加个引号;

    ②数值变量.toFixed(n)

    ·规则:保留n为小数。

    3.其他转布尔:

    ·数值转布尔:非0为true,0为false;

    ·字符转布尔:非""为true,""为false;

    ·数组、函数和对象转布尔都为true;

    ·undefined、NaN、null转布尔都为false;

    4.三大特殊数据:undefined,null,NaN

    1.NaN:非法的数值运算得到的结果

    1)特点:

    ①是一个数值型的数据,但是不是一个数字;

    ② NaN不等于任何值,和任何数据都不相等,NaN不等于NaN。

    2.undefined是:未赋值,类型是undefined;null是:空,类型是object

    1)特点:

    ①undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据;

    ②undefined被Number转成NaN,null被Number转成0。

    3.判断三大特殊的值的方法:

    1)NaN可以使用isNaN()来判断:

    ①方法:isNaN(要判断的值或变量);

    ②案例:var a = NaN;

             console.log(isNaN(a)); // 结果是布尔值:true为是的,false为不是。

    2)undefined`可以使用`typeof`判断:

    ①方法:typeof 要判断的值或变量;

    ②案例:var b = undefined;

             console.log( (typeof b) === "undefined" );// 结果是布尔值:true为是,false为不是;

    3)null需要配合typeof和关系运算符判断:

    ①方法:typeof 要判断的值或变量 === "object"&&要判断的值或变量 == null

    ②案例:var c = null;

        console.log( (typeof c) === "object" );

        console.log(c === null);

    2)隐式转换:

    1.情景和规则:

    ①算数运算:

    ·`+`号两边只要出现字符,结果必然为字符;

    ·`-``*``/``%`的结果必然是数值(严格类型转换)。

    ②关系运算:

    ·`>``<``>=``<=``!=``==`两边只要出现数值,那么另一边也会转成数值,进行比较。(严格类型转换)

    二、数据的运算符:

    1)算数运算符

    `+` 加号,加法

      · 当加号两边都是数值型数据时,是数学的加法运算;

      ·任意一边是字符,那么就变成了拼接,拼接就是将两个数据,直接组合起来;

    -`-``*``/``%`

      ·就是正常的数学运算;

      ·就算两边不是数值,也会默认转成数值,进行运算;

      ·如果某个数据不能转成数值,会得到`NaN`

    2)关系运算符的结果是布尔值:

    `>``<``>=``<=`

    ·只要有一边出现数值,都是数值的**比较规则**

    ·如果都是字符,才是字符的**比较规则****逐位比较**,得到结果,就停止

    `!=``==`

    ·会发生隐式类型转换,或者只比较大小,不比较类型

    `!==``===`

    ·不会发生隐式类型转换,不仅比较大小,还比较类型

    3)逻辑运算符:主要操作布尔值

    ①或(||)

    基础规则:两边只要出现true,结果就是true,必须都为false,结果才是false

    原理:

      如果左侧是true,那么就确定 或 的结果了,不再向右检测;

         如果左侧是false,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了。

    ②且(&&)

    基础规则:两边只要出现false,结果就是false,必须都为true,结果才是true

    原理:

      如果左侧是false,那么就确定 且 的结果了,不再向右检测;

      如果左侧是true,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了。

    ③非(!)

    基础规则:取反;

    作用:灵活利用非,实现其他转布尔。

    补:所有的隐式类型转换,仅仅发生在该数据被使用时,该数据还是原本的内容

    4)赋值运算符:

    ① “=

    ·将等号右侧的数据,存在左侧的变量中

    ·把右边的内容,放在左边的变量中

    ·如果左侧的变量,原本有值,那么会覆盖

    ②“+=,-=,*=,/=,%=

    ·先计算,再赋值(覆盖)

    5)一元运算符:

    ①自增: “++增加1

    补:前后之分

    ·前自增`++n`:先计算,后使用;

    ·后自增`n++`:先使用,后计算;

    ②自减:“--减少1

    补:前后之分

    ·前自减`--n`:先计算,后使用;

    ·后自减`n--`:先使用,后计算。

  • 相关阅读:
    Java面试题
    Mybatis插入数据返回自增主键
    SpringBoot前端给后端传list
    Mybatis学习—XML映射文件
    数据库基础——数据库事务的四大特性以及事务的隔离级别
    数据库基础——锁管理
    数据库基础——索引
    计算机网络面试核心
    蚂蚁金服电话面试问题
    京东架构
  • 原文地址:https://www.cnblogs.com/yh-3175339026/p/12747478.html
Copyright © 2020-2023  润新知