2.qml-ECMAScript_02(原始值类型、通用转换方法)

在上章学习了:1.qml-ECMAScript学习(语法、关键字、原始值和引用值)

本章学习:

  • 4种基础类型Undefined 、Boolean 、Number 、String 
  • var.toString()  :  转换成字符串方法
  • parseInt(var)  :  解析整数方法
  • parseFloat(var)  :  解析浮点数方法
  • Boolean(var)  :  转换成bool类型,如果var至少是有一个字符的字符串、或者非 0 数字或对象时,将返回true
  • Number(var)  :  转换为数字方法
  • String(var)  :  转换为字符串方法

Undefined类型

Undefined 类型只有一个值undefined。当声明的变量未初始化时,该变量的默认值是 undefined

var temp;
console.log(typeof temp);  // undefined
console.log(temp);         // undefined

Null 类型

Null类型只有一个值null,比如当我们需要释放一个引用对象时,就需要用null来释放

var arr = new Array(5);  // 只要是new出来的对象都是引用值,所以arr是个引用对象
arr = null;              // 释放一个引用对象

Boolean 类型

Boolean类型只有两个值false和true,需要注意的是true表示的是非0的意思.而false表示的是0的意思.

所以true || false = true,true && false = false

var bFound = true || false;
var bLost = true && false;
console.log(bFound,bLost);  // true false

Number 类型

要定义浮点值,必须包括小数点和小数点后的一位数字(例如1.0)。

这被看作浮点数字面量。对于非常大或非常小的数,可以用科学计数法表示浮点数.例如:

var fNum1 = 5.618e7  // 5.618 x 107
var fNum2 = 8-e17    // 0.00000000000000008

Number提供的几个特殊值

  • Number.MAX_VALUE : 定义了数值最大值,我这里的值为1.7976931348623157e+308
  • Number. MIN_VALUE : 定义了数值最小值,我这里的值为5e-324
  • Number.POSITIVE_INFINITY: 无穷大,值为Infinity
  • Number.NEGATIVE_INFINITY: 无穷小,值为-Infinity

并且提供了2个方法判断Number是否有效

  • isFinite(number) : number如果是无穷的,则返回false,有穷则返回true
  • isNaN(val) :  判断val是否非数字,返回true,则表示非数字

示例如下:

          var maxValue = Number.MAX_VALUE;
                var minValue = Number.MIN_VALUE;
                console.log(maxValue)   // 1.7976931348623157e+308
                console.log(minValue)   // 5e-324
                console.log(Number.POSITIVE_INFINITY) // Infinity
                console.log(Number.NEGATIVE_INFINITY) // -Infinity
 
                if (isFinite(10000)) {
                    console.log("10000 = 有穷数")  //  10000 = 有穷数
                }
                var value = maxValue * maxValue;
                if (!isFinite(value)) {
                    console.log("maxValue * maxValue = 无穷的数") // maxValue * maxValue = 无穷的数
                }
                var value2 = "0.0.1324";
                console.log( isNaN("blue"))    // true
                console.log( isNaN(value2))    // true
                console.log( isNaN("666"))     // false
                console.log( isNaN(1000))      // false

String 类型

在ECMAScript中,单引号和双引号一样,都可以用来字符串或者字符上,比如:

var sColor1 = "red";
var sColor2 = 'red';

toString()转换成字符串

ECMAScript 对所有对象提供了 toString() 方法,对于Number类型,默认打印的是十进制,也可以通过传参的方式来改变进制,比如:

           var color = "red";
                var visible = true;
                var value1 = 0.1324;
                var value2 = 10;
                console.log( color.toString())    // red
                console.log( visible.toString())  // true
                console.log( value1.toString())   // 0.1324
                console.log( value2.toString(2))  // 打印二进制 1010
                console.log( value2.toString(8))  // 打印八进制 12
                console.log( value2.toString(16)) // 打印十六进制 a

parseInt(var)和parseFloat(var)解析字符串到数字

ECMAScript提供了 parseInt(var) 和 parseFloat(var)方法,用来解析字符串转换为数字,如果不能转换则返回NaN.

parseInt()解析时会去检查字符串是否有效,比如"1010",就会作为十进制进行解析.

"0xFF"作为十六进制解析.而"FF"则会返回NaN.如果要正确解析其它进制,可以通过第二个参数来改变,然后返回的是个十进制值.

示例如下:

             console.log( parseInt("red"))    // NaN
                    console.log( parseFloat("true"))  // NaN
                    console.log( parseInt("11.1324"))     // 11
                    console.log( parseFloat("11.1324"))   // 11.1324
                    console.log( parseInt("0010"))     // 10
                    console.log( parseInt("0xFF"))     // 255
                    console.log( parseInt("FF"))       // 由于没有0x开头所以动态解析失败,打印"NaN"
                    console.log( parseInt("1010",2))   // 由于都是数字,则解析十进制,打印"10"
                    console.log( parseInt("10",8))     // 解析八进制,打印"8"
                    console.log( parseInt("FF",16))    // 解析十六进制,打印"255"
 
                    console.log( parseInt("1AAA1.1324"))  // 遇到非数字停止解析,打印"1"
                    console.log( parseFloat("11.13.AAA4"))   // 遇到非数字停止解析,打印"11.13"

Boolean(var) 强制类型转换成布尔类型

ECMAScript提供了Boolean(var)方法.把给定的值强制转换成 Boolean 型

当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。

如果该值是空字符串、数字 0、undefined 或 null,它将返回 false。

示例如下所示:

           console.log(Boolean(""));             //false - 空字符串
                console.log(Boolean("hello"));        //true - 非空字符串
                console.log(Boolean(50));             //true - 非零数字
                console.log(Boolean(null));            //false - null
                console.log(Boolean(0));               //false - 零
                var onj= new Object;
                console.log(Boolean(onj));             //true - 对象

Number(var)强制类型转换成数字

ECMAScript提供了Number(var)方法. 把给定的值强制转换成数字(可以是整数或浮点数)

Number()转换的值如果是字符串,那么字符串必须得是完整值,和 parseInt() 和 parseFloat() 方法不一样,而不是部分值.

而对于其它类型转换也有所不同,示例如下:

           console.log(Number(false));     // 0
                console.log(Number(true));      // 1
                console.log(Number(undefined)); // NaN
                console.log(Number(null));      // 0
                console.log(Number("1.2"));    // 1.2
                console.log(Number("12"));     // 12
                console.log(Number("1.2.3")); // NaN
                console.log(Number(50));      // 50 

String(var)强制类型转换成字符串

ECMAScript提供了String(var)方法. 把给定的值强制转换成字符串.

和toString()方法类似,但是对于 null 和 undefined 值强制类型转换可以生成字符串而不引发错误,示例如下:

          console.log(String(null));    // "null"
                var oNull = null;
                console.log(oNull.toString()); // 会引发错误,null没有toString()方法

未完待续,下章我们来学习3.qml-ECMAScript(Object基类对象、String对象)


人间有真情,人间有真爱。

如果您喜欢这里,感觉对你有帮助,并且有多余的软妹币的话,不妨投个食吧,赞赏的时候,留下美句和你的博客地址哦~   戳这里看谁投食了


【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/lifexy/p/14538280.html