目录
(2)将数字字符串转换为浮点数(小数):parseFloat()
一、数据类型
- 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
- 引用数据类型:对象(Object)、数组(Array)、函数(Function)。
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
1、数字型(Number)
有整数:可以通过十进制,八进制,十六进制的字面值来表示。
有浮点数:该数值中必须包含一个小数点,且小数点后必须有一位数字。
var a = 10; //不需要引号
数字型的取值范围:
最大值:Number.MAX_VALUE
最小值:Number.MIN_VALUE
特殊:NaN (Number的一种):Not a Number
isNaN(args):判断参数args是否是一个数字,若args是数字(包括数字字符串)函数返 回false;若args是非数字,函数返回为true
2、字符串(String)
用单引号或双引号括起来的字符序列。
var str = "中国人不骗中国人";
注意:不能出现单、双引号的交叉,因为js无法解析
例如: "红楼梦也叫"石头记"" :字符串 "红楼梦也叫 " 被截断。可以写成"红楼梦也叫'石头记' "
(1)、转义字符
转义字符将特殊字符转换为字符串字符,转义字符 (\) 可以用于转义撇号,换行,引号,等其他特殊字符。
代码 | 输出 |
---|---|
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\n | 换行 |
\r | 回车 |
\t | tab(制表符) |
\b | 退格符 |
\f | 换页符 |
所以我们也可以把上述字符串改为:"红楼梦也叫\"石头记\""
(2)、字符串的长度
当定义一个字符串后,默认带有length属性,表示字符串的长度。
字符串变量.length
eg:
var str = "中国人不骗中国人";
console.log("字符串的长度:" ,str.length);
(3)、字符串的访问
以索引的方式访问。
字符串变量[index] ,index必须是0~length-1之间的整数。因为JavaScript 从零计算位置。0 是字符串中的第一个位置,依次排列。
eg:
var str = new String ("中国人不骗中国人");
console.log("位置:",str.indexOf('国'))
console.log("位置:",str.lastIndexOf('国'))
(4)、字符串的拼接
用"+"进行连接。
var a = "你好"
var b = "世界"
console.log(a+b) //显示为: 你好世界
3、布尔型(Boolean)
逻辑型,只有true/false两个值。布尔常用在条件测试中。
4、undefined和null
- undefined:未定义类型。当一个变量声明后未赋值就是undefined类型。
- null:空值。可以通过将变量的值设置为 null 来清空变量。
undefined和null的区别是:值相等但是类型不相等。undefined是undefined类型。null是object。
ps:空值和空串的区别
- 类型不同
- 空值null表示的是一个对象的值,而非一个字符串。
- 空串""表示的是一个长度为0的空字符串。
所以:null不指向任何对象,相当于没有任何值;而""代表一个长度为0的字符串。
- 内存分配不同
- 表示声明一个字符串对象的引用,但指向为null(未指向任何的内存空间)
- 表示声明一个字符串类型的引用,其值为""空字符串(指向空字符串的内存空间)
所以:null不分配内存空间;而""会分配内存空间。
举例说明:
var person; // 值是 undefined,类型是 undefined
var person = undefined; // 值是 undefined,类型是 undefined
var person = null; // 值是 null,但是类型仍然是对象(object)
var person = ""; // 值是 "",类型是字符串 (string)
5、Symbol类型
符号 (Symbols) 是 ECMAScript 第 6 版新定义的。符号类型是唯一的并且是不可修改的。
var s = symbol()
Symbol 函数前不能使用 new 命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象。
Symbol 函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述。
6、对象(Object)
是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔 如下:
var car = {type:"porsche", model:"911", color:"white"};
7、数组(Array)
JavaScript 数组用方括号书写。数组的项目由逗号分隔。 eg:
var a = [1,2,3]
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
8、函数(Function)
二、类型检查运算符:typeof
你可以使用 typeof 操作符来检测变量的数据类型。
eg:
var t = false
console.log(typeof t) //返回类型为boolean
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof NaN // 返回 "number" typeof false // 返回 "boolean" typeof [1,2,3,4] // 返回 "object" typeof {name:'Bill', age:62} // 返回 "object" typeof new Date() // 返回 "object" typeof function () {} // 返回 "function" typeof myCar // 返回 "undefined" * typeof null // 返回 "object"
请注意:
- NaN 的数据类型是数值
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是对象
- 未定义变量的数据类型是 undefined
- 尚未赋值的变量的数据类型也是 undefined
所以无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。
三、类型转换
1、转换为字符串
(1)、用"+"连接符转换
var flag = true;
console.log(flag+12); //将true转换为整数的1,输出为13
(2)、调用toString()函数
var t1 = 10;
console.log(t1.toString(16)); //将数值变量t1转换成字符串
A、null和undefined不能转换
B、传入一个参数可以将数值型数据转换成对应的数制
(3)、String类进行转换
是JavaScript的内置类,可以直接使用。
var str = new String('china');
2、转换为数字
(1)将数字字符串转换为整数:parseInt()
var temp = '3.14159';
var k = parseInt(temp);
console.log(k); //输出3
(2)将数字字符串转换为浮点数(小数):parseFloat()
var temp = '3.14159';
var k = parseFloat(temp);
console.log(k);
console.log(typeof k);
(3)使用Number()转换
var temp = 'e';
var t = Number(temp);
console.log(t); //输出NaN
3、转换为布尔值
使用Boolean()转换。
空串('')、0、NaN、null和undefined 转换为false,其他的都转换为true
var temp = Boolean(NaN)
console.log(temp) //打印出来为false