JavaScript的数据类型
一、字面量、变量、标识符。
1、字面量:实际、不可改变的值。字面量都是可以直接使用。但是我们一般都不会直接使用字面量。
例如:1 3 5 6 ;
2、变量:变量是用来保存字面量的,变量的值可以任意改变。变量的声明:通过var 关键字声明。
例如:var helloWorld = … ;
3、标识符:在JS中所有的可以由我们自主命名的都可以称为是标识符。例如:变量名 函数名 属性名都属于标识符。
3.1、命名一个标识符是需要遵守如下规则:
(1)、标识符中可以含有字母、数字、_(下划线)、$ ;
(2)、标识符不能以数字开头 ;
(3)、标识符不能使用ES中的关键字与保留字 ;
(4)、标识符一般都采用驼峰写法 :首字母小写,每个单词的开头字母大写,其余部分小写。
例如:小驼峰 helloWorld 大驼峰HelloWorld ;
3.2、JS底层保存标识符时实际采用的是Unicode编码,所以理论上将,所有的utf-8中含有的内容都可以作为标识符。特别注意:中文也可以作为标识符,但不建议使用。
二、JavaScript的数据类型 :5种基本数据类型、1种引用数据类型。共6种数据类型。
- 基本数据类型:String 字符串类型 、 Number数值类型 、Boolean 布尔类型 、
Null 空值类型 、 Undefined 未定义类型。
2.引用数据类型:Object 对象类型。
3.JavaScript数据的强制类型转换
主要是将其他数据类型转换为String Number Boolean。
①将其他的数据类型转换为String类型
方法一:toString()方法 ;
- 调用被转换数据类型的toString()方法 ;
- 该方法不会影响原变量,它会将转换的结果返回 ;
- Boolean布尔类型、Number数值类型、String 字符串类型都有toString()方法,可以把它们的值 转换成字符串。注意:null和undefined这两个值没有toString()方法,如果调用该方法程序会报 错。
(1)、Boolean布尔类型的toString()方法只是输出“true”或“false”。
(2)、Number数值类型的toString()方法比较特殊,它有两种模式,默认模式(十进制表示)
和基模式(自定义进制(基)表示)。
方法二:String()函数 : 它可把任何值转换成字符串 。
- 调用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数做强制类型转换时,对于Number Boolean实际上
是调用的toString()方法。但是对于null和undefined,
就不会调用toString()方法。null和undefined这两个值没有toString()方法,如果调用该方法程序会报错。
它会将null直接准换为"null"(字符串)
它会将undefined直接准换为"undefined"(字符串)
②将其他数据类型转换为Number类型
使用Number()函数- 字符串–>数字
1.如果是纯数字的字符串,则可以直接转换为数字
2.如果字符串中有非数字的内容,则转换为NaN ; 例如Number(“1.2.3”)==NaN ;
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0 - 布尔值–>数字 true准换为1 false转换为0
- null–>数字 0
- undefined–>数字 NaN
- 字符串–>数字
- Object 对象类型 --> 数字 Number(“new object()”)==NaN ;
第二种方式:- 这种方式专门用来对付字符串类型
- parseInt() 把一个字符串转换为一个整数 ;
parseInt()从位置 0 处的字符开始判断它是否是个有效数字,如果不是,该方法将返回 NaN ;例如parseInt(“abc”)==NaN ; 如果是 , 则重复同样的测试,直到发现非有效数字 的字符为止 。例如parseInt(“123abc”)==123 ;
parseInt() 方法还有基模式。基模式(自定义进制(基)表示);
- parseFloat() 把一个字符串转换为一个浮点数 ;
parseFloat() 字符串转换为浮点数。当出现多个小数点时,第一个出现的小数点是有效字 符。其他小数点将被看作无效 ;例如parseInt(“12.34.56”)==12.34 ;
③其他数据类型转换为Boolean类型
使用Boolean()函数 :当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返 回 true。如果该值是空字符串、数字 0、NaN、undefined 或 null,它将返回 false。 - 数字 -->布尔 除了0和NaN是false,其余的全部都是true .
- 字符串–>布尔 除了空串是false,其余的全部都是true .
- null 和undefined都会转换为false .
- 对象也会转换为true .
可以使用运算符typeof检测数据类型,
语法:typeof 变量 ;