详解JavaScript的变量和数据类型


Posted in Javascript onNovember 27, 2015

对于一门编程语言,肯定包含变量和数据类型。今天我们就来看看JavaScript脚本语言的变量和数据类型。相对
于其他的Java,C++等高级程序语言,JavaScript显得很简单。
一、变量
       JavaScript的变量是松散类型的,所谓松散就是用来保存任何类型的数据。变量是存储信息的容器。定义变量时要使用var操作符(var是关键字),后面跟一个变量名(变量名是标识符)。变量也就是初始化后可以再次改变的量。
那么我们来看看实例:

<span style="font-size:18px;">var x=2; 
var y=3; 
var z=2+3; 
document.write(x + "<br>"); 
document.write(y + "<br>"); 
document.write(z + "<br>");</span>

       就像代数那样:x=2,y=3,z=x+y在代数中,我们使用字母(比如x)来保存值(比如2)。通过上面的表达式z=x+y,我们能够计算出z的值为5。在JavaScript中,这些字母被称为变量。因此我们可以把变量看做存储数据的容器。
(1)JavaScript变量名
       与代数一样,JavaScript变量可用于存放值(比如x=2)和表达式(比如z=x+y)。变量可以使用短名称(比如x和y),也可以使用描述性更好的名称(比如age,sum, totalvolume)。
       需要注意的是:

       1变量必须以字母开头
       2变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
       3变量名称对大小写敏感(y和Y是不同的变量)
(2)JavaScript数据类型
       JavaScript变量还能保存其他数据类型,比如文本值(name="Bill Gates")。在JavaScript中,类似"Bill Gates"这样
一条文本被称为字符串。JavaScript变量有很多种类型,但是现在,我们只关注数字和字符串。向变量分配文本值
时,应该用双引号或单引号包围这个值。向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被
作为文本来处理。在后面有详细的数据类型介绍。
实例:

<span style="font-size:18px;">var pi=3.14; 
var name="Bill Gates"; 
var answer='Yes I am!'; 
document.write(pi + "<br>"); 
document.write(name + "<br>"); 
document.write(answer + "<br>");</span>

(3)声明(创建)JavaScript变量
       在JavaScript中创建变量通常称为“声明”变量。一个好的编程习惯是,在代码开始处,统一对需要的变量进行声
明。声明变量时也可以不使用var,但是不推荐使用这种。
       我们使用var关键词来声明变量:var carname;
       变量声明之后,该变量是空的(它没有值)。如需向变量赋值,请使用等号:carname="Volvo";
      不过,您也可以在声明变量时对其赋值:var carname="Volvo";
      例子:我们创建了名为carname的变量,并向其赋值"Volvo",然后把它放入id="demo"的HTML段落中。

<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>JS变量和数据类型</title> 
</head> 
 
<body> 
<p>点击这里来创建变量,并显示结果。</p> 
 
<button onclick="myFunction()">点击这里</button> 
 
<p id="demo"></p> 
 
<script type="text/javascript"> 
function myFunction() 
{ 
var carname="Volvo"; 
document.getElementById("demo").innerHTML=carname; 
} 
</script> 
</body> 
</html></span>

      点击效果:

 详解JavaScript的变量和数据类型

(4)一条语句,多个变量
您可以在一条语句中声明很多变量。该语句以var开头,并使用逗号分隔变量即可:  

var name="Gates", age=56, job="CEO";

声明也可横跨多行:

<span style="font-size:18px;">var name="Gates", 
age=56, 
job="CEO";</span>

      在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。在执行过以下语句
后,变量carname的值将是undefined:var carname;
(5)重新声明JavaScript变量
      如果重新声明JavaScript变量,该变量的值不会丢失:在以下两条语句执行后,变量carname的值依然是"Volvo":

<span style="font-size:18px;">var carname="Volvo"; 
var carname;</span>

(6)JavaScript算数
      您可以通过JavaScript变量来做算数,使用的是 和+这类运算符:
      例子:

<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>JS变量和数据类型</title> 
</head> 
 
<body> 
<p>假设 y=5,计算 x=y+2,并显示结果。</p> 
<button onclick="myFunction()">点击这里</button> 
 
<p id="demo"></p> 
 
<script type="text/javascript"> 
function myFunction() 
{ 
var y=5; 
var x=y+2; 
var demoP=document.getElementById("demo") 
demoP.innerHTML="x=" + x; 
} 
</script> 
</body> 
</html></span>

点击效果:

 详解JavaScript的变量和数据类型

二、数据类型
       JavaScript的数据类型包括字符串、数字、布尔、数组、对象、Null、Undefined。在讲数据类型之前我们先讲一个操作符typeof。
       typeof操作符
       typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof操作符会返回如下字符串:

详解JavaScript的变量和数据类型 

<span style="font-size:18px;">var box='English'; 
alert(typeof box); 
alert(typeof English);</span>

上述两种方式都是可行的。
       typeof操作符可以操作变量,也可以操作字面量。虽然可以这样使用,typeof(box),但,typeof是操作符而非内置函数。函数是对象,不是一种数据类型,所以,使用typeof来区分function和object是非常有必要的。
返回值是函数的例子:

<span style="font-size:18px;">function box(){ 
} 
alert(typeof box);//box是Function函数,值是function box(){},类型返回的字符串是function。</span>

(1)JavaScript拥有动态类型
       JavaScript拥有动态类型。这意味着相同的变量可用作不同的类型:
实例:

<span style="font-size:18px;">var x //x为undefined 
var x = 6; //x为数字 
var x = "Bill"; //x为字符串</span>

