JavaScript 数据类型 及 转换

二次信任 提交于 2020-02-29 17:11:36

JavaScript 数据类型 及 转换


 什么是数据类型

  数据类型是数据在内存中的储存结构。

  不同类型的数据,具有不同的特性,可执行不同的操作。

  

  

 number 类型 - 数字类型

  数字类型,专门保存所有数字的数据类型。

  既可以表示整数,也可以表示浮点数,一个数字占8个字节。

  数值的大小和存储空间无关。

     - 注意:默认不加引号的类型全是数字类型。

常用方法

  - number.toString(2/8/10/16...);   // 以某种进制转换数字

  - number.toFixed(2....);   // 四舍五入到小数点后几位

 

案例代码 number.toString(2/8/10/16...);

<script>
    var num1 = 7;
    console.log(num1.toString(2));  // 将num1转换为二进制,toString括号中写几就是几进制。
</script>

     

案例代码  number.toFixed(2....);

<script>

     var price = 1.6;
     var money = 2;
     var back = money - price;
     console.log(back.toFixed(2)); //四舍五入到小数点后两位

</script>

    

string 类型  -  字符串类型

  字符串类型,专门保存一系列文本字符的数字类型。

  以引号包裹,单引号或双引号均可。

  一个数字字符或英文字符占1个字节。

  一个汉字占两个字节。

  所有字符串的文字都采用 Unicode 编码。

  特殊字符需要转义: \" 双引号;      \' 单引号;      \n 换行;       \t Tab(制表符);

  - 被引号包裹的一切都是字符串类型。

 

字符串代码案例

<script>
    var str1 = "welcome";
    var str2 = "123";
    var str3 = "王佳伟";
</script>
    console.log("专门保存一系列的\"文字字符\"的数据类型");
    console.log("专门保存一系列的\n文字字符的数据类型");
    console.log("专门保存一系列的\t文字字符的数据类型");

 boolean 类型 - 布尔类型 

  布尔类型,表示真或者假。

  仅有两个值:true / false。

  运算中, true =1  , false  = 0 。

 

代码案例

<script>

    var isHot = true;
    var isCool = false;

</script>

 undefined 和 null 

undefined

  - 表示“不存在该数据”。

  - 变量声明后从未赋值,或者对象的属性不存在。

null

  - 表示“没有数据”。

 

 案例代码

<script>

    var people = undefined;
    var box = null;
    
</script>

 数据类型转换

  数据类型转换,就是讲不想要的数据类型,转换为想要的数据类型。

  JavaScript 是一种 弱类型 的脚本语言。

 

  弱类型的特点:

    - 声明变量时不必提前指定变量的数据类型。

    - 变量有赋值操作确定数据类型。

    - js 会根据自己的需要,动态转变数据类型。

 

  查看当前数据的类型

    typeof(data)

 

查看当前数据类型的代码案例

<script>

    var people = "wjw"
    var num =123 ;
    var data = true;
    console.log(typeof (people),typeof (num),typeof (data));

</script>

      

案例代码

<script>

    var people = "wjw"
    var num =123 ;
    var data = true;
    console.log(typeof (people),typeof (num),typeof (data));

    data ="100";
    num = "true";
    people =123;
    console.log(typeof (people),typeof (num),typeof (data));

</script>

    

  结论:变量由赋值操作确定数据类型。

 

数据类型转换 - 隐式转换

  隐式转换,是数据在计算过程中,自动完成的转换。

 

隐式转换代码案例

<script>
    var str = "3";
    var num = 2;
    var bool =true;

    console.log(
        str - num ,  // 1
     str * num , // 6
     str / num // 1.5 
    );

</script>

    

代码案例

<script>
    var str = "3";
    var num = 2;
    var bool =true;

    console.log(
        str + num   //  32 
    );
</script>

    

 

总结:以算数计算为例

  - 数字 + 字符串 :数字转换为字符串。

  - 数字 + 布尔值:true 转化为1 ,false 转化为0 。

  - 字符串 + 布尔值:布尔值转化为字符串的 true 或 false 。

  - 布尔值 + 布尔值 :布尔值转化为数值 1 或 0 。

 数据类型转换 - 强制类型转换

  凡是从页面获得的值,都是字符串类型,所以下面的例子,用户输入自己现在的薪资,计算薪资加1000以后的值,会出问题!

<script>
    var salary = prompt("请输入现在的薪资:")  // 弹出一个输入框,假设输入200
    salary = salary + 1000;  
    console.log(salary);
</script>

    

转为 number 类型

  - Number(x) :可将纯数字组成的字符串或Boolean值转换为number。

  - parseInt(str) :将 string 类型的数据转化为number ,去掉小数部分,下取整。

  - parseFloat(str) :将string类型的数据转化为 number,保留小数部分。

  parseInt() 和 parsFloat() 要求数字字符开头,可以去掉数字后面的非数字字符。

  如果转化不了数字,结果为 NaN (Not a number 缩写),NaN 参与任何数计算,结果依然是 NaN。

 

开始例子修改

<script>
    var salary = prompt("请输入现在的薪资:")  // 弹出一个输入框
   // salary = parseInt(salary) + 1000;  // 假设现在薪资输入 200
   // salary = Number(salary) + 1000;
    salary = parseFloat(salary) + 1000;
    console.log(salary);
</script>

    

parseInt 代码案例 数字字符开头,可以去掉数字后面的非数字字符

<script>
    var width ="100px";
    width = parseInt(width) + 50 ;
    console.log(width)  //  150
</script>
<script>
    var width ="13点15分";
    width = parseInt(width)  ;
    console.log(width)
</script>

    

<script>
    var width ="今天16";
    width = parseInt(width)  ;
    console.log(width)
</script>

    

<script>
    var width =true;
    width = parseInt(width)  ;
    console.log(width)
</script>

    

 

 注意:Number() 一般不会主动使用,因为隐式转换默认就是用的 Number() 方法,我们自己编程主要是用 parseInt()  和  parseFloat() 方法进行转换。

转为 string 类型

  - String(x) :将任意内容转为字符串。

  - x.toString() :将任意内容转为字符串,除 null 和 undefined 之外。

 

案例代码

<script>
    var n =20 ;
    console.log(String(n));
    console.log(n.toString());
</script>

    

 

<script>
    var n;
    console.log(String(n));
    console.log(n.toString());
</script>

    

 转换为 Boolean 类型

   - Boolean(x) :将任意类型的值转为 Boolean 类型  true / false。

  只有五个值会被转为 false:

    0、  ""、  null、  undefined、  NaN

   其余的值,全部转化为 true。

 

 结束!收工~!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!