JavaScript 入门(二、JavaScript数据类型)

1.基本数据类型

a.字符串
b.数值型
c.布尔型

2.复合数据类型

a.对象
b.数组

3.其他数据类型

a.函数
b.null
c.undefined

字符串型

字符串型是JavaScript中用来表示文本的数据类型,是由Unicode字符、数字和标点符号组成的一个字符串序列。字符串通常是由单引号或是双引号括起来的。
1.单引号和双引号均可解析转义字符
2.单引号和双引号均不能解析变量
3.变量与字符串、变量与变量要使用+来连接。
4.单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要将单引号转义,同理,双引号相同。

数值类型

最基本的数值字面量格式是

1.十进制整数:
var num = 10;

除了以十进制表示外,整数还可以通过八进制或十六进制的字面值来表示:

var num = 070;  //八进制数,以0开头

var num = 0xA;  //十六进制数,以0x开头

注意:虽然数值可以用八进制或十六进制来表示,但在进行算术计算时,所有以八进制和十六进制表示的数值都将转换成十进制数值。

2.浮点数值

所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。

var num = 1.1;
var num = 0.1;
var num = .1;   //有效,但不推荐

如果小数点后面没有跟任何数字(如1.),可以作为整数值来保存。
如果浮点数值本身表示的就是一个整数(如1.0),该值会被转为整数
可以使用e来表示科学计数法。

var num = 1.2e3;    //等于1200

浮点数值的最高精度是17位小数,但在进行算术计算时其精度远远不如整数。

注意:永远不要测试某个特定的浮点数的值!
例如:

    var a = 0.1;
    var b = 0.2;
    if(a+b == 0.3){
        alert(“输出了”);
    }                    //这里是不会弹出的!
3.NaN

NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
例如:在其他语言中,任何数值除以0都会导致错误。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的运行。
NaN的特点:
1.任何涉及NaN的操作,结果都为NaN
2.NaN与任何值都不相等,包括NaN本身。例如:下面的代码会返回false

alert(NaN == NaN);  //false

数值转换:
我们可以使用三个函数Number()、parseInt()和parseFloat()将一个非数值转换为数值。
Number()函数的转换规则:
1.如果是布尔值,true和false将分别转换为1和0
2.如果是数字值,只是简单的传入和返回
3.如果是null,返回0
4.如果undefined,返回NaN
5.如果是字符串,遵循下列规则:
a.“11”会变成11
b.“1.1”会变成1.1
c.“0xf”会变成相同大小的十进制整数值
d. 如果字符串是空的,则将其转换为0
e. 如果字符串包含除上述格式之外的字符,则将其转换成NaN

var num = Number("hello"); 
console.log(num)     //NaN

var num = Number("");
console.log(num)    //0

var num = Number("000011");
console.log(num)   //11

var num = Number(true);
console.log(num)  //1

parseInt()的转换规则:
1.忽略字符串前面的空格,直到找到第一个非空格字符
2.如果第一个字符不是数字或者是负号,返回NaN
3.空字符串,返回NaN
4.如果第一个字符是数字,会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
5.如果字符串以0x开头且后面跟数字字符,就会将其转为10进制数,同样,八进制也一样。

   var a = parseInt("1234blue");
    console.log(a)  //1234

    var a =parseInt("");
    console.log(a) // NaN

    var a =parseInt("0xA");
    console.log(a) // 10

    var a =parseInt(22.5);
    console.log(a) // 22

    var a =parseInt("070");
    console.log(a)  //70

    var a =parseInt("70");
    console.log(a)  //70

    var a =parseInt("0xf");
    console.log(a) // 15

parseFloat()也是从第一个字符开始解析每个字符,而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。规则如下:
1.第一个小数点是有效的,第二个小数点无效
2.始终忽略前面的0,不分进制数
3.十六进制会被转换成0
4.空字符串转换为NaN

var num= parseFloat("1234blue");
console.log(num); //1234 
var num= parseFloat("0xA");
console.log(num); //0
var num=  parseFloat("");
console.log(num); //NaN
var num=  parseFloat("22.5");
console.log(num); //22.5
var num=  parseFloat("22.34.5");
console.log(num); //22.34
var num=  parseFloat("070.5"); 
console.log(num); //70.5
var num=  parseFloat("3.12e7");
console.log(num); //31200000

布尔类型

布尔类型的字面值只有两个,true和false,可以使用Boolean()函数将一个非布尔类型转换为布尔类型。
注意:true和false是严格区分大小写的

var res=Boolean(undefined);
console.log(res);
js转化为布尔为假的有:
false
""
0
NaN
undefined
null

a.对象

对象其实就是一些数据的集合,这些数据可以是字符串型、数字型和布尔型,也可以是复合型。

b.数组

数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、数字型、布尔型、或者是复合型。与对象不同,数组中的数据并没有命名,不能通过名字来引用该数据。在数组中,为每个数据都编了一个号(从0开始),为数组的下标

a.函数

函数是一段可执行的JavaScript代码,在JavaScript中,函数可以带有0个或多个参数,也可以返回一个值或不返回值。

b.null

null是一个特殊的数据类型,其所代表的意思是“空”。需要注意,这个空并不代表是0或空字符串。null代表没有值,不是一个有效的数字、字符串、也不是数组、对象和函数,什么数据类型都不是。

c.undefined

undefined也是一个特殊的数据类型,只有定义了一个变量但没有为该变量赋值,使用了一个并未定义的变量、或者是使用了一个不存在的对象的属性时,JavaScript会返回undefined。
undefined与null的区别:
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

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

推荐阅读更多精彩内容