js02 变量数据类型
变量
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>