(2)JavaScript字符串String类型
       字符串是存储字符的变量。字符串可以是引号中的任意文本。您可以使用单引号或双引号:;
实例:可以在字符串中使用引号,只要不匹配包围字符串的引号即可

<span style="font-size:18px;">var carname1="Bill Gates"; 
var carname2='Bill Gates'; 
var answer1="Nice to meet you!"; 
var answer2="He is called 'Bill'"; 
var answer3='He is called "Bill"'; 
document.write(carname1 + "<br>") 
document.write(carname2 + "<br>") 
document.write(answer1 + "<br>") 
document.write(answer2 + "<br>") 
document.write(answer3 + "<br>")</span>

字符串类型还定义了转义字符:

详解JavaScript的变量和数据类型

(3)JavaScript数字
       JavaScript只有一种数字类型。数字可以带小数点,也可以不带。Number类型包含两种数值:整型和浮点型。输出的格式均按照十进制数输出。最基本的数值字面量是十进制。也包括八进制数值字面量,前导必须是0,八进制序列(0到7,以8为基数);十六进制字面量前面两位必须是0x,后面的是(0到9及A到F);浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
       1对于那些过大或过小的数值,我们可以采用科学计数法(e表示法),用e表示该数值的前面10的指数次幂。例如:

<span style="font-size:18px;"><span style="font-size:18px;">var box=4.12e-9;</span></span> 

       2要想确定一个数值到底是否超过了规定范围,可以使用isFinite()函数,如果没有超过,返回true,超过了返回false。
 3isNaN()函数用来判断这个值到底是不是NaN。isNaN()函数在接收到一个值后,会尝试将这个值转换为数值。
isNaN()函数也适用于对象。在调用isNaN()函数过程中,首先会调用value()方法,然后确定返回值是否能够转换为数值。如果不能,则基于这个返回值再调用toString()方法,再测试返回值。
实例:
<span style="font-size:18px;">var x1=36.00; 
var x2=36; 
var y=123e5; 
var z=123e-5; 
document.write(x1 + "<br />") 
document.write(x2 + "<br />") 
document.write(y + "<br />") 
document.write(z + "<br />")</span> 
 (4)JavaScript布尔
 布尔(逻辑)只能有两个值:true或false。例如:
var x=true; 
var y=false;

(4)JavaScript数组
       数组下标是基于零的,所以第一个项目是[0],第二个是[1],以此类推。下面的代码创建名为cars的数组:

<span style="font-size:18px;">var cars=new Array(); 
cars[0]="Audi"; 
cars[1]="BMW"; 
cars[2]="Volvo";</span> 
 或者:
<span style="font-size:18px;">var cars=new Array("Audi","BMW","Volvo"); </span>

实例

<span style="font-size:18px;">var i; 
var cars = new Array(); 
cars[0] = "Audi"; 
cars[1] = "BMW"; 
cars[2] = "Volvo"; 
for (i=0;i<cars.length;i++) 
{ 
document.write(cars[i] + "<br>"); 
}</span>

输出的结果很容易知道。
 (5)JavaScript对象
       对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:"Bill", lastname:"Gates", id:5566}; 
       上面例子中的对象(person)有三个属性:firstname,lastname以及id。空格和折行无关紧要。声明可横跨多行:

var person={ 
firstname : "Bill", 
lastname : "Gates", 
id: 5566 
};

       对象属性有两种寻址方式:
       实例

var person={ 
firstname : "Bill", 
lastname : "Gates", 
id: 5566 
}; 
document.write(person.lastname + "<br />"); 
document.write(person["lastname"] + "<br />");

 (6)Undefined和Null
       Undefined这个值表示变量不含有值。可以通过将变量的值设置为null来清空变量。
       Undefined类型

var box; 
alert(typeof box);//box是Undefined类型,值是undefined,类型返回的字符串是undefined。

       Null类型

var box=null; 
alert(typeof box);//box是Null类型,值是null,类型返回的字符串是object。

(7)声明变量类型
       JavaScript变量均为对象。当您声明一个变量时,就创建了一个新的对象。当声明新变量时,可以使用关键词"new"来声明其类型:

var carname=new String; 
var x= new Number; 
var y= new Boolean; 
var cars= new Array; 
var person= new Object;

以上就是关于JavaScript的变量和数据类型的全部内容介绍,希望对大家的学习有所帮助。

Javascript 相关文章推荐
6个DIV 135或246间隔一秒轮番显示效果
Jul 24 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
Nov 28 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
javascript动画系列之模拟滚动条
Dec 13 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
详解基于Bootstrap扁平化的后台框架Ace
Nov 27 #Javascript
Bootstrap精简教程
Nov 27 #Javascript
Bootstrap每天必学之标签与徽章
Nov 27 #Javascript
Bootstrap每天必学之导航条
Nov 27 #Javascript
javascript设计模式--策略模式之输入验证
Nov 27 #Javascript
jQuery实现图片预加载效果
Nov 27 #Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
Nov 27 #Javascript
You might like
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
php实现映射操作实例详解
2019/10/02 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
PyQt5实现拖放功能
2018/04/25 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
python实现学生信息管理系统源码
2021/02/22 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
英国行业制服供应商:Alexandra
2019/09/14 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
介绍一下JNDI的基本概念
2013/07/26 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
行政主管岗位职责
2013/11/18 职场文书
培训主管的岗位职责
2013/11/23 职场文书
公司董事长职责
2013/12/12 职场文书
党建目标管理责任书
2014/07/25 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
windows安装python超详细图文教程
2021/05/21 Python
Java实现给Word文件添加文字水印
2022/02/15 Java/Android