【红宝书笔记】数据类型小纪录

JS的类型是松散类型。有5种简单类型:Undefined,Null,String,Number,Boolean和1种复杂类型:Object。
1.Undefined
这个类型只有一个值,就是undefined。每个没有初始化的变量都是undefined。
2.Null
这个类型也只有一个值,就是null。从逻辑上说,有null值的变量看做一个空的指针。所以用typeof检测这种变量,显示是object类型。
如果一个变量是准备用来指向一个对象的,就应当在初始化的时候赋值成null,作为标准和对undefined的区分
3.String
字符串一旦创建,就不能被修改

var a = "hehehe";
a += "javascript";

在第二步运算的时候,”javascript”字符串被创建,再组成新的字符串后赋值给a,a之前存放的字符串就和”javascript”一起被销毁。
每个类型都有toString()方法可以转换成字符串,除了undefined和null。如果undefined和null调用toString()会报错。所以可以调用String()进行强制类型转换,这样以上两个个例不会引起错误
4.Number
分成两种,值为NaN的和不是NaN的。
说到NaN,只有0/0会返回NaN,其他正数除0返回infinite,负数返回-infinite。NaN类型和其他的数值进行操作or运算,都是返回NaN。并且他和所有的值都不相等。。。包括NaN。
说到not NaN,注意下浮点数的精度,最高精度是17位小数。并且几乎所有的语言浮点数都有误差。有些精度的误差可能导致判断不正确
转换成number类型有3种方法:parseInt,parseFloat,Number强制转换。前两个函数专门用于把字符串转换成number。number强制转换考虑的情况比较多,所以常用前面两种函数。


在判断的时候,尤其要注意数字字符串和数字类型。如”123”和123,在用if判断数值的时候记得先分辨变量的类型【已经被坑过许多次TAT】


5.Boolean
有true和false两种值。
每种类型都有相对应的boolean值。值得提的是在number类型中,0和NaN都是转换成false值
在if判断的时候,所有值都隐式转换成Boolean类型
6.Object
每个该类型对象都有7种属性和方法,我认为。。主要有用的是:
constructor:
指向该对象的构造函数,如果没有定义的构造函数,就指向object().

var a = {name: "jack"};
创建一个对象a,访问他的constructor属性,浏览器返回如下:
function Object() {
    [native code]
} 

hasOwnProperty(properName):用于检查是否有只属于当前实例的属性
isPrototypeof(object):用于检测传入的对象是否是其原型对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值