数据类型及数据类型转换(一、二)

一、数据类型

JavaScript的数据类型共分两类:简单数据类型 (也称原始数据类型或基本数据类型)和复杂数据类型(也称引用数据类型或对象类型)。

2.1 简单数据类型

简单数据类型共分5种:Number、Boolean、String、Null、Undefined (ECMAScript6新增:Symbol)

数据类型 数据值 说明
Undefined undefined 当声明一个变量但是并没有赋值时,变量的类型是Undefine类型
Null null 对象指针为空
Boolean true false true\false两个值都必须小写
Number 10 3.14 3. .5 整数与浮点数 NaN ---- not a number本应该返回数值型数据的函数,如果返回的值不是数值型测返回NaN isNaN()---不是数字返回true 是数字返回false
String “Hello” ‘Hello’ “a” ’a’ 后续学习
Object 对象 后续学习

2.1.1 Number类型

数值类型共分4种值:整数、浮点数、无穷大、NaN
对数值来说,最常见的数值字面量是10进制。比如:20, 30, 5.5 这些值都是用10进制表示的。

  1. 整数: 对整数来说,我们一般使用的是10进制,其实还有8、16进制等。例如:
var num = 25;  // 10进制的25
alert(num); //弹出:25
  1. 浮点数: ** 所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。浮点数直接量一般有两种写法:直接带小数点的使用科学计数法。**
var f1 = 3.14;   // 带小数点的直接量写法
var f2 = 3.158899e5; //科学计数法:  表示 3.158899 * 10^5
  1. **无穷大(Infinity): ** ECMAScript并不能储存所有的数,所以能表示的数有个范围。所能表示的数最大值和最小值都保存在Number这个内置对象中(后面会详细介绍什么是对象。)
alert(Number.MAX_VALUE);
alert(Number.MIN_VALUE);
//如果数值超出了最大值和最小值,则用Infinity和-Infinity表示。
alert(1.1 / 0); //弹出:Infinity
alert(-1.1 / 0);    //弹出:-Infinity
  1. **NaN( not a number 不是个数): ** 表示不是一个数字,当0/0 的时候不是无穷大,而是NaN。或者把一个非数字形式的字符串转换成数字时都会返回NaN。例如:
alert(0 / 0);  //弹出:NaN
alert(parseInt("60"));  //弹出:60 说明:parseInt("");可以把字符串形式的数字转换成Number
alert(parseInt("a"));   //弹出:NaN

//注意:NaN是个非常特别的东东。因为即使他自己和自己都不相等。
var v = 0 / 0;
alert(v == v);  //弹出false
alert(v != v);  //弹出true。  所以:可以通过这种方式来判断这个数是否为NaN

/*
  另外:isNaN()函数如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,
  则 返回 false。
*/
alert(isNaN(3));//返回false
alert(isNaN("3"));   //返回false
alert(isNaN("blue"));//返回true
alert(isNaN(true));//返回false . true可以转换成数字1
alert(isNaN(null));//返回false    null可以转换为数字0
alert(isNaN(undefined));//返回true    

2.1.2 Boolean类型

Boolean类型的值是程序中用的很多的一种类型。它只有两个值:true和false。true表示逻辑上的对/正确,false表示逻辑上的

2.1.3 String类型

String指的是用 ""(双引号)''(单引号) 括起来的字符序列。字符序列可以由0个或多个字符组成。
例如:”123” “a” ‘name’ ‘blue’ ’nihao’ ’xiaohong‘ ”nihao”。

说明:

1、单引号或双引号要匹配,不能一边用双引号,一边用单引号 ,左右符号要匹配。

2、JavaScript统一每个字符使用Unitcode码来进行编码,每个字符占16位(2个字节)。

3. 在其他语言中多用单引号表示一个字符,双引号表示字节。但是对JavaScript来说,不存在字符类型的数据。

4. 有些字符不可见或有特殊意义,比如换行符,制表符, 双引号等,则 JavaScript 提供了相应的转意字符,来表示这些不可见字符。见下表:

代码 输出
' 单引号
" 双引号
& 和号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
\f 换页符

