JavaScript详解(3.变量和数据类型)

一,基本数据类型

  1. undefined未定义 (声明了变量但从未赋值 )

  2. null空 (赋值为null)

  3. boolean布尔型 (true,false)

  4. 字符串string (单引号、双引号均可)

  5. 数值number 包括整数和小数,NaN(Not a Number),Infinity, -Infinity

  6. 对象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));" />

变量的命名规则

  1. 变量命名必须以英文字母或是下标符号”_”或者”$”为开头。

  2. 变量名长度不能超过15个字符。

  3. 变量名中不允许使用空格。

  4. 不能使用脚本语言中保留的关键字及保留符号作为变量名。例如:var、*等。

  5. 变量名区分大小写。(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+"<br/>");//10

document.write(b+"<br/>"); //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>

猜你喜欢

转载自blog.csdn.net/qq_43623447/article/details/104032607