根据变量被赋值内容的不同,变量有不同的类型(存的什么样的数据);接下来我们看看几种常见的变量类型
我们通过typeof操作符,用检测变量是什么类型的
检测结果----------------说明
undefined 未定义
boolean 布尔值
string 字符串
number 数字
object(Array,null) 对象
function 函数
三种基本的类型:数字、字符串和布尔值。
两种小数据类型:null 和 undefined。(为什么叫小数据类型?因为他们只定义了一个值)
两种复合类型:object 和 array(在这个类型中,它的值可以是基本数据类型,也可以是复合类型,也可以是小数据类型)
注意:在对象中有一个特殊的对象----function.(它是一个可以执行代码的对象.)
1)数字
Number类型包含两种数值:整型和浮点型。
var a5=123; //整形。整数
var a6=12.3; //浮点。小数
浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
NaN,即非数值(Not a Number)是一个特殊的值,这个数值表示一个本来要返回数值的操作数未返回数值的情况。在其他
语言中,任何数值除以0都会导致错误而终止程序执行。但在js中,会返回出特殊的值,因此不会影响程序执行。
var box = 0 / 0; //NaN
JS提供了isNaN()函数,用来判断这个值到底是不是NaN。
isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。
alert(isNaN(NaN)); //true
alert(isNaN(25)); //false,25是一个数值
2)字符串
凡不是纯数字的,必须用:双引号或单引号,成对括起来。//出现2对单、双引号,则要加反斜线:\
var a4='字符串';
var a41='abc';
var a42='123abc';
var a43='__123abc';
var a44='\'__1\'23abc';
3)boolean
只有true和false。JavaScript是区分大小写的,True和False或者其他都不是boolean类型的值。
var a2=true; //真
var a3=false; //假
数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 空字符串
Number 任何非零数字 0和NaN
Object 任何对象 null
Undefined undefined
4)undefined
使用var声明变量,但没有对其初始化时,这个变量的值就是undefined。
var a ; //从来未被申明
var a1; //申明过
5)null
Null类型是一个只有一个值的数据类型,即特殊的值null。它表示一个空对象引用(指针),而typeof操作符检测null会返回
object。
var box = null;alert(typeof box);
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null。这样,当检查null值就知道是否已经变量是否
已经分配了对象引用了。
var box = null;
if (box != null) {alert('box对象已存在!');}
undefined是派生自null的,因此ECMA-262规定对它们的相等性测试返回true。
alert(undefined == null);
6)对象
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
什么是对象:类实例化后的结果
什么是类:对某类事物的概括说明。
什么是概括说明:是人类观察、认识和改造世界的,与生俱来的本领
什么是实例化:是将某一类东西的概括说明,当成模板,产生出一个实际的物体每个,通过类(模板),而产生的对象,都有
属性和方法对象属性,
说明对象是什么:和别人的区别对象方法,说明对象能做什么:功能若没有属性和方法的对象,那么就是废柴,什么用都没
有我们可以通过以下方式,获得对象内部的信息:
对象.属性对象.方法()
如:获得字符串对象长度
var x='我是谁';
alert(x.length);//调用字符串对象的length属性
如:系统对象举例:new Date();//调用对象方法
//定义一个变量,并为其赋值。值是一个系统对象:日期对象,使用new关键字创建对象
var date=new Date();
//定义一个变量,并为其赋值。值是:调用日期对象的方法:年
var y=date.getFullYear();
alert(y);
7)数组
使用数组的原因,方便存取,并减少内存占用,好像是存放数据的一个个隔间。每个隔间都有房间号。放东西后,以后好找
东西,下标(房间号),从0开始。数组总数为最后一个下标+1 数组对象的作用是:使用单独的变量名来存储一系列的值。
创建数组的方法:
一维数组:
a. var a=new Array();
a[0]=1;.......a[n]=n+1;
b. var a=Array(1,2,3..n);
c. var a=[小孩,"小狗","小妹"];
二维数组:
二维数组实在一维数组上的拓展,如果把一维数组比作线的话,则二维数组就是面。做个形象的对比,一位数组内的元素都
在一条线上,而二维数组的元素既有水平方向也有垂直方向,就像是表格的样子一样。二维数组的创建很简单,可以看作是
特殊的一维数组,这个一维数组里的元素还是一维数组。
【格式】
new Array(
new Array(),
new Array(),
new Array()
);
【案例1】创建一个二维数组
var a=new Array(2);
a[0]=new Array(11,12);
a[1]=new Array(21,22);
【案例2】弹框输出2x2的二维数组的最后一个值,再改变最后一个值为100,并弹框输出
var a=new Array(
new Array(11,12),
new Array(21,22)
);
alert(a[1][1]);
a[1][1]=100;
alert(a[1][1]);
例如:循环输出数组元素的方法
js部分:
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (x in mycars){
alert(mycars[x]);
}
8)function
概念:函数是定义一次但却可以调用或执行任意多次的一段JS代码。函数对任何语言来说都是一个核心的概念。通过函数可
以封装任意多条语句,而且可以在任何地方、任何时候调用执行。
声明:JScript中的函数使用function关键字来声明,后跟一组参数以及函数名(英文开头的字符串,后面有小括号)、函
数体(用大括号括起来)。
分类:系统函数,自定义函数每个类型又分为
a.不带参数的函数
b.带参数的函数
c.无返回值的函数
d.有返回值的函数
系统函数
1)概念:js的内置函数,可直接拿来使用
2)要素:函数名称,参数,返回值
3)调用方式:使用函数名,并传参数给函数,可以在任意地方使用系统函数
4)调用结果:函数返回值
如:
alert():警告框,用来提示用户(项目常用)
confirm():确认框,让用户确认操作(项目常用)
prompt():提示框,用于提示用户在进入页面前输入某个值。然后点击确认或取消按钮才能继续操纵。(项目常用)
案例:
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
//函数名是:confirm
//参数是:x
//调用方式:使用函数名:confirm,并传参x
//返回值:赋值给r
var x="确定还是取消?";
var r=confirm(x);
alert(r);
//函数名是:prompt
//参数是:y。和一个空参数,对于这个函数来说,是为了:获得输入值
//调用方式:使用函数名:prompt,并传参y,和一个空参数
/返回值:赋值给name
var y="你叫什么名字?";
var name=prompt(y,"");
alert(name);
</script>
</head>
</html>
自定义函数:
1)概念:在很多时候,我们需要自己去创建一些特定功能的函数,叫自定义函数。
2)要素:a.声明:用function这个关键字来声明函数
b.函数名称:英文开头的字符串。后面要有小括号
c.参数:若有,在小括号中用:逗号隔开
d.函数体:用大括号:括起来
e.返回值:在函数体中,使用return 返回。并且,return后不执行其它代码!
如:
function test1(x){
return x;
alert(x);//不执行}
3)调用方式:
a.直接使用函数名,并传参数给函数全局。任意地方
如:
test1(123);
b.使用window.onload=函数名;//可不加括号表示html文档加载完毕。调用该函数
如:
window.onload=test(123);
c.在<body>中加载函数
如:
<body onload="test()">
d.通过事件驱动执行函数(onclick,onmouseover....)
如:
<input type="button" onclick="test(123)">
4)变量作用域:只在大括号内有效
5)变量生命周期:函数运行以后被清除
如: function test1(x){alert(x);}
调用:使用函数名,并传参数给函数全局。任意地方
如: function box(name, age) {//带参数的函数
alert('你的姓名:'+name+',年龄:'+age);}
box('feir',24);//调用函数,并传参
return返回值:带参和不带参的函数,都没有定义返回值,而是调用后直接执行的。实际上,任何函数都可以通过return
语句跟后面的要返回的值来实现返回值。
如:
function box() {//没有参数的函数
return '我被返回了!';//通过return把函数的最终值返回}
alert(box()); //调用函数会得到返回值,然后外面输出