**学习目标
认识变量(声明、规则、全局变量、局部变量) 数据类型(基本类型、引用类型) 运算符、表达式、控制语句**
2.1变量
JavaScript 是一种弱类型的脚本语言 var c = 3;即变量的声明(变量使用之前必须加var声明,编程规范) 变量的命名规则!
1.变量命名必须以字母或是下标符号”_”或者”$”为开头。
2.变量名长度不能超过255个字符。
3.变量名中不允许使用空格。
4.不用使用脚本语言中保留的关键字及保留符号作为变量名。
5.变量名区分大小写。(javascript是区分大小写的语言) 全局变量 在方法外部声明的变量 方法内部,没有加var关键字声明的变量 局部变量 方法内部,使用var声明的变量
2.2 数据类型
ECMAScript中,数据类型也分为基本类型和引用类型两大类.
基本数据类型:Number、Boolean、String、Undefined、Null
Number:整数和小数(最高精度17位小数)、NaN、Infinity, -Infinity
注意:1.除10进制外,还可通过8进制和16进制的字面值来表示,如 070 表示56、0xA表示10.
2.小数为浮点类型,if(a+b == 0.3) //不要做这样的测试,因为 浮点数值最高精度是17位,而是0.300000000000000004. Undefined:表示变量声明但未赋值.
Null:表示一个空的对象引用(也就是赋值为null) 引用类型:Object类型 (比如对象、数组、RegExp、Date…)
Typeof 操作符 基本类型和引用类型的值 基本类型是按照值访问的,因为可以操作保存在变量中的实际值 引用类型则是按引用去访问的
2.3 运算符
运算符与表达式: 加减乘除、递增(++)、递减(–)、求余(%) 变量的自动转换
=== 等同符:不会发生类型的自动转化!
== 等值符:会发生类型自动转化、自动匹配! 在程序中还经常使用到扩展赋值运算符,如:+=,-=,*=,/=,%=等 在复杂的表达式中往往会综合运用各种不同类型的运算符,而表达式的运算顺序有一定的规则:首先应按照运算符的优先次序从高到低的顺序,其次,优先级相同的运算符按照事先约定的结合方向(从左向右或从右向左)进行。
条件表达式的基本的语法是: (条件表达式1)?表达式2:表达式3
2.4 控制语句
基本上ECMAScript的控制语句和java一致 if语句 if(条件)…else if(条件)…else switch
语句:switch (expression) {case const1:语句块1… default:…} for
(初始化部分;条件部分;更新部分){ 语句块… } while(条件) { 语句块… } do{ 语句块…
}while(条件) break语句是结束当前的循环,并把程序的控制权交给循环的下一条语句这里是结束循环,循环到此为止
continue语句是结束当前的某一次循环,但是并没有跳出整个的循环。这里是结束一次循环,整个循环还在进行(label . with)
//示例程序
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>variable</title>
<script type="text/javascript" charset="utf-8">
//全局变量与局部变量的简单说明
/*var a = 3; // number 全局变量
//变量一共有两种:全局变量 局部变量
function test()
{
var a = 2;
c = 5;
alert(a);//局部变量
}
alert(c);//error
test();
alert(c);//c已被定义
*/
//数据类型 javascript是弱类型的语言,根据值确定其类型
//1.number类型 整数和小数
var a1 = 10;
var a2 = 10.5;
var a3 = NaN; //不是一个数
var a4 = 1/0;//正无穷
var a5 = 070;//八进制数
// alert(a4);
// alert(a5);
var a6 = 0.1;
var a7 = 0.2;
// if(a6 + a7 == 0.3)
// {
// alert("等于0.3");
// } else{
// alert("不等于0.3");
// }
var a8 = parseInt("aaabbbccc");
// alert(a8); //NaN不是一个数
var a9 = parseInt("12bbccc");
// alert(a9);//12
//undefined 数据类型 它的值只有一个:undefined
var b1 ;
// alert(b1);
//Null 空值
var b2 = null;
// alert(b2);
//String
var str1 = "我是字符串1";//单双引号都可
var str2 = '我是字符串2';
// alert(str1);
// alert(str2);
var flag1 = false;
var flag2 = true;
//引用数据类型
var arr = [1,2,3,4];//js数组 引用数据类型
var dates = new Date();//日期类型 引用类型
//typeof操作符 -用来判断数据类型的
var a = 10;
var b = 10.3;
var c = true;
var d = 'abcd';
var e = new Date();
var f = NaN;
var g = [1,2,3];
alert(
(typeof a) + ":" + (typeof b) + ":" +
(typeof c) + ":" + (typeof d) + ":" +
(typeof e) + ":" + (typeof f) + ":" +
(typeof f) + ":" +(typeof g)
);
</script>
</head>
<body>
</body>
</html>
//语句
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" charset='utf-8'>
/*var a1 = 10;
var a2 = 10.0;
if(a1 == a2){
alert("相等");
}*/
/*
var a = 1;//number
var b = true;//boolean
// == 表示可以经过自动转换 比较的是数值
// === 表示 可以经过自动转换 先比较值,再比较数据类型
if(a === b){
alert("相等");
} else{
alert("不相等");
}*/
// var c = 10 / 2 > 4 ? 5 : 3;
// alert(c);
// for(var i = 0;i < 5; i++)
// {
// alert(i);
// }
// for(;;)
// {
// alert("执行体!");
// }
var i = 0;
// while(i < 5){
// i++;
// }
// do{
// i++;
// }while (i < 5);
</script>
</head>
<body>
</body>
</html>
//