JavaScript入门(二)-显示类型转化和隐式类型转化等
一、对象
// 对象也属于引用类型,键:值格式。例如:
//创建一个对象
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// 取值方式
fName=person.firstName;
//赋值方式
person.firstName="Mike";
二、typeof()
返回参数的类型,返回内容为参数的类型名称(字符串格式)
返回的类型有number string boolean object undefined function
其中object反之引用类型对象,包括对象,数组,null(历史遗留问题)。
三、类型转换
1. 显式类型转换
Number()
将所有类型的数据转化为数字,如若不能转化为某数,则为数字类型的NaN
// 例如
Number("123");//返回值为123
Number("-123");//返回值为-123
Number("133.3");//返回值为133.3
Number("123a");//返回值为NaN,(无法转化为某数)
Number("a");返回值为NaN,(无法转化为某数)
Number(null);//返回值为0
Number(false)//返回值为0
Number(true)//返回值为1
Number(undefined)//返回值为NaN
parseInt()
将所有类型的数据转化为整型数字(十进制),如果不能转化则数字类型为NaN。与Number()不同的是规则存在不同
- 将第一次遇到非整型数字符号之前的数字转化为整型数字,如若不能则为NaN
//例如
parseInt("123");//返回值为123
parseInt("-123");//返回值为-123
parseInt("133.3");//返回值为133,“.”之前的转换
parseInt("123a");//返回值为123。
parseInt("a");返回值为NaN,(无法转化为某整型数)
parseInt(null);//返回值为NaN
parseInt(false);//返回值为NaN
parseInt(true);//返回值为NaN
parseInt(undefined);//返回值为NaN
//初次以外,parseInt()还可以双参数
parseInt(value,radix)
//radix表示value的进制
parseInt(14,8);//此时返回值为12
parseFloat()
将所有类型的数据转化为浮点型数字,如果不能转化则数字类型为NaN。与parseInt()的规则十分相似
- 将第一次遇到非浮点型数字符号之前的数字转化为浮点型数字,如若不能则为NaN
//例如
parseFloat("123");//返回值为123
parseFloat("-123");//返回值为-123
parseFloat("133.3");//返回值为133.3,“.”之前的转换。此处不同于parseInt()
parseFloat("123a");//返回值为123。
parseFloat("-123.3456a");//返回值为-123.3456。此处不同于parseInt()
//此部分和praseInt()相同
parseFloat("a");//返回值为NaN,(无法转化为某整型数)
parseFloat(null);//返回值为NaN
parseFloat(false);//返回值为NaN
parseFloat(true);//返回值为NaN
parseFloat(undefined);//返回值为NaN
String()
将其他类型转化为字符串类型输出,不难理解
//例如
String(123);//返回值为"123"
String("-123");//返回值为"-123"
String(-123.3456a);//会报错
String("a");//返回值为"a"
String(null);//返回值为"null"
String(false);//返回值为"false"
String(true);//返回值为"true"
String(undefined);//返回值为"undefined"
toString()
使用方法与String()不同,效果与其相似,其将数字转化为字符串时具有进制转化功能
var a=16;
a.toString();//此时返回结果为"18"
//toString(radix);
a.toString(7);//此时返回值为"22"
2,隐式类型转换
isNaN(value)
该函数会先将value值,调用用Number(),如果Number(value)为NaN,返回true;否则,返回false。
++ – +(正) -(负) --注意,此处不为加减运算
再该运算符运算之前,会将其先转化为数字。
var a = "123";
a ++;
documnent.write(a);//此时a为124
var b = "1"
b = -b;//此时,b为-1
var c = NaN;
c ++;
document.write(c);//c为NaN
+ (加号)
对于“+”
1. 数字运算,字符串连接
2. 任何类型加上字符串最终结果都会变为字符串。
- * / %
该类型都会转化为数字类型,效果类似于 ++ – +(正) -(负)
var c = 2 * "3";//此时结果为6
var a = "4" / 2; //此时结果为2
//等等,规则相似
&& || !
该运算符的隐式转化已在以前文章介绍过,在此不多介绍。
> < == !=
-
字符比较数字,字符会优先转化为数字
-
但在"==,!="要注意的特例是,只有undefined 、null仅相互相等,NaN不等于任何数据,包括自己NaN
-
不发生类型转换的有 === (绝对等于) !==(绝对非等于),例:“1”!==1;
以上,此为本人学习过程中的笔记,可能因为能力不足存在一些不足,还请大家多多包涵和给予建议,共同进步。