• JavaScript 隐式类型转换


    JavaScript 隐式类型转换

    原文:https://blog.csdn.net/itcast_cn/article/details/82887895 

    · 1.1 隐式转换介绍

    · 1.2 隐式转换规则

    · 1.3 坑一:字符串连接符与算术运算符隐式转换规则混淆

    · 1.4 坑二:关系运算符:会把其他数据类型转换成number之后再比较关系

    · 1.5 坑三:复杂数据类型在隐式转换时会先转成String,然后再转成Number运算

    · 1.6-坑四:逻辑非隐式转换与关系运算符隐式转换搞混淆

    1.1-隐式转换介绍

    · 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。

            o 这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换

    · 例如1 > "0"这行代码在js中并不会报错,编译器在运算符时会先把右边的"0"转成数字0`然后在比较大小

    1.2-隐式转换规则

    1. 转成string类型: +(字符串连接符)

    2. 转成number类型:++/--(自增自减运算符) + - * / %(算术运算符) > < >= <= == != === !=== (关系运算符)

    3. 转成boolean类型:!(逻辑非运算符)

    1.3-坑一:字符串连接符与算术运算符隐式转换规则混淆

    · 常见面试题如下

    · 原理分析

    1.4-坑二:关系运算符:会把其他数据类型转换成number之后再比较关系

    常见面试题如下

    · 原理分析

    1.5-坑三:复杂数据类型在隐式转换时会先转成String,然后再转成Number运算

     

    · 原理分析

    1.6-坑四:逻辑非隐式转换与关系运算符隐式转换搞混淆

    · 前方高能,请注意~

    o 空数组的toString()方法会得到空字符串,而空对象的toString()方法会得到字符串`[object Object]` (注意第一个小写o,第二个大写O哟)

    · 常见面试题

     

    · 原理分析

     

    附:JavaScript 真值表

    在平常的习惯中,我们应该尽可能的使用 === 而不是 ==。同时,可以选择使用 typeof 或者 ts 来避免强制类型转换的错误。

    ============== End

  • 相关阅读:
    【马化腾如何工作】
    NOKIA格机方法
    C和C++资源
    JSP/Servlet 中的汉字编码问题
    好听力网站
    GRE单词法
    Visual Studio 2008的一些小技巧
    从键盘输入一个字符串,将其中的大写字母变小写字母,小写字母变大写字母,并输出 。
    中图文分类号 TP自动化技术、计算机技术
    保护您眼睛视力 对Win7/Vista/XP作如下设置
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/10214939.html
Copyright © 2020-2023  润新知