第二章 基本语法---数据类型

基本数据类型:undefined、Null、Boolean、Number、String

复杂数据类型:Object(本质上是一组无序的名值对组成)

3、1 typeof操作符

检测给定变量的数据类型

结果:

  1. ”undefined”---如果这个值未定义
  2. ”boolean”---如果这个值是布尔值
  3. ”string“---如果这个值是字符串
  4. ”number”---如果这个值是数值
  5. “object”---如果这个值是对象或者null
  6. “function”---如果这个值是函数

instanceof

instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型。 

3、2 undefined类型

Undefined类型只有一个值,就是undefined。在使用var声明变量但对其进行初始化,那这个变量就是undefined,

要注意  使用typepof操作符:对于未初始化和未声明的变量都返回undefined值

3、3 Null类型

Null 类型是第二个只有一个值的数据类型,--null,

 从逻辑角度来看,null值表示一个空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null,而不是其他值。

Undefined 值是派生自null值的  --》undefined==null //true

3、4 Boolean 类型

Boolean 类型,该类型只有两个字面值:true 和false。且区分大小写,True和False都不是Boolean值,只是标识符。

任何数据类型都可以转换为Boolean值,调用Boolean()函数。具体规则如下:

n/a 就是不适用,undefined不适用转化为true。

3、5 Number类型

这种类型使用IEEE754格式来表示整数和浮点数值。为了支持各种数据类型,ECMS-262定义了不同的数值字面量格式。:

  1. 最基本的数值字面量格式:十进制。
  2. 八进制。八进制字面值的第一位必须是0,然后是八进制的数字序列(0-7)。八进制字面量在严格模式下是无效的,回导致支持的JavaScript引擎抛出错误。
  3. 十六进制。十六进制字面值的前两位必须是0x,后面跟任何十六进制数字(0-9及A-F)。其中字母A-F可以大写,也可以小写。
  1. 浮点数

就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。最高的精度是17位小数。保存浮点需要的内存空间是保留整数值的两倍。对于极大、极小值,可以用e表达法表示浮点数值。

  1. 数值范围

大部分浏览器:最小值-》5e-324

           最大值:

超出范围,正数转化为Infinity(正无穷)

            负数转为-Infinity(负无穷)

注:Infinity不能够参与计算的数值

使用isFinite()函数,可以确定一个数是否是有穷,它在参数位于最小和最大数值之间时返回true。

  1. NaN

即非数值,是一个特殊的数值,用于表示一个本来要返回数值的操作数未返回数值的情况。

非同寻常的特点:

(1)任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致错误。

(2)NaN与任何值都不相等,包括NaN本身。

根据这些特点,定义了isNaN()函数:确认参数时候是数值。在接收到一个值之后,会尝试将这个值转换为数值。

  1. 数值转换

有3个函数可以把非数值转换为数值:

Number()、parseInt()、parseFloat()

  1. Number()

        转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于字符串转换为数值。

      参数为字符串

             (1)、字符串只包含数字或者有效的小数点,都转为对应的数字。

             (2)、包含有效的十六进制格式(0X),转换为相对应的十进制整数值。

             (3)、空字符串,=》0;

             (4)、不包含以上几点,=》NaN;

       参数为undefined =>NaN

       参数为对象:

         let  value = obj.valueof()不返回NaN, 将 value 按规则转换;

         返回NaN,let str = obj.toString();将 str 按规则转换;

处理整数更常用方法是parseInt()函数、与parseFloat()函数。

parseInt()有两个参数,第二个是:转换时使用的基数(即多少进制)

           只有一个参数,字符串以0开头且后面跟一位数字,则以八进制转换,

                                    字符串以0x开头且后面跟一位数字,则以十六进制转换,

parseFloat()函数只有一个参数,不能解析十六进制与八进制

3、6 String类型

String类型用于表示有零个或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或者单引号表示。

  1. 字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他功能的字符。

  1. 字符串的特点

ECMAScript中的字符串时不可变的,==》字符串一旦创建,它的值就不能改变。

若改变,首先要销毁原来饿字符串,然后再用另一个包含新值的字符串填充该变量。

  1. toString方法。

        数值、布尔值、对象、和字符串值都有toString()方法,但是null和undefined值没有这个方法。

        toString()方法:有一个参数(可传可不传)==》输出数值的基数。toString()可以输出二进制、八进制、十六进制、乃至其他任意有效的进制格式表示的字符串。

  1. String()函数

        这个函数能将任何类型的值转换为字符串,包括null、undefined。

转换规则:

3.7 Object类型

ECMScript中的对象其实就是一组数据和功能的集合。可通过执行new操作符跟着要创建的对象类型名称来创建。

主要思想:Object类型时所有它的实例的基础。==》Object类型所具有的任何属性和方法同样存在更具体的对象中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值