zoukankan      html  css  js  c++  java
  • 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对象)


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

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


查看全文
  • 相关阅读:
    什么是根文件系统
    构建基本的嵌入式Linux根文件系统
    “文件系统”与“根文件系统”详解
    C#中NameValueCollection类用法详解
    别把西红柿连续种在同一块地里
    asp.net 服务器控件的 ID,ClientID,UniqueID 的区别
    不要为框架作过多的假设
    构件技术
    asp.net中控件id,clientid,uniqueid的区别
    系统架构图怎么画
  • 原文地址:https://www.cnblogs.com/lifexy/p/14538280.html
  • Copyright © 2011-2022 走看看