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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容