我相信对于大多数新手,刚入门 JavaScript 的同学来说,类型转换无疑是最令人头疼的问题了(也包括我自己)。在 JavaScript 的代码执行过程中,会根据需要进行自动类型转换,这时候就需要看我们对表达式的类型转换的理解了。不同于 Java、c++ 等等,JavaScript 在声明变量时,并不需要对变量的类型进行声明,而是由赋给变量的值决定。在 JavaScript 中,提供了几种常用的基本数据类型:
1、undefined (未定义类型)
2、string (字符串类型)
3、number (数值类型)
4、Boolean (布尔类型)
5、null (空类型)
一、typeof 运算符;
引用数据类型这里暂不做介绍,另外,我们可以根据 typeof 运算符来判断一个值或变量究竟属于哪种数据类型。语法格式如下:
语法:
typeof (变量或值)
其返回结果为以下几种:
1、undefined :如果变量是 undefined 类型的,则返回 undefined 类型的结果;
2、string :如果变量是 string 类型的,则返回 string 类型的结果
3、number :如果变量是 number 类型的,则返回 number 类型的结果
4、Boolean :如果变量是 Boolean 类型的,则返回 Boolean 类型的结果
5、object :如果变量是 null 类型,或者变量是一种引用类型,如对象、函数、数组,则返回 object 类型的结果。
二、JavaScript 在代码执行的过程中,会根据需要进行自动类型转换,下面主要介绍 3 中数据类型之间的转换规则:
1、 转换为数值类型:
(1)字符串类型转数值类型:
- 如果存数字的字符串,则直接将其转换为数字;
- 如果字符串中有非数字的内容,则转换为 NaN;
- 如果字符串是一个空串 或者是一个空格的字符 ,返回的值是0。
(2)空类型转为数值型:0;
(3)布尔类型转数值型:如果是 true,则为 1;如果是 false ,则为 0 ;
(4)undefined 转数值型:NaN;
2、 转换为布尔类型:
(1)字符串类型转布尔类型 :若其长度为 0 ,则结果为 false,否则为 true;
(2)空类型转布尔类型:false
(3)数值类型转布尔类型:若其值为 0 或者 NaN ,则结果为 false ,否则为true;
(4)undefined 转布尔类型:false ;
3、转换为字符串类型:
(1)数值型转字符串型: NaN、0 或者与数值相对应的字符串;
(2)空类型转字符串型:"null" ;
(3)布尔类型转字符串型 :若其值为 true ,则结果为 "true" ,若其值为 false ,则结果为 "false";
(4)undefined 转换为字符串类型:"undefined";