在讲数据类型前,先屡屡命名规则和规范
-
规则(必须遵守)
- 由字母、数字、下划线、$组成
- 不能是关键字和保留字
-区别大小写
规范 (建议遵守)
变量的名称要有意义
变量的命名遵守驼峰命名法,首字母小写,第2个单词的首字母大写 例如:getArea
一.数据类型
Number
String
Boolean
-
Undefined
//变量声明,但未赋值
1.1 Number
类型
- 浮点数
- var n = 5e-324
//浮点数值的最高精度是17位小数,但在进行算术计算时其精度远不如整数
var result = 0.1 +0.2;//结果不是0.3,而是0.30000000000000004
console.log(0.07 *100);
永远不要测试某个特点的浮点数值(不要判断两个浮点数是否相等)
数值范围
- 由于内存的限制,ECMAScript幷不能保存世界上所有的数值
最小值:Number.MIN_VALUE,这个值为:5e-324
最大值:Number.MAX_VALUE,这个值为:1.797691348623157e+308
无穷大:Infinity
无穷小:-Infinity
数值jiance
- NaN 非数值(Not a Number)
- console.log("abc"/18);//结果是NaN
- NaN与任何值都不相等,包括NaN本身
- isNaN():任何不能被转换为数值的值都会导致这个函数返回true
- isNaN(NaN);//true
- isNaN("blue");//true
- isNaN(123);//false
1.2 String
类型
- 字符串字面量 (例如:var name = "ls";//"ls"字面量)
字符串要用引号引起,单引号和双引号的作用是等效的
字符串是由一个一个字符组成的,获取一个字符串中字符的个数可以使用
length
,OC中使用const
.字符串的不可变
- ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变
- 要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
demo: var str = "1234"; str = str +"abc";
1.3 Boolean
类型
Boolean类型有两个字面量:true和false,并且区分大小写
虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值
例如:
var result = Boolean("a");
console.log(result); //true
var result = Boolean(100);
console.log(result); //true
1.4 Undefined
类型
Undefined是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefinef
例如:var message;
console.log(message);//结果是undefined)
undefined是Undefined类型的字面量
例如:var message = undefined;
console.log(message);
typeof message;获取到的是"undefined"
二.类型转换
2.1转换成字符串(3种方式)
- 1.几乎每一个值都有toString()方法
var age = 10;
var ageString = age.toString;
console.log(ageString);// 18
var result = true;
var resultString = result.toString;
console.log(resultString);// true
//数值类型的toString(),可以携带一个参数,输出对应进制的值
var num =10;
console.log(num.toString());// 默认是10进制
console.log(num.toString(8));// 12
console.log(num.toString(16));//a
console.log(num.toString(2));//1010
- 2.String()函数
var age =11;
console.log(age.(String(age));//18
var result = true;
console.log(String(result));//true
console.log(String(undefined));//undefined
String()函数存在的意义:有些值没有toString(),这个时候可以使用String().比如:undefined和null
- 3.使用拼接字符串
var age =11;
var str = age +"岁";
console.log(str);//11岁
var str = "" +11;//11
2.2转换成数值类型
三个把值转换成数值类型的函数:Number()、parseInt()、parseFlocat()
- Number()可以把任何值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
- 例如:
var num1 = Number(true);//true返回1 false返回0
var num2 = Number(undefined);//返回NaN
var num3 = Number("hello");//返回NaN
var num4 = Number("");//空字符串返回0
var num5 = Number(123);//返回123,如果是数字,简单返回
var num6 = Number("123ab");//NaN
var num7 = Number("as123");//NaN
- 例如:
- parseInt()把字符串转换成整数
var num1 = parseInt("12.2a");//返回12,如果第一个字符是数字会解析知道遇到非数字结束
var num2 = parseInt("ab123");//返回NaN,如果第一个字符不是数字或者符号就会返回NaN
var num3 = parseInt(""); //空字符串返回NaN, Number("")返回0
var num4 = parseInt("10");//返回10
var num5 = parseInt("0xA");//返回10 - parseInt()可以传递两个参数(要转换的字符串,要转换的进制)
var num1 = parseInt("A",16);//A按10进制解析是10
var num2 = parseInt("10",16);//10按16进制解析是16
var num3 = parseInt("10",2);//10按2进制解析是2
2.3转换成布尔类型(两种方式)
- Boolean()函数
例如: var b = Boolean("123"); //返回yes - 流程控制语句会把后面的值隐式转换成布尔类型,任何类型可以转换成Boolean类型,一般用在流程控制语句后面
例如: var message = "hello";
if(message){alert(message +"world")};
空字符串,0,NaN,null,undefined --转换为false