2.1.4 Undefined

Undefined 类型只有一个值,即特殊的 undefined 。在使用 var 声明变量但未对其加以初始化时,
这个变量的值就是 undefined ,例如:

var v;
alert(v); //弹出:undefined。  变量v声明但是没有赋值初始化,则为undefined
alert(m);  //m没有定义,直接使用会发生错误。

2.1.5 Null

  1. Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null ( n是小写)。从逻辑角度来看, null 值表

示一个空对象指针。

  1. 值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

说明:

尽管这两个值相等,但它们的含义不同。
undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。
如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。

alert(null == undefined); // 弹出: true。  待讲完面向对象在来理解会更加清晰。大家目前只需要了解即可。

2.2 复杂数据类型

复杂数据类型又称之为引用数据类型。主要包括三种:对象(object)、函数(function)和数组(array)

不过,从本质来看,这三种都属于对象。

关于复杂数据类型,我们在面向对象部分重点详细介绍。

二、数据类型转换

数据类型转换有两种转换:自动转换和强制转换。

1. 自动类型转换:

在解释执行的过程中,会根据需要进行相应的自动类型转换。比如:需要一个Boolean类型的值,而现在是一个字符串,则会根据相应的规则把字符串自动转换为Boolean值。

1、转换成布尔类型
undefined —> false
null —> false
数值       0,0.0,NaN —> false   其他数值—> true
字符串    ""—>false    "etef" —> true
其他对象—> true
总结:存在的东东,转换成true, 不存在的东东转换成flase

2、转换成数值类型
undefined —> NaN
null —> 0
字符串——>数值—>     "34234"—>34234,  "324sdfs3423" —> NaN,  "" —> 0
布尔类型——>数值    true->1   false->0
总结:能转成数字的就转成对应的数字。不能转成数字的要么0或1要么NaN

3、转换成字符串类型
undefined —>"undefined"
null —>"null"
布尔类型     true —>”true”     false —>"false"
数值类型转成字符串    12321 —>"12321"   NaN —>"NaN"
总结:字面值是什么就转成什么

2. 强制类型转换。

//1、其他类型转成成字符串。
var a = 10;
alert(a + "");  // 直接和一个长度为0的空字符链接
alert(a.toString()); //调用这个变量的toString()方法
alert(String(a));  //使用String转型函数
//2、字符串转数字。
var s = "123";
alert(parseInt(s));
alert(parseFloat(s));
/*
    注意:使用parseXxx转换
    1、转换为数字的时候,会忽略前面的空格
    2、如果是数字开头然后是字母,则会只转前面的数字
    3、如果是字母开头则返回NaN
    4、在使用parseInt的时候,可以传入第二个参数,表示这个数的进制,然后就转换成对应的10进制数返回。
*/
alert(parseInt("  12"));  //忽略前面的空白字符
alert(parseInt("12ab3");  //弹出:12.  从字母后面的统统忽略掉
alert(parseInt("a123"));  // 弹出:NaN
alert(parseFloat("-41.33b89")) // -41.33
//3、使用转型函数互转(暂时先了解)  var为一个变量或常量都可以
String(var);//其他类型转字符串
Number(var);  //其他类型转数字
Boolean(var);  // 其他类型转布尔
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,151评论 0 13
  • 人教版七下第三单元的单元主题是关于“小人物”的故事;学习目标是注重熟读精思,就是对文本进行深入体会,感受文章的意蕴...
    改变自己369阅读 1,769评论 1 6
  • 生命,每个人只有一次,或长或短, 生活,每个人都在继续,或悲或欢; 人生,每个人都在旅途,或起或伏。 想的浅一点,...
    李艳菲阅读 255评论 0 1
  • 鞭炮声此起彼伏,地上落满了碎的红纸,弥漫着浓浓的鞭炮味。 几天前,我考入大学,情景和这时差不多,但实...
    JudyGu阅读 199评论 0 0
  • 今天上传以前写的诗一首,完成任务。 宝鼎山中立宝鼎 白云峰顶白云观 清修道长孤心照 大千世界一束光。
    顿慈悟语阅读 225评论 0 0