1、数据类型:分为基础数据类型和复合数据类型。
1.1、基础数据类型的特点:分不开,不可分
数字:var a=12; //12不可分,如分成2个6,那么6还是数字。
字符串:var a='12';//字符串也不可分,分开的话还是两个字符串。
布尔值:2个值,true/false
末定义:undefined
1.2、复合数据类型的特点:可以分,分成基础数据类型。
对象:object
函数:function
例:
<script>
<span style="white-space:pre"> </span>var arr=[1,'aaa',3,4,5];
<span style="white-space:pre"> </span>alert(typeof arr);//弹出object;数组是对象。
<span style="white-space:pre"> </span>alert(typeof arr[0]);//弹出数组中的第0项的数据类型,弹出number
<span style="white-space:pre"> </span>alert(typeof arr[1]);//弹出数组中的第1项的数据类型,‘aaa',弹出string
</script>
如上例,数组可以拆分成数字类型和字符串类型。所以对象被称为复合数据类型。
2、数据类型转换
2.1字符串转成数字
parseInt(str);整数型
parseFloat(str);浮点型(保留小数)
Number(str)数字型,比前两种更严谨。字符串中只能包含数字;如包含字母或其它,提示NaN Not a Number不是一个数字。
例:
<script>
<span style="white-space:pre"> </span>alert(typeof NaN); //弹出’Number‘
</script>
通过typeof 类型检测,我们发现NaN是数字类型,’不是一个数字‘,是数字类型。
2.2如何判断一个数字是否NaN呢。
用isNaN ;true表示不是一个数字,
false表示是一个数字。
2.3隐式转换:但是不建议使用!!!
a++具有自动转换,如
<script>
var a='12';
a++;
alert(a++)<span style="white-space:pre"> </span>//13
</script>
a++与++a的区别
<script>
var a='12';
var b=a++;
alert(b) //12; 赋值的优先级高于++,先赋值后计算。
</script>
<script>
var a='12'; <pre name="code" class="javascript"><span style="white-space:pre"> </span>var b=<span style="font-family: Arial, Helvetica, sans-serif;">++</span>a;
alert(b) //13;
++a 先计算后赋值。</script>
a--
减号在js中,只能去运算。
3、作用域
3.1、什么是作用域?一个变量能够管辖的范围。
什么是变量?变量什么都可以存。
变量与改变量的区别?
改变量:没有var的变量,都是在改变量。
声明变量:变量前有var的,都是声明变量。
1.局部变量:只能在局部使用的变量。
2.全局变量:在哪都能用。
3.闭包:子函数调用父函数的局部变量。
4.函数中的参数 类似于 局部变量。
4、在js中的兼容性问题
4.1非行间样式的获取
obj.currentStyle('样式属性名');//IE浏览器
getComputedStyle(obj,false)['样式属性名'];//谷歌浏览器
5、随机数
var rnd=Math.random()*(大数-小数)+小数;
根据上述规则可以封装一个小小的随机数函数。
function rnd(n,m){
return Math.floor(Math.random()*(m-n)+n);
}