变量
JavaScript 是一种弱类型的脚本语言
var c = 3;即变量的声明(变量使用之前必须加var声明,编程规范)
变量的命名规则!
1.变量命名必须以字母或是下标符号”_”或者”$”为开头。
2.变量名长度不能超过255个字符。
3.变量名中不允许使用空格。
4.不用使用脚本语言中保留的关键字及保留符号作为变量名。
5.变量名区分大小写。(javascript是区分大小写的语言)
全局变量
在方法外部声明的变量
方法内部,没有加var关键字声明的变量
局部变量
方法内部,使用var声明的变量,出了方法就不行了
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 操作符
基本类型和引用类型的值
基本类型是按照值访问的,因为可以操作保存在变量中的实际值
引用类型则是按地址去访问的
<!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 a = 3;//number(代表int,float,double),方法外部var是全局变量
//变量一共有两种: 全局变量 局部变量
function test(){
var a = 2 ; //方法内部var局部变量
var b = 2 ; //方法内部var局部变量
c = 5 ; //全局变量,不加修饰符的变量用的少
alert(a); //2
}
test();//当成函数看,基础部分都当成函数看,
alert(c);//5,test()方法要先执行否则undefined
alert(b);//undefined
//javascript是弱类型变量的脚本语言 ,根据赋值决定变量的类型
// Number类型 整数和小数
var a1 = 10 ;
var a2 = 10.5 ;
var a3 = NaN; //not a number
var a4 = 1/0 ; //正无穷
var a5 = 070; //8进制 和16进制(0xA)
alert(a4);//Infinity正无穷
alert(a5);//56
var a6 = 0.1 ;
var a7 = 0.2 ;
if(a6+ a7 == 0.3){//a6+a7 = 0.30000000000000004
alert('等于0.3');
} else {
alert('不等于0.3');//走这里
}
var a8 = parseInt("aaabbcc"); //不是一个数
alert(a8);//NaN,转换不了数字,就说not a number
var a9 = parseInt("12bbcc");
alert(a9);//12
//undefined 数据类型 他的值就是undefined 表示变量声明了,但是没有被赋值
var b1 ;
alert(b1);//undefined
//Null 空值
var b2 = null ;
alert(b2);//null
//String ,js里面单引号双引号不区分
var str1 = "我是字符串1";
var str2 = '我是字符串2';
// Boolean
var flag1 = false ;
var flag2 = true ;
// 引用数据类型
var arr = [1,2,3]; //数组类型
var dates = new Date(); //日期类型
var obj = {}; //空对象
// typeof 操作符 用来判断数据类型的
var a = 10 ;
var b = 10.3 ;
var c = true ;
var d = 'abcd';
var e = new Date();//object
var f = NaN ;//number,
var g = [1,2,3];//object
var h = undefined ; //undefined类型
var i = null; //object类型,表示一个空对象的引用{}
alert(typeof i);
</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('相等');//走这里
}
if(a1 === a2){//都是number类型
alert('222222');//走这里
}
//js数据自动转换的机制
var a = "1" ; //非空字符串是true
var b = true ; //boolean
// == 表示 可以经过自动转换 转成相同的类型再比较数值
// === 表示 可以经过自动转换 先比较值, 再比较数据类型
if(a == b){
alert('相等');//走这里
} else {
alert('不等');
}
if(a === b){
alert('相等');
} else {
alert('不等');//走这里
}
//三目运算符:
var c = 10/2>4?5:3;
alert(c);//5
//关于for循环的特点:
for(var i =0 ;i <5 ; i++){//用var不用int,
alert(i);
}
</script>
</head>
<body>
</body>
</html>