javascript的数据类型

想复习下之前学的js数据类型的知识,主要是总结一下针对string和数组的各种操作。

一,javascript有5种数据类型。

1.Undefined(未定义)

2.Null

3.Boolean(布尔值,true or false)

4.Number(数值,例如1)

5.String(字符串)

6.Object(对象)

二,typeof操作符

用来检测数据类型的操作符(不是函数),会根据值的数据类型的不同返回不同的值。

undefined-如果这个值未定义

boolean-如果这个值是布尔值

string-如果这个值是字符串

number-如果这个值是数值

object-如果这个值是对象或者null,因为null指向的是一个空的对象指针,所以typeof会返回object而不是null。

function-如果这个值是函数

三,各种数据类型

1.Undefined

这个类型只有一个值,就是undefined,在声明了变量但还未赋值的时候,这个就是undefined。例如:

var message;

typeof(message) //undefined

2.Null类型

这个类型也是只有一个值,null,从逻辑上说,这个指向一个空的对象。所以用

var call = null;

typeof(call)//object

所以,如果要用使用对象,可以先声明它等于null。

3.Boolean类型(这个着重说一下JS布尔值的自动转换)

有true和false两种,要区分大小写,True和False只是标识符。

有一个转换函数Boolean(),可以将其它数据类型转换为布尔值。

数据类型            转换为true                                         转换为false

字符串                任何非空字符串                                “”(空字符串)

Number               任何非零字符串                               0和NaN

Object                  任何对象                                         null

Udefined               不能转换为true                               undefined

对于if(message)中的message会自动执行布尔值转换。

还有一些操作符比如,===,==,>=等也会先进行布尔值转换,运算出来的结果可能有点奇怪。下面有个我不知道在哪找到存手机的真值表。可以时常拿出来看看。


3.Number类型

浮点运算采用双精度数值(IEEE754格式),会出现0.1+0.2 != 0.3的情况!

其实是等于0.30000000000000004,为什么会这样呢?这里稍微提下,是因为都会先将小数转换为双精度对应格式的二进制然后做加法,最后再转换回来。具体计算方式这里不赘述了,有兴趣的可以看看这个双精度浮点数运算

进制表示方法

十进制:55,

八进制:070(8进制的56)8进制前面加0,不能超过8,08会自动解析为8。但在严格模式下无法识别,ES6新增了0o的表示方法。

十六进制:0xA,16进制的10。0-9,A-F。

内存限制,最小值,5e-324,最大值1.7976931348623157e+308,如果超出这个范围,正数则是正无穷Infinity(Number.MAX_VALUE),负数则是负无穷-Infinity,正负无穷无法参加下一次运算。有一个函数可以确认是否有穷,是isFinite(),有穷返回true,无穷返回false。

NaN(Not a Number)

var result = 4/0 //NaN

需要注意的是NaN与任何值都不相等,包括它自己。很奇葩吧,如何判断是不是NaN呢?用isNaN()来判断就好了呀!这个函数会尝试把传进去的参数转换成为数值,不能转换就会返回true,比如字符串或者布尔值。

如何将其它数据类型转换为数值呢?JS提供了三个函数:Number(),parseInt(),parseFloat()。

Number(true)//1

 Number(false)//0

Number(011)//9(8进制)

Number('02323') //2323,Number('') //0

Number('hello')  //NaN,Number('')

Number(null) //0

Number(undefined) //NaN

一般处理正数的时候用parseInt()

parseInt('')  //NaN

parseInt('123fdasfasf') //123

parseInt('agasdf') //NaN

parseInt(22.5) //22,向下取整数,只保留整数   Math.ceil(22.5)//向上取整,Math.round(22.4)//22 四舍五入

parseInt(070) //56 八进制

parseInt('070') //70并不会识别8进制哦

还可以添加第二个参数作为进制基数哦~就是把传入的第一个参数用后面一个参数规定的进制解析,比如:

parseInt(‘10’,2)//2

parseInt('0xf',16) //15可以识别哦~

parseInt('0o10',8) //0,但是8进制写法的字符串还是无法识别,就是不喜欢8进制,任性。

parseFloat()也是从第一个字符开始解析,一直解析到字符串的末尾或者遇到第一个无法识别的。第一个点有效,第二个就无效了哦,比如:

parseFloat('22.4.5.7')//22.4

parseFloat("2323dfdf") //2323 也是可以返回整数的哦

parseFloat('0xA') //返回0,16进制格式的字符串始终会被转换为0

4.String类型

需要注意的第一个就是转义序列

\n 代表换行;\t 制表;\b 空格;\r回车;\f 进纸(喵喵喵???不是很懂,是给打印机识别用的??);\\就是斜杠;\xnn 以16进制表示的一个字符,n为0-f;\unnn 以16进制代码nnn表示一个Unicode字符,要比nn表示的多。

console.log('\x44') //D

字符都有lenght属性,可以调用,查看字符长度,上面说到的\* 也是会算长度的哦~

中文字符也只算一个长度。

var a = '的等等';

console.log(a.length);//3

字符串和数值都是基础类型,创建了就不可变,要更改只能销毁重新分配储存空间。

转为字符串

使用toString()的方法转为字符串。

待更。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容