JavaScript数据类型分为基本类型和引用类型。 基本类型有三种:数值型(number)、字符串型(string)、布尔型(boolean)。 引用类型主要指对象类型(object)。 两种特殊数据类型:未定义类型(undefined)和空类型(null)。
JavaScript属于弱类型程序语言(轻量级解释型脚本),又称为动态类型程序语言,因而一个变量不必事先声明类型,而是在使用或赋值时再确定其类型。
var i=3; var s=“abcdefg”;常量是程序中不能改动的数据,通常又称为字面常量。JavaScript的常量分别属于不同的数据类型。 (1)(number)数值型常量 数字(number)是最基本的数据类型。JavaScript和其他程序设计语言(如C和Java)的不同之处在于它并不区别整型数值和浮点型数值。在JavaScript中,所有的数字都是由浮点型表示的。
当一个数字直接出现在JavaScript程序中时,我们称它为数值直接量(常量)(numericliteral)。 整数(常量)可以用十进制****、十六进制或八进制表示, 浮点数(常量)可以用小数或科学计数法(指数形式)表示。 所谓十六进制数据,是以“0X”和“0x”开头,其后跟随十六进制数字串的直接量。例:
<script> var a=27;//十进制 alert(a); var b=027;//八进制 alert(b); var c=0x27;//十六进制 alert(c); var d=3.12e11;//浮点类型表示,等于3.12×10^11,e可以大写 alert(d); </script>e.特殊的数值常量 Infinity(很少用):Infinity表示无穷大。当一个数值或数值表达式的值超出可表示的最大值时,将被作为Infinity;当一个数值或数值表达式的值超出可表示的最小值时,将被作为−Infinity。其他数值与Infinity进行运算,结果仍为Infinity。
在JavaScript中0可以作为分母,不认为错误。
<script> var a=6/0; alert(a); </script>e.特殊的数值常量 NaN:NaN表示“Not a Number”,即不是一个数字。当计算0/0、或对Infinity求正弦值或计算Infinity与−Infinity相加的结果时,都将得到NaN。通过调用 isNaN方法 可以确定一个值是否为NaN。 判断某个值是否是 NaN,不能使用 == 或 === 运算符,而是用 isNaN()方法 。
<script> var tmp = 0/0; if(isNaN(tmp)){ alert("NaN"); }</script>(2)(string)字符串常量
使用单引号(‘’)或双引号(“”)括起来的一个或多个字符序列,字符串中可以包括汉字,可以有转义字符。 转义字符(字符串中可以加入转义字符) 以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。 JS关于转义字符方面的规定和C语言有点像。
<script> document.write("在字符串中,既可以加入单引号\',也可以加入双引号\"。"); </script> <script> alert("欢迎学习\njavaScript!"); </script>由于document是HTML元素,所以不执行\n,使用</br>
<script> document.write(“<h1>欢迎学习\njavaScript!</h1>"); </script>3)(boolean)布尔常量
布尔数据类型只有两个值,这两个合法的值分别由直接量“true”和“false”表示。一个布尔值代表的是一个“真值”,它说明了某个事物是真还是假。 主要用于条件的判断if语句、循环中。 在JavaScript中可以利用typeof运算符来查看一个值或变量的类型。小括号可加可不加,它的返回值是个字符串。
<script> document.write(typeof(123)+"<br />"); document.write(typeof "123"+"<br/>"); document.write(typeof true+"<br/>"); document.write(typeof NaN); </script> <script> var s="aaaa"; var t=123; var b=true; document.write(typeof(s)+"<br />"); document.write(typeof t+"<br/>"); document.write(typeof b+"<br/>"); </script>(4)undefined类型(未定义类型):只有一个值(undefined) a.当声明一个变量而未对其赋值,该变量的默认值和类型为undefined
b.当函数没有明确的返回值时,也返回undefined值。
<script> function a() {document.write(123456); } var b=a(); alert(typeof b);c.如果对未声明过的变量使用typeof运算符,则结果为undefined; d.如果对变量赋一个不存在的属性值,则该变量的类型为undefined;
<script> var b=window.color; document.write(typeof b); document.write(typeof c); </script>(5)null类型(空类型,是一种特殊的object类型数据)
null类型也是只有一个唯一值即null。 null值表示为空对象,用于定义空的或不存在的对象引用。所以对null执行typeof的时候会返回object。
<script> var a=null; alert(typeof a); document.write(a); </script> <body> <h1 id="ss" style="color:#F00">这是h1标题</h1> <script> var a=document.getElementById(“ss”); //获得对象后可以动态控制 a.style.color="#0F0"; alert(typeof a); </script> </body> <body> <script> function p() {var a=document.getElementById("ss"); a.style.color="#0F0"; alert(typeof a); } </script> <h1 id="ss" style="color:#F00" onclick="p()">这是h1标题</h1> </body>变量的主要作用是存储数据,变量是存放信息的容器。 (1)标识符的命名规则:标识符就是一个名字,用来为变量、函数等命名,标识符的命名规则如下: ① 标识符由字母、数字、下划线(_)或 符 组 成 , 但 不 能 以 数 字 开 头 。 标 识 符 中 不 能 有 空 格 、 ( + ) 、 ( - ) 、 ( , ) 或 其 他 符 号 。 例 如 : t e s t 1 、 t e x t 2 、 n a m e 、 符组成,但不能以数字开头。标识符中不能有空格、(+)、(-)、(,)或其他符号。 例如:test1、text2、_name、 符组成,但不能以数字开头。标识符中不能有空格、(+)、(-)、(,)或其他符号。例如:test1、text2、name、str等都是合法的标识符,、 a、a b+、name-1等都是非法的标识符。 ② 命名标识符时,最好把标识符的意义和其代表的意思对应起来即“见名知意”。可参考以下几种命名方法: Camel标记法:变量名的第一个字母为小写,后面单词均以大写开头 studentName studentAge Pacal标记法:变量名的第一个字母为大写,后面单词均以大写开头
StudentName StudentAge变量 在JavaScript中,变量也可以不作声明,直接赋值。例如:
x = 100; y = "125"; xy = true; cost = 19.5;(3)变量的作用域:JavaScript中变量分为全局变量和局部变量。 定义在所有函数体之外的变量是全局变量,其作用范围是整个网页; 定义在函数体之内用var声明的变量是局部变量,其作用范围是该函数体; 在函数体内直接赋值定义的变量也是全局变量。
变量的作用域: 【例1】编写代码说明全局变量和局部变量的作用域。
<script type = "text/javascript"> var a; // a在函数外声明,是全局变量,作用于整个脚本代码 function send() { a = "欢迎进入"; var b = “JavaScript”; // b在函数内声明,只作用于该函数体 c = "JS程序设计"; // c在函数内直接赋值,是全局变量 alert(a+b); // 显示"欢迎进入JavaScript" alert(a+c); // 显示"欢迎进入JS程序设计“ } send(); // 调用函数send,从而执行send()中的代码 alert(a+c); // 显示"欢迎进入JS程序设计" alert(a+b); // 出错,因为无法访问局部变量b </script>const关键字用于实现常量的定义。常量的命名遵循标识符的命名规则,习惯上常量名称总是使用大写字母来表示。 例如: const PI=3.14; const p=2PIPI; 常量一旦被赋值就不能改变,并且常量在声明时必须为其指定某个值。
