JavaScript基础(一)

JS基础知识之数据类型(上)

写在前面的话:

    此文章转自个人博客BlackBlood:leo-cat.github.io
    最近在刷《JavaScript高级程序设计》这本书以巩固JS基础,为了保证学习质量专门设置了"JavaScript基础"这个专题,而这篇博文是这个专题的第一章,复习的是JS的数据类型方面的基础知识。
复制代码

关于JavaScript的数据类型

ECMAScript的数据类型:

JavaScript的数据类型主要分为两大类:简单数据类型(也称 基本数据类型 )和 复杂数据类型。 在简单数据类型和复杂数据类型下又有细分,在这里直接放一张知识框架图:

typeof

typeof这个函数的功能是用于检测变量的数据类型,这个函数所得到的返回值的数据类型则是string(字符串),此返回值的值可取:FunctionObjectNumberStringUndefined,以及 Boolean typeof函数的语法为: typeof 变量typeof(变量)

Undefined

当变量未被赋值时,其变量数据类型为undefined

    var a;
    console.log(a);      //undefined
复制代码

当然,我们可以显示地把一个变量设置为undefined

    var a = undefined;
    console.log(a);      //undefined
复制代码

不过,一般来说不存在需要显示地把一个变量设置为 undefined 值的情况,也不推荐这种做法

Null

null值代表空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将改变量初始化为null而不是其他值 something important: undefined值是派生自null值的,所以undefined==null的返回结果是true

Number

Number数据类型表示整数和浮点数。其中还有一个特殊的数值:NaN(非数值) 任何涉及NaN的操作(例如NaN/100)都会返回NaN,且NaN与任何值都不相等,包括NaN本身

**isNaN(变量)**这个函数是用于检测变量是否是 “非数值” ,其返回结果为布尔型

  • isNaN()对接受的数值会先尝试进行数值转换,再检测是否为非数值
    var a = "213";
    console.log(isNaN(a));                 //false
复制代码

今天,刷高程的时候遇到了一个很有趣的问题,这个问题直接暴露了我前端基础的薄弱(QwQ) 这个问题是这样的:如果我将一个变量赋值为null,请问用isNaN()检查此变量会返回什么值? 答案如下:

    var a = null;
    console.log(isNaN(a));                 //false
复制代码

原来,使用isNaN()检查变量时,null会被转换为数值0

关于数值转换

有三个函数可以将非数值转换为数值,它们是:Number()parseInt()parseFloat()

  • Number()是将一个值强制转换为数值类型,它可以用于任何数据类型 比如:

      var a = true;
      console.log(Number(a));                // 1
    复制代码
      var b = "123";
      console.log(Number(b));                // 123
    复制代码

    但是,请注意一下这种情况:

      var c = "123abc";
      console.log(Number(c));                // Number()是无法转换含有字母的字符串的,所以最终它会返回一个 NaN
    复制代码
  • parseInt()和parseFloat()是专门用于把字符串转换成数值,它们会忽略字符串前面的空格,直至找到第一个非空格字符 parseInt()和parseFloat()只能转换第一个可解析字符的值为数值的字符串

      console.log(parseInt("lch0824"));      //NaN
    复制代码

    即若使用parseInt()或parseFloat()需以数字开头

      好了,这是前端JavaScript基础的数据类型部分的上半节,在下一节将会复习剩下的几种数据类型。
      五一小长假即将过去,有没有好好利用这个小假期呢,反正我是没有2333。BlackBlood 2.0版本的更新可能要推迟到五月底了QwQ
      因为本人是个计算机大一新生,上大学以前完全没接触过计算机技术,是个纯小白。所以技术博客如有错误还望各位及时指出,QQ邮箱:[email protected]
    复制代码

你可能感兴趣的:(JavaScript基础(一))