ECMAscript 标准、核心
规定了JS中的:语法、类型、语句、关键字、保留字、操作符、对象
一、数据类型
1、typeof ( 判断数据类型 )
2、JS中的数据类型:数字类型、字符串类型、布尔值、函数类型、对象、未定义
1)数字类型:
var i = 100;
alert(typeof i); // number
2)字符串类型:
var s = ‘ JavaScript ‘;
alert(typeof s); // string
alert(s.length); // 字符串的长度,空格也占位
alert(s.charAt(3)); //charAr 字符串下标
3)布尔值
var b = true;
alert(typeof b); //boolean
4)函数类型:
var fn = function () {alert(1);};
fn() // 弹出1
5)对象:( documnet, window. )
注:对象类型可以添加自定义属性:
obj.abc = 123;
alert( document.abc ); // 弹出123
注:对象类型可以添加自定义方法:
obj.fn1 = function (){alert(1);};
obj,fn1(); // 弹出1
1、 var obj = document;
alert(typeof obj); // object
2、 var arr = [1,2,3,4];
alert(typeof arr); // object
3、 var json = {num:1,age:5};
alert(json.num + json.age);
alert(typeof json); // object
4、 var n = null;
alert(typeof n); // object
6)未定义
var u;
alert(typeof u); // undefined
二、类型转换
(一) 显示类型转换
1、Number()
可以转的有:
(1) var a = ‘+100‘; (2) var a1 = ‘‘ (3) var a2 = true;
alert(Number(a)); // 100 alert(Number(a1)); // 0 alert(Number(a2)); // true 1; false 0
(4) var a3 = []; (5) var n= null;
alert(Number(a3)); // 0 空数组就是0;注意不要给太多东西,否则转不了 alert(Number(n)); // 0
不可以转的有: ( 转不出来的会显示NaN )
(1) var u;
(2) var json = {abc:123};
(3) var fn = function (){ alert(1); };
注:NaN: (not a number )
特性:1、"不是个 数字 的数字类型"
2、一旦程序中出现NaN,肯定进行了非法的运算操作
3、NaN在布尔值里是false
4、与自己不相等
注:isNaN:( Is not a number ) 主要是判断某些值是不是数字
isNaN在内部是根据Number来进行转换的,转换之后isNaN才判断,如果Number转出来的是数字,ISNaN就是false;反之就是true;
判断某些值是不是数字:
var str = ‘‘;
str = oText.value;
if(isNaN(str)){
alert(str + ‘不是数字‘)
} else{
alert(str + ‘是数字‘)
}
2、parseInt() 从左到右一个一个检测,遇到一个非数字的东西就不转换了
parseFloat() 只认第一个小数
例如: var num = ‘20.45‘;
alert(parseInt(num)); // 20
alert(parseFloat(num)); // 20.45
判断一个值是小数还是整数:
var num = 20.45;
if(parseInt(num) === parseFloat(num)){
alert(num + ‘是整数‘)
} else {
alert(num + ‘是小数‘)
}
(二) 隐式类型转换
+ 200+’3‘ 变成字符串 // 2003
- * / % ++ -- ‘200‘-3 变成数字
>< 要注意是数字的比较还是字符串的比较
! 取反 把右边的数字类型转成布尔值
== 两个等号是判断最终的值
=== 三个等号是:全等 不仅判断最终的值,还判断类型 (更为严谨)