JS中的数据类型

Posted 赵颖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的数据类型相关的知识,希望对你有一定的参考价值。

JS中的数据类型分为基本数据类型和引用数据类型;

  基本数据类型包括number、string、boolean、null、undefined;

  引用数据类型包括对象数据类型object和函数数据类型function

  基本数据类型是按照值来操作的,引用数据类型是按照引用地址来操作的。

  1. number(数字)
    • number中包含 正数、负数、0、小数、NaN(NaN:not a number)
    • Js中等号的三种情况
      • =       赋值  
      • ==    比较,是判断左右两边的值是否相等   
      • ===  绝对比较,是判断左右两边的值是否绝对相等
    • NaN==NaN  --》false

  number中的方法

  方法一:isNaN(要检测的值):is not a number

     作用:检测一个值是不是有效数字,如果不是一个有效数字,返回true,如果是有效数字,返回false; 

    console.log(isNaN(123));  //false
    console.log(isNaN(‘haha‘));  //true

  方法二:强制转换:Number(要转换的值)--》将其他数据类型转换为number数据类型

    如果要检测的值是其他数据类型,会默认执行Number()转换为数字,然后再判断

  方法三:非强制转换:parseInt/parseFloat

   parseInt(要转换的内容); 从左到右依次查找,只要遇到一个字符不是数字,就停止查找;如果是字符串,字符串中第一个字符不是数字,直接返回NaN

  parseInt(‘12px‘);  //12

   parseFloat 和parseInt一样,只不过可以多识别一个点

    parseFloat(‘12.34px‘);  //12.34
    parseFloat(‘12.34.5px‘);  //12.34
    parseFloat(‘12a3c‘);  //12
    parseFloat(‘1a2.3‘);  //1
    parseFloat(‘a12.4px‘);  //NaN
    parseFloat(‘12a12.5px‘);//12

 

   注意:强制转换和非强制转换的共同点:只要第一个字符不是有效数字 就直接返回NaN

      方法四:toFixed(n)   保留小数点后面n位

  var num = 3.141592654;
  console.log(num.toFixed(2));//->3.14

 

  2.boolean:只有两个值 true false 

     规律:0 NaN ‘’ null undefined 这五个值是false,其余都是true 

       执行Boolean()、!、!! 这三种方法都是将其他的数据类型转换为布尔类型 

      ! 一个叹号 取反(先将这个值转换为布尔类型 【执行  Boolean();】,然后再取反)

      !! 取反再取反 相当于直接转换为布尔类型 和执行Boolean()方法 一样

    如果条件判断中只有一个单独的值,那它的意思是:首先把这个值转换为布尔类型,然后看是真还是假,是的真的话条件成立,反之条件不成立

  3.null和undefined

  null表示"没有对象",即该处不应该有值。典型用法是:

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。

Object.getPrototypeOf(Object.prototype)// null

 

  undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var  o = new Object();
o.p // undefined

var x = f();
x // undefined

 

以上是关于JS中的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

Chrome-Devtools代码片段中的多个JS库

Node.js JavaScript 片段中的跳过代码

(转) Java中的负数及基本类型的转型详解

XSS:如何从 C# 中的字符串中删除 JS 片段?