JavaScript -- 知识点回顾篇(一):数据类型,变量,类型转换,函数
1. 数据类型
Boolean:值类型,布尔(逻辑)只能有两个值:true 或 false。
Number:值类型,JavaScript 只有一种数字类型。数字可以带小数点,也可以不带
string:值类型,字符串可以是引号中的任意文本。您可以使用单引号或双引号
Undefined:只有一个值undefined
Null:只有一个值Null
Object:对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔。
2. 声明变量
(1)声明变量一般用 var 来声明(弱类型语言)。声明变量不写 var 关键字,表示该变量是一个整个页面都能访问的变量。
(2)变量声明未赋值 -> undefined。
<script type="text/javascript">
var i;
alert(i); //undefined
</script>
(3)变量未声明 -> 报错。
<script type="text/javascript">
alert(i);
</script>
(4)重复声明变量,忽略第二次声明,第二次的声明无效。(因为变量声明未赋值时,值是undefined。如果第二次声明有效,下图弹出的值应该是undefined)
<script type="text/javascript">
var i=10;
var i;
alert(i); //10
</script>
3. 变量作用域
在 js中不存在块级作用域范围。
在方法内声明的变量,在整个方法内可用;在方法外部声明的变量,整个页面可用。
4. 数据类型转换
(1)将字符串转换成数字类型:从第一个字符开始转,直到不能转换时返回。
<script type="text/javascript">
var s='123adsja'
s=parseInt(s);
alert(s);
</script>
(2)将数字当作 n 进制转换 (例:15作为8进制转换)
<script type="text/javascript">
var s=15
s=parseInt(s,8);
alert(s);
</script>
(3)字符串转换成整数,转换成小数。直到不能转换时返回。
<script type="text/javascript">
var s='32.666'
s=parseInt(s);
alert(s);
</script>
<script type="text/javascript">
var s='32.6.4.2'
s=parseFloat(s);
alert(s);
</script>
(4)把任意类型转换成数字类型
Number(false) -> 0
Number(true) -> 1
Number(undefined) -> NaN
Number('1.2') -> 1.2
Number('1.2.3') -> NaN
(5)把任意类型转换成Boolean -> 非空即为True
(6)把任意类型转换成string
<script type="text/javascript">
var s=123
alert(s.toString());
</script>
5. 判断一个值是否是一个 NaN ,不能用==,要用 isNaN
6. 逻辑运算符
|| :一个为真,不会再判断另一个
&&:两个都要判断
7. js 中没有函数重载,遇到同名函数,会用最后一次的函数定义覆盖前面的函数定义。
8. 在 js 中定义函数,无返回值类型,无参数类型(下图的函数 getSum 没有返回值类型,传入的参数a,b也没有变量类型)。
<script type="text/javascript">
function getSum(a,b){
return a+b;
}
alert(getSum(10,20));
</script>
9. 函数
(1)可变参数:实际调用时,所有的参数都包含在arguments对象中
<script type="text/javascript">
function add(){
var sum=0;
for(var i=0;i<arguments.length;i++)
{
sum+=arguments[i];
}
return sum;
}
alert(add(10,30,20,20,20)); //100
</script>
(2)在 js 中声明匿名函数
<script type="text/javascript">
var f = function (){
alert('Hello');
}
f();
</script>
(3)函数的预解析:在一个<script></script>标签内,会把所有的函数先预解析,js 代码再从上到下执行。
10. js脚本执行
当<script></script>块中的代码执行出错后,该块中的代码不会继续执行,但不会影响其他<script></script>块中的代码执行。