web前端学员笔记

代码报错不知道原因?看看你是否在类型的转换出了错

2019-06-02  本文已影响142人  特立独行的兔子_web


了解JavaScript中的五种基本数据类型与类型之间的转换

首先我们先来了解下五种基本类型都有哪些

基本数据类型: string number Boolean null undefined


1. 字符串 String

            var a = '内容';

            var a = "内容";

字符串特点:

        字符串一旦创建,它们的值不能改变, (要改变的话:先销毁原来的字符串,再使用新的字符串填         充变量)

2. 数字  Number

        var a = 1;

        var b = 124;

    (1)数字有整数,浮点数;

                 所谓的浮点数值,就是该数值中必须包含一个小数点,并且小数点后必须至少有一位数字

                由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点             数值转换为整数值

                        1. =》1

                        10.0 =》        10

    (2)范围从负无穷(-Infinity)到0 到正无穷(+Infinity);

               * Infinity是无法参与计算的;

               * 判断值是否超过JavaScript数值范围可以使用:

                    isFinite(num)

     (3) NaN :即非数值(Not a Number)是一个特殊的数值;

                 * NaN指的"不是一个数字",可以理解为"无效数值","失败数值", "坏数值";

                 * 用于指出数字类型中错误的情况:执行数学运算没有成功,这是失败后返回的结果;

                 * 任何涉及NaN的操作都会返回NaN;

                 * NaN与任何值都不相等;

                 * 判断是否"不是数值",参数为任意类型: isNaN();

3. 布尔  Boolean

        var a = true;

        var a = false;

    只有两个字面值: true 和 false

    在ECMAScript中所有的类型的值都有与这两个Boolean值等价的值

4. null  空

        var a = null;

        空对象指针      准备给对象用的坑

        null表示准备用来保存对象,还没有真正保存对象的值

        typeof检测null时会返回      "object" :

        最初在JavaScript最初实现中,JavaScript的值是由一个表示类型的标签和实际数值来表示的, 对象的类型标签是0,由于null代表的空指针,因此null的类型标签也成为了0,typeofnull就返回了object

5. undefined  未定义;

        var a = undefined;

        var a;

        准备给基本数据类型用的坑

        只有一个值,在使用var声明变量但还没有加以初始化赋值时,这个变量的值就是undefined

类型的转换

    (1) 转字符串:

                String(变量):

                    null与undefined可使用这个转型函数

var str = 'abc';var num = 234;var bool = true;var un = undefined;var nu = null;

console.log(String(num)); // '234'

console.log(String(bool)); // 'true'

console.log(String(un)); // 'undefined'

console.log(String(nu)); // 'null'

                变量.toString(2 || 8 || 10 || 16)

                  参数是基数(几进制);数值、布尔值、对象和字符串都有这个方法,null与undefined则没有

           数字转为字符串的特殊方法:

                数字.toFixed(位数)

                        保留小数点后几位,并采取四舍五入

  (2) 转数字:

             *   Number()

                    布尔值:   true - 1;     false - 0;

var bool = true;

console.log(Number(bool));     //1

var bool = false;

console.log(Number(bool));     //0

                    Null:  0

var nu = null;

console.log(Number(nu));     //0

                    Undefined:  NaN

var un = undefined;

console.log(Number(un));      //NaN

                    字符串:

                            只包含数字(前面携带正负号)

                            前导零会被忽略

                            识别浮点、整数、16进制(自动转为同等大小的十进制数值)

                            空字符串  - 0

                            除上述之外 均为NaN

var c = Number('1前端');      // NaN;

var c = Number('1');      // 1;

var c = Number('前端1');      // NaN;

              *  parseInt()   转为整数

                        忽略字符串前面的空格,直至找到第一个非空字符,

                        如果第一个字符不是数字字符或者正负号          返回 NaN

                        如果第一个字符是数字字符,parseInt会继续解析第二个字符,知道解析完所有后续字符                        或者遇到了一个非数字字符

                        字符串以'0x'开头且后跟数字字符,就会将其当作一个十六进制整数

                        字符串以'0'开头且后跟数字字符,则会将其当作一个八进制数来解析

                        空字符串 返回 NaN

                        提供第二个参数:转换时使用的基数(进制)

var a = parseInt('123.9前端');      //  123;

var a = parseInt('前端123');     //  NaN;

            *    parseFloat()   转为浮点数

                        第一个小数点是有效的,第二个小数点是无效的

                        只解析十进制,无第二个参数

                        十六进制式的字符串始终被转换为 0

var b = parseFloat('1239前端');     //  1239;

var b = parseFloat('1.9前端');     //  1.9;

var b = parseFloat('前端1.9');     // NaN;

  (3) 转布尔值:

                Boolean()

                      0,空字符串,NaN, undefined ,null 转布尔都为false

基本类型之间的转换是一个重点,一定要记清楚:

JavaScript是一种弱类型语言,其中的数据类型在不同情况下会发生隐性的转换,如果不清楚类型的转换,可能之后的代码报错都找不到原因。

上一篇下一篇

猜你喜欢

热点阅读