js数据类型

js不同的数据类型:

1、字符串类型(string)

  • 例:“Volor”、“hello”等,在双引号或单引号中添加内容
    

2、数字类型(number)

  •  例:1234、34567、456 等,由数字组成,数字可带小数点,也可不带;
    
  •  需要注意的是,极小或极大的数字需要通过科学计数法进行书写
    
  •   例:12300000 表示为 123e5 ,0.00123 表示为 123e-5
    

3、布尔类型(boolean)

  •  boolean 类型只有两个值,分别为:true / false
    

4、对空类型(null)

  •  可通过将变量设置为 null 来清空变量
    

5、未定义(undefined)

  •  undefined 表示变量中不含值
    

6、标识符(symbol)

js引用数据类型

1、对象类型(object)

  • 例:var obj={name:"小明",age:20}
    

2、数组类型(array)

  •  例:var arr=[1,2,3,4]
    

3、函数类型(function)

  •  例:function foo(){}
    

js类型转换
一、强制转换,使用 Number()String()boolean()三个函数进行完成,手动将各个数据类型的值,转换为对应的数字字符串布尔值

Number()

首先是 Number 数字类型的强制转换,规则如下:

//  数值进行转换:转换完之后还是它本身,值未变
Number(123456);    //  返回结果是 123456

//  字符串进行转换:1、若字符串中的内容可以用数字进行表达,那么就转换为相应的数字表达
Number("12345");    //  返回的是 数字类型的 123456
//  字符串进行转换:2、若字符串中的内容无法用数字进行表达,那么将返回 NaN
Number("12sdf");    //  返回的是 NaN
//  字符串进行转换:3、空字符串,空字符串将未转换为 0 
Number("");    //  返回的是 0 

//  布尔类型进行转换:true转换为 1;false转换为 0 
Number(true);    //  1
Number(false);    //  0

//  未定义进行转换:undefined 转换为NaN
Number(undefined);  //  NaN

//  空值进行转换:null 转换为 0
Number(null);    //  0 

另有一种将字符串转换为数值的方式为 parseInt,但,parseInt比起Number来说要相对宽松一些,parseInt进行类型转换时,会逐个字符进行解析,从第一个是数字的位置开始,到最后一个非数字的字符结束,中间的数字将作为转换结果;而Number解析字符也是逐个进行解析,跟parseInt不同的是,Number解析的时候,一旦出现无法转换成数字的字符,那么,解析过程将立即结束,并整个转换结果就将变成NaN;

parseInt("2345 color");    //转换结果为 2345
Number("2345 color");    //转换结果为 NaN

对象进行转换:若对象为空,或对象中是一个包裹数值的数组,则转换为对应的数字。否则转换为 NaN

Number([]);    //转换结果为 0 
Number([3]);    //转换结果为 3
Number(["8"]);    //转换结果为 8 
Number({a:1});    //转换结果为 NaN

String()

String()函数作用是将各种的数据类型转换为 string 字符串类型,转换规则如下:

//数值转换:转换为对应的字符串
String(123)  //  "123"

//字符串转换:转换为它本身
String("123");    //"123"

//布尔值转换:转换结果为  "true"/"false"
String(true)    //"true"
String(false)  //"false"

//未定义转换:undefined 转换为 "undefined"
String(undefined)  //"undefined"

//空转换:转换为字符串 "null"
String(null)    //"null"

对象转换:若String方法的参数是对象,那么就返回一个类型字符串;若String方法的参数是数组时,那么返回该数组的字符串形式

String({name:"小明"})    //"[object object]"
//当数组为空数组时,将其转换为空字符串
String([])    //""
String([1,2,3])    //"1,2,3"

//当数组中出现 null 或 undefined 时,其会被当成空字符串处理掉
String([1,null,undefined,3,5])    //"1,3,5"

boolean()

boolean函数是可以将任意类型的值转换为布尔值的
转换规则相当简单:除了六个假值转换为 false,其他的都会转换为true
六个假值分别为:undefinednull0(无正负之分)NaN""false

Boolean(undefined)    // false
Boolean(null)    // false
Boolean(0)    // false
Boolean(NaN)    // false
Boolean("")    // false
Boolean(false)    // false

自动转换

自动转换是以强制转换为基础的,当出现下面几种几种情况时,js数据会自动发生数据转换,也就是出现下面几种情况时,js数据会瞬间自动完成数据转换,用户不可见。因此这种自动转换也叫作隐式转换
1、当不同类型的数据进行运算时
···
12345+“name”; //“12345name”
//会将12345隐式转换为字符串"12345"
···
2、对不是布尔类型的数据进行布尔操作求true 或 false

if("world"){
  console.log("hello")    //因为"world"不是六个假值中的任意一个,所以"world"为  true  控制台输出为:"hello"
}

3、对不是数值类型的值使用 +- 时,结果为 NaN

+{name:"小明"}    //NaN
-{2,6,9,3}    //NaN

自动转换为字符串

//当使用字符串去加其他类型数据时,将后者隐式转换为字符串,与前者进行拼接(注:字符串在前)
“23”+12    //"2312"
"23"+true    //"23true"
"23"+{}    //"23[object object]"
"23"+[]    //"23"
"23"+function(){}  //"23function(){}"
"23"+undefined  //23undefined
"23"+null    //"23null"

自动转换为数值
直接看实例:

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

推荐阅读更多精彩内容