js---12数据类型,数据类型转换,NaN,

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>

<script>
/*
ECMAScript,标准、核心 :必须写var ,if后面跟小括号不是大括号,规定数据类型,
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); };
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;//数组是object,数组也可以加属性
arr.fn1 = function (){ alert('ok'); };
alert( arr.abc );//999
arr.fn1();//函数调用

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

var n = null;
alert( typeof n );//object

var u;
alert( typeof u );            // undefined 未定义
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
//Number和parseInt可以处理小部分非数字,非数字太多就不行了。
<script>
var a = '+100';     //正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 = [ 1 ];
alert( Number(a3) );            // 1 0
var a3 = [ ];
alert( Number(a3) );            // 0
var a4 = null;
alert( Number(a4) );                // 0




var b = ' 200px';
alert( Number(b) );//NaN
alert( parseInt(b) );//200     parseInt(b,10):按照10进制转换
alert( parseInt('200px667677') );//200,只转前面的,
alert( parseInt('+200px667677') );//200,

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

var num = '200.45';
if( parseInt(num) == parseFloat(num) ){
    alert( num + '是整数' );
}else{
    alert( num + '是小数' );
}

var json = {};
alert( Number(json) );

var u;
alert( Number(u) );

var a3 = function (){ alert(1); };
alert( Number(a3) );            // NaN
</script>
</head>
<body>
</body>
</html>
<!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     变成数字197
    ++ --                var a='10';a--;alert(a) 9        变成数字
    > <                 alert('10'>9)  true  转成10>9,  alert('10'>'9') false 字符串的比较
    !    取反                    把右边的数据类型转成布尔值
    ==
*/

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

alert( '2' == 2 );//true
alert( '2' === 2 );//false
</script>
</head>
<body>
</body>
</html>
<!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: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 与自己都不相等!!
alert( a === a );                // false
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>

<script>
isNaN();// 判断是不是数字,不喜欢数字,不是数字true,是数字false
// 判断某些值是不是数字
// 不喜欢数字、讨厌数字
alert( isNaN( function(){ alert(1) } ) );//true
alert( isNaN('250') );//false,调用Number()  '250' => 250 => false
alert( isNaN( [] ) );//false,调用Number()=>0
</script>
</head>
<body>
</body>
</html>
<!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;//   '123'
        // HTML 中拿到的内容,类型都是字符串,即使输入123,也是字符串
        alert( typeof str );//string
        if( isNaN(str) ){//调用Number('123')=>123,是数字。
            alert( str + '不是数字' );
        }else{
            alert( str + '是数字' );
        }
    };
};
</script>
</head>
<body>
<input type="text" />
<input type="button" value="判断输入值是不是数字" />
</body>
</html>
原文地址:https://www.cnblogs.com/yaowen/p/6837765.html