第三章基本概念之数据类型

1 小知识点整理:

  1. js区分大小写
  2. 标识符命名规则和java一样
  3. 数据类型有五种:
    undefined,Null,Boolean,Number和String

2 typeof操作符

用来判断数据类型的操作符(不是函数),例如:
undefined-如果这个值未定义
boolean-如果这个值是布尔值
string-如果这个值是字符串
number-如果这个值是数字(可以整形也可以浮点型)
object-如果这个值是对象或null
function-如果这个值是函数

例子:

var message="some string";
alert(typeof message);   //"string"
alert(typeof 95);  //"number"
alert(typeof null);//"object,因为null被认为是一个空对象引用"

3 Undefined

只有一个值,就是undefined,表示未对其进行初始化的变量

var message;
alert(message == undefined);//true,因为没有对变量进行声明
var message = undefined;
alert(message == undefined);//true,因为对变量声明的数据类型就是undefined
alert(typeof age);//undefined,因为变量没有进行声明

4 Null

  1. 也是只有一个值,就是null,表示一个空的对象指针。
  2. 假如定义的变量准备将来用于保存对象,那么最好将其初始化为null
  3. undefined派生自null值,所以用null判断时他两相等
 alert(null==undefined);

5 Boolean

  1. 有两个值,并且由于js区分大小写,所以true和false只有一种写法,其他混合大写写法都不是。
  2. 假如要将值转为Boolean类型,可以使用Boolean函数,如:
var message= 12;
var messageBoolean = Boolean(message);
alert(messageBoolean);
数据类型转换为true的值转换为false的值
Booleantruefalse
Number任何非零数字0和NaN
String任何非空字符串" "
Undefined不适用undefined
Object任何对象null

6 Number

  1. 对于极大值或者极小值,用科学计数法(e表示法),例如:
    var num= 3.163e7; //表示31630000

  2. 数值范围:
    如果某次计算的结果超出了js数值范围的值,那么自动转换为Infinity,就是假如是负数,则转换为-Infinity,假如是正数,则转换为Infinity。
    要想确定数值是不是在js数值范围内,则使用isFinite()函数.

  3. NaN
    表示非数值。(not a number)
    表示任何一个本来想返回数值的操作数没有返回数值的情况。
    任何涉及NaN的操作都会返回NaN.
    任何数值除以非数值都会返回NaN.

isNaN()在接收到一个值后,会尝试将其转为数值,若可以转则为false,若不可以则为true,例如:

alert(isNaN(NaN));    //true
alert(isNaN(10));    //false
alert(isNaN("10"));   //false(转成10)
alert(isNaN("blue"));  //true(不能转)
alert(isNaN(true));    //false(转换成1)
  1. 数值转换
    有三个函数可以将非数值转换为数值:Number(),parseInt()和parseFloat(),第一个用于任何数据类型,
    后面两个用于字符串转数值。

Number()函数转换规则:

  • Boolean值,true->1,false->0;
  • null值,转换为0;
  • undefined,返回NaN;
  • 如果是字符串,忽略前导0(000456转换为456),空的转换为0,十六进制格式转换为等价的十进制,有数字只取数字
    其他转换为NaN。

parseInt()函数转换规则(看遇到的第一个字符):
忽略字符串前面的空格,直到找到第一个非空字符。假设第一个字符不是数字或负号,那么返回NaN,同样忽略前导0,0开头当做八进制处理,0x开头当做十六进制处理,最后直到遇到不是数字的字符(遇到小数点停下,可以理解为取整)。

例如:

var num1 = parseInt("1234blue");  //1234
var num2 = parseInt("");    //NaN
var num3 = parseInt("0xA");  //10
var num4 = parseInt("22.5"); //22
var num5 = parseInt("070");   //56
var num6 = parseInt("0xf");   //15

可以为该函数提供第二个参数以此来确定使用的进制基数。
例如:
var num=parseInt(“AF”,16); //175,十六进制转换为十进制的175

parseFloat:

  • 只解析十进制,十六进制始终都是0
  • 第二个小数点才无效
  • 始终忽略前导0
  • 如果可以解析为整数,则解析为整数

7 String

字符串一旦创建,值就不能改变。要改变则不仅需要删除原来的值,还要开辟新的空间
例如:

var lang = "Java";
lang = lang + "Script";

先开辟空间创建JavaScript的字符串,然后把原来的java和script字符串。

转换为字符串:
采用toString方法,但null和undefined没有。
采用String函数可以转换任何类型,遵循以下规则:
值有toString()方法,则调用该方法;
值是null,返回"null";
值是undefined,返回"undefined";

8Object

定义:一组数据和功能的集合,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
具有如下属性和方法:

  • constructor:保存着用于创建当前对象的函数
  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
  • isPrototyoeOf(object):用于检查传入的对象是否是当前对象的原型
  • propertyIsEnumrable(propertyName):用于检查给定的属性是否能用for-in来进行枚举。
  • toString():返回对象的字符串形式
  • valueof():返回对象的字符串、数值或布尔值表示。
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值