undefined

js数据类型、类型转换

js数据类型以及相关操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>

<script>

/*
ECMAScript:标准、核心
HTML 标签类型:block、inline、inline-block、table……
JS中的数据类型:数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义

typeof 判断数据类型

*/

var i = 100;
// alert( typeof i ); // number

var s = ' miaov ';
// alert( typeof s ); // string
// alert( s.length ); // 7
// alert( s.charAt(3) ); // 'a'

var b = true; // 布尔值:true false
// alert( typeof b ); // boolean
if ( true ) {}
for ( ; false ; ) { }

var fn = function (){ alert(1); };
// fn();
function fn1(){
alert(2);
}
// alert( fn1 );
// fn1();

var obj = document;
// alert( typeof obj ); // object 物体、东西、对象
obj.abc = 123;
obj.onOff = true;
obj.fn1 = function (){ alert(1); };
// alert( document.onOff ); // 123
// obj.fn1();

var arr = [ 1,2,3,4 ];
// alert( arr.length );
// arr[2] = 345;
// alert( arr );
// arr.push( 5,6,7 );
// alert( arr );
// alert( typeof arr ); // object

arr.abc = 999;
arr.fn1 = function (){ alert('ok'); };
// alert( arr.abc );
// arr.fn1();

var json = { name:'miaov', age:5 };
// alert( json.name + '今年' + json.age + '岁了' );
// alert( typeof json );//object

var n = null;
// alert( typeof n );//空的东西不能添加属性

var u;
// alert( typeof u ); // undefined 未定义
// 表示你写的程序出问题了~~

</script>

</head>

<body>
</body>
</html>

数据类型转换(显式类型转换)

字符串变成数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
	<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>

<script>

var a = '+100';
// alert( a+100 ); // '100100'
// alert( Number(a) ); // 100
var a1 = ' ';
// alert( Number(a1) ); // 0
var a2 = true;
// alert( Number(a2) ); // true-1 false-0
var a3=[];
alert(Number(a3)); //0
var a3=[''];
alert(Number(a3)); //0
var a3 = [ 1 ];
// alert( Number(a3) ); // 1
var a4 = null;
// alert( Number(a4) ); // 0
var a3=function(){alert(1);};
alert(Number(a3)); //NaN
////////////////////////////////////////////////////////////////////////////
var json = {};
// alert( Number(json) ); //NaN

var u;
// alert( Number(u) ); //NaN

var a3 = function (){ alert(1); };
// alert( Number(a3) ); // NaN
</script>
</head>
<body>
</body>
</html>

parseInt与parseFloat的区别与小技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    var b = ' 200px';
alert( parseInt(b) ); //200 默认十进制

var b = ' 200px';
alert( parseInt(b,16进制) ); //200 十六进制

var b = ' 200px1234567';
alert( parseInt(b) ); //200

var c = '12.34元';
// alert( parseInt(c) ); //12

var c = '12.34元';
// alert( parseFloat(c) ); //12.34

var c = '12.3.4元';
// alert( parseFloat(c) ); //12.3

验证是整数还是小数

1
2
3
4
5
6
var num = '200.45';    
if( parseInt(num) == parseFloat(num) ){
alert( num + '是整数' );
}else{
alert( num + '是小数' );
}

js中稀奇古怪的隐式类型转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
/*
显式类型转换(强制类型转换):
Number()
parseInt()
parseFloat()

隐式类型转换:
+ 200 + '3' 变成字符串
- * / % '200' - 3 变成数字
++ -- 变成数字
> < 数字的比较 、字符串的比较
! 取反 把右边的数据类型转成布尔值
==
*/

// alert( Number('……') ); NaN
// alert( '……'-9 ); NaN

// alert( '2' == 2 );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//字符串的比较
// alert( '10000000' > '9' );//false 一位一位地比较
// 数字的比较与字符串的比较
// '1000000' '9'

// alert( '2' == 2 ); //true 判断值,所以两个等号可以转换
alert('2'===2); //三个等号更严谨,先去判断类型,再去判断值
alert(!'ok'); //false
</script>
</head>

<body>
</body>

</html>

NaN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
// JS中的数据类型:数字(NaN)、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义

var a = Number('abc');
// alert( a ); // NaN

// NaN:not a number 不是个 数字 的 数字类型

// alert( typeof (a) ); // number

// 一旦写程序中出现:NaN 肯定进行了非法的运算操作
// alert( '200px' - 100 );

// NaN 是 false
if (a) {
alert( '真' );
} else {
alert( '假' );
}

var abc = [];
// alert( abc === abc ); true

// NaN 与自己都不相等!!除了NaN以外,其他的数据类型都是自己和自己相等的
alert(a === a); // false

isNaN();//判断某些值是不是数字类型 不是数字true 是数字 false
//在内部是根据Number来进行转换,转换之后进行判断
alert(isNaN('250'));//'250'--250--false
alert(isNaN(true));//true--1--false
alert(isNaN([]));//[]--0--false
</script>
</head>

<body>
</body>

</html>

isNaN()小应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() {
var aInp = document.getElementsByTagName('input');
var str = '';
aInp[1].onclick = function() {
str = aInp[0].value;
// HTML 中拿到的内容,类型都是字符串
// alert( typeof str );

if (isNaN(str)) {
alert(str + '不是数字');
} else {
alert(str + '是数字');
}
};
};
</script>
</head>

<body>
<input type="text" />
<input type="button" value="判断输入值是不是数字" />
</body>

</html>
觉得本站不错,请作者吃根辣条