JavaScript详解(3.变量和数据类型)
文章目录
- 一,基本数据类型
- 二,变量的声明
- 三,相关数据类型说明
一,基本数据类型
- undefined未定义 (声明了变量但从未赋值 )
- null空 (赋值为null)
- boolean布尔型 (true,false)
- 字符串string (单引号、双引号均可)
- 数值number 包括整数和小数,NaN(Not a Number),Infinity, -Infinity
- 对象object
二,变量的声明
JavaScript 是一种弱类型的脚本语言。
变量的声明(变量使用之前必须加var声明,编程规范)
可以通过var关键字来声明一个变量
典型声明方式:
var a=1;
var a, b=2, c;
var date = new Date();
var array = new Array(); //声明数组
不能使用未经声明的变量。
全局变量
- 在方法外部声明的变量
- 方法内部,没有加var关键字声明的变量
局部变量
- 方法内部,使用var声明的变量
补充:
Javascript:void(0); 用于超链接
Javascript伪协议
1. <script>
2. var a = 1; //全局变量,页面被加载时就执行!
3. function test1(){
4. var b = 3; //局部变量!
5. c = 4; //执行完方法test1后就被解释成全局变量!
6. }
7. function test2(){
8. alert(a);
9. alert(c); //先执行test1,再执行test2才能看到c的值!
10. alert(b);
11. }
12.</script>
<input type=button value=测试javascript伪协议 2.onclick="javascript:var a=3;alert(a);alert('a+3='+(a+3));" />
变量的命名规则
- 变量命名必须以英文字母或是下标符号”_”或者”$”为开头。
- 变量名长度不能超过15个字符。
- 变量名中不允许使用空格。
- 不能使用脚本语言中保留的关键字及保留符号作为变量名。例如:var、*等。
- 变量名区分大小写。(javascript是区分大小写的语言)
三,相关数据类型说明
1.Undefined类型
Undefined类型只有一个值,即特殊的undefined.
在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性.
当试图访问一个不存在的变量时,就会得到一个特殊值:undefined。
使用一个未初始化的变量也会如此。因为js会自动将变量在初始化之前的值设定为undefined.
var userName; //这个变量声明之后默认取得了undefined值
alert(typeof userName); // undefined;
alert(typeof passWord);//undefined;
2.Null类型
只有一个值null,使用typeof检测时会返回object
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。
实际上,undefined值是派生自null值 即 null==undefined;
尽管null和undefined有这样的关系,但它们的用途完全不同.无论在什么情况下,都没有必要把一个变量的值显式地设置为undefined,在可以设置成null,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。
3.Boolean类型
该类型只有两个值true和false
Boolean()函数 将任何数据类型的值都转换成Boolean值
String类型 任何非空字符串返回true,” “空字符串返回false
Number类型 任何非零数字值返回true,0和NaN返回false
Undefined 返回false
案例:
var str =“字符串自动在if中转Boolean”;//当字符串不为空Boolean(str)返回true
if(str){
alert(“可以进入语句块”);
}
字符串自动转成对应的Boolean值,由于存在这种自动执行的Boolean转换,因此要清楚的知道在流程控制语句中使用的是什么变量很重要
4.Number类型
用来表示整数和浮点数值(指的是双精度数值).
数据格式可以是:十进制,八进制,十六进制 整数
数值的范围
Number.MAX_VALUE 获取数值类型的最大值
Number.MIN_VALUE 获取数值类型的最小值
如果超出数值范围则显示Infinity 无穷大或者-Infinity 负无穷大
Infinity 是一个特殊值,它表示的是超出了js处理范围的数值,但Infinity依然是一个数字。
console.log(Infinity-Infinity); //NaN 这个是控制器的日志输出
console.log(-Infinity+Infinity);//NaN
正负Infinity相加不是0而是一个NaN,Infinity与其他的任何操作数执行任何算术运算的结果都是Infinity或者-Infinity
isNaN()函数,可以接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。
isNaN()在接收到一个值之后,会尝试将这个值转换为数值.
浮点数值:该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
由于保存浮点数值需要的内存空间是保存整数值的两倍,js会不留余地的将浮点数值转换为整数值。当小数点后面没有跟任何数字,那么这个数值就可以整数值.
案例:
var a = 10.;
var b = 10.00;
document.write(a+”
“);//10
document.write(b+”
“); //10
var a = 0.1;
var b = 0.2;
document.write(a+b);//0.30000000000000004
浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数.测试特定的浮点数值时会存在误差,即永远不要测试某个特定的浮点数值
数值转换
1.Number() 用于任何数据类型
如果是Boolean值,则转换成1和0
如果是数值,只是简单的传入和返回
如果是null值,返回0
如果是undefined,返回NaN
如果是字符串
(1)如果字符串中只包含数字和正负号,则将其转换为十进制数值(忽略前导的零)
(2)如果字符串中包含有效的浮点格式,则将其转换为对应的浮点数值(忽略前导的零)
(3)如果字符串是空,则将其转换为0
(4)如果字符串包含有效的16进制格式,则将其转换为相同大小的十进制数值
(5)如果字符串包含除以上格式的字符,则将其转换为NaN
(6)如果是对象则调用方法转换
5.String类型
字符串可以由双引号或者单引号表示
1.字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义序列
可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符
\’ 单引号,\“双引号,\\反斜杠
\t制表符,& 和号,\b退格符,\f换页符
\r 回车 作用:使光标到行首
\n换行 作用:使光标下移一行
\r\n 回车换行
2.字符串的特点
字符串一旦创建,它们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再将一个包含新值得字符串填充该变量.
3.字符串转换
(1)toString()方法,返回相应的字符串表现,数值,布尔值,对象和字符串都有toString()方法,但null和undefined没有
(2)String() 能够将任何类型的值转换为字符串,如果值有toString()方法,则调用该方法并返回相应的结果,如果值是null,则返回”null”;如果值是undefined,则返回”undefined”
(3)当将一个数字字符串用于算术运算中的操作数时,该字符串会在运算中被当做数字类型来使用。
var str01 = “3”;
var str02 = str01*3;
console.log(typeof str02);//number
(4)其他类型转换为字符串,只需要将其与空字符串拼接即可
1.<html>
2.
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5. <title>JavaScript初级</title>
6. <script> 7. function testNullUndefined() { 8. var a; 9. var b = null; 10. document.write("a的数据类型:" + a + "<br>"); 11. document.write("b的数据类型:" + b + "<br>"); 12. } 13. function testBoolean() { 14. var a = true; 15. var b = false; 16. if(a) { 17. alert("a的数据类型是boolean!"); 18. } 19. } 20. function testString() { 21. var a = "aaa"; 22. var b = 'bbbb'; 23. var c = new String("cccc"); 24. document.write(a + "<br/>" + b + "<br>" + c); 25. //外面用单引号,里面双引号。或者外面双引号,里面单引号。 26. //假如子字符串包含引号的常见的处理技巧! 27. var e = '"eeeee"'; 28. var f = "U're right!"; //var f = 'U're right!'; //这么写会出错! 29. alert(e + "\n" + f); 30. } 31. function testNumber() { 32. var a = 123; 33. var b = 12.345; 34. var c = NaN; 35. var d = 1 / 0; 36. document.write(a + "<br>" + b + "<br>" + c + "<br>" + d); 37. if(c == c) { 38. alert("c==c"); 39. } else { 40. alert("c是NaN值,他是js中唯一一个跟自己不相等的值! 41. 我们可以利用这个特点判断某个值是不是NaN!"); 42. } 43. if(isNaN(parseInt("sss"))) { 44. alert("刚刚运算的结果是:NaN!"); 45. } 46. } 47. function testObject() { 48. var d = new Date(); 49. alert(d); //其他对象,以及js基于对象编程,以后会讲!今天先了解下! 50. } 51. </script>
52. </head>
53.
54. <body>
55. <input type=button value=测试null和undefinedοnclick="testNullUndefined();" />
56. <input type=button value=测试booleanοnclick="testBoolean();" />
57. <input type=button value=测试Stringοnclick="testString();" />
58. <input type=button value=测试Numberοnclick="testNumber();" />
59. <input type=button value=测试Objectοnclick="testObject();" />
60. </body>
61.
62.</html>
还没有评论,来说两句吧...