JavaScript高级程序设计之数据类型

  首先讲讲关于js文件放置的问题,如果把<script>放在head标签处,浏览器会先加载完该处的所有不使用defer属性的js文件再呈现页面的内容(浏览器在遇到body标签时才呈现内容),如果需要加载很多js文件的话,在呈现页面时会出现明显的延迟,延迟期间浏览器窗口将是一片空白。为了解决这一问题可以在最后才引入js文件,body标签结束之前。

  JavaScript的核心实现了ECAMScript定义的标准,ECAMScript定义了5种简单的数据类型:Undefined、Null、Boolean、String、Number,还有一种复杂数据类型Object。可用typeof操作符判断数据类型。

  1、Undefined类型:

  Undefined只有一个值,undefined,当使用var声明变量但未对其进行初始化时默认会给该变量初始化,这个值就是undefined。

  2、Null是第二种只有一个特殊值得数据类型null。

  3、Boolean类型:关于boolean类型需要注意以下这些类型转换成boolean类型时是true还是false。

数据类型    转换为true的值    转化为false的值

Boolean    true          false

String     非空字符串       ""(空字符串)

Number    任何非零数值      0和NaN(Not a Number)

Object      任何非空对象      Null

Undefined               undefined

  4、数值类型:

  4.1 关于浮点数值的计算,因为是基于IEEE754,所以可能会存在误差。所以不能把两个浮点数相加等于某值用作if的条件表达式。

1 if(a + b == 0.3){
2 alert("hehe");
3 }

  如果a、b分别等于0.1和0.2,则这个alert语句不会执行,因为这个a+b = 0.3000000000001......

  4.2 isNaN():(Not a Number)只要是数字或者能够转换成数字都会返回false。

  4.3 数值的转化,有三个方法Number()、parseInt()、parseFloat().

  Number()较复杂不常用,在处理整数时常用的是parseInt()。parseInt方法在将字符串转换成数字时,会忽略掉字符串前的空格,直到找到第一个非空字符串,如果不是数字或者负号,则会返回NaN,如果第一个是数字字符,则会继续解析第二个字符,直到解析完所有数字字符或者碰到非数字字符停止。parseInt提供了一个类似java的重载方法(javascript没有重载),第二个参数传入需要转化的进制,就可以将数值转换成相应进制的值。

1 var num1 = parseInt("1234blue");    //1234
2 var num2 = parseInt("1234blue123"); //1234
3 var num3 = parseInt("a1234blue123"); //NaN
4 var num4 = parseInt(""); //NaN
5 var num5 = parseInt(22.5); //22
6 var num = parseInt("AF", 16);

  parseFloat只解析十进制,没有提供解析成8进制等的类似java重载方法。

  5、String类型

  toString():转换成String类型的方法,数值、布尔值、对象、字符串都有toString方法,null和undefined没有

  String():   如果有toString方法则调用toString方法,没有,null 输出“null”  undefined 输出“undefined”。

  6、Object类型

上一篇:[吐槽]webpack4


下一篇:Java程序员应该了解的10个面向对象设计原则