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

摘要:
您需要使用null来释放vararr=newArray(5);所以arr是一个引用对象arr=null//释放一个引用的对象布尔类型布尔类型只有两个值:false和true。注意,true表示非零,而false表示零。所以true||false=true,false=falsevarbFound=true ||false;

在上章学习了: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对象)

免责声明:文章转载自《2.qml-ECMAScript_02(原始值类型、通用转换方法)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇传奇装备物品文件名Ubuntu 安装 Courier New字体和雅黑consolas字体下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle 数据类型

一、Oracle数据类型 1.字符数据类型 CHAR 固定长度的字符串,可以存储字母数字值。长度可以是1到2000个字节。如果在定义时未指定大小,则默认占用一个字节。 如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2 用于存储可变长度的字符串或字母数字值。长度可以是1到4000个字节。定义该数据类型时,应指定大小。 与CHA...

MySQL的数据类型(一)

  每一个常量、变量和参数都有数据类型、它用来指定一定的存储格式、约束和有效范围。MySQL提供了多种数据类型、主要有数值型、字符串类型、日期和时间类型。不同的MySQL版本支持的数据类型可能会稍有不同。   数值类型:  MySQL支持所有标准SQL 中的数值类型、其中包括了严格数值类型、近似数值数据类型、并在此基础上做了一些扩展、增加了三种不同长度的整...

数据库(增、删、改、查)

数据库(增、删、改、查) 数据库: 三个层次:文件--服务--界面 (DBMS) 两种登录方式的设置:Windows身份登录;SqlServer身份登录。 如何设置SQLServer身份验证? 1.对象资源管理器右击--属性--安全性--SqlServer和Windows身份登录。 2.对象资源管理器--安全性--登录--sa--右击--属性--常规--...

C89标准和C99标准C11标准的区别

转载 C89标准和C99标准C11标准的区别 C99对C89的改变 1、增加restrict指针  C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型...

Python TypeError:not all arguments converted during string formatting

刚开始学python,对于print 的用法还不太熟练,所以会出一些比较低级的错误 TypeError:not all arguments converted during string formatting 用百度翻译翻译一下,不是所有参数都在字符串格式化期间转换 出现这个的原因是% 前后变量类型不一样 以判断是否闰年举例: 错误例子: 第一种方法,还...

JAVA中枚举类型结合mysql数据的使用

在我的学习过程中,我使用到了的枚举类型和数据库配合,下面是使用过程。 public class TUser extends User implements Serializable { private static final long serialVersionUID = 1L; private Gender userGender; /...