JavaScript基础2——关于变量

  • 变量的声明                   

        变量的定义:使用var关键字来声明,区分大小写的。注意:不用var,会污染全局变量
        变量的命名规范是:字母,数字,$符和下划线构成,但是不可以以数字开始,并且变量名不可以使用关键字。

     1、声明变量

1 <script type="text/javascript">
2     var i=123;//使用var关键字声明变量
3     var s="Jackie";
4     temp="直接赋值使用变量";//如果您所赋值的变量还未进行过声明,该变量会自动声明。
5     document.write(i+" "+s+" "+temp);
6 </script>

     2、重新声明变量

1 <script type="text/javascript">
2     var i=123;//使用var关键字声明变量
3     var i;//在重新声明该变量后,变量的值不会被重置或清除。
4     document.write("i的值是:"+i);//i的值还是123
5 </script>

    3、命名习惯

变量命名都以类型前缀+有意义的单词组成,用驼峰式命名法增加变量和函式的可读性。例如:sUserName,nCount。

      前缀规范:
      每个局部变量都需要有一个类型前缀,按照类型可以分为:

1

2

3

4

5

6

7

8

s:表示字符串。例如:sName,sHtml;

n:表示数字。例如:nPage,nTotal;

b:表示逻辑。例如:bChecked,bHasLogin;

a:表示数组。例如:aList,aGroup;

r:表示正则表达式。例如:rDomain,rEmail;

f:表示函数。例如:fGetHtml,fInit;

o:表示以上未涉及到的其他对象,例如:oButton,oDate;

g:表示全局变量,例如:gUserName,gLoginTime;

   4变量的生存期

       当您在函数内声明了一个变量后(用var,不用则为污染全局),就只能在该函数中访问该变量。当退出该函数后,这个变量会被撤销。这种变量称为本地变量或 局部变量。您可以在不同的函数中使用名称相同的本地变量,这是因为只有声明过变量的函数能够识别其中的每个变量。如果您在函数之外声明了一个变量(全局变量),则页面上的所有函数都可以访问该变量。这些变量的生存期从声明它们之后开始,在页面关闭时结束。

   5、变量的思维导图

  • JavaScript的数据类型

1、ECMAScript 有 5 种原始类型(primitive type),即 UndefinedNullBooleanNumberString
            typeof函数获取一个变量的类型:
            * undefined - 如果变量是 Undefined 类型的
            * boolean - 如果变量是 Boolean 类型的
            * number - 如果变量是 Number 类型的 (整数、浮点数)
            * string - 如果变量是 String 类型的 (采用""、'')
            * object - 如果变量是一种引用类型或 Null 类型的
            如:new Array()/ new String()...
            * funciton -- 函数类型

Null 数据类型:可以通过给一个变量赋 null 值来清除变量的内容。Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

 1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 2 
 3 <head>
 4 
 5   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 6 
 7   <title></title>
 8 
 9   <script type="text/javascript">
10 
11       alert(typeof null);
12 
13   </script>
14 
15 </head>
16 
17 <body>
18 
19 </body>
20 
21 </html>

 

 

Undefined数据类型:如下情况将返回 undefined 值:对象属性不存在,声明了变量但从未赋值。null和undefined的区别:

1 alert(typeof undefined); //output "undefined"
2 
3 alert(typeof null); //output "object"
4 
5 alert(null == undefined); //output "true"

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。

1 alert(null === undefined); //output "false"
2 
3 alert(typeof null == typeof undefined); //output "false"

null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false

        附上十八哥上课截图:

                     

 2、引用数据类型(对象、数组)
       引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象

     javascript引用数据类型是保存在堆内存中的对象,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作 对象在栈内存中的引用地址。所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。下面我们来演示这个引用数据类型赋值过程

 

自然,给obj2添加name属性,实际上是给堆内存中的对象添加了name属性,obj2和obj1在栈内存中保存的只是堆内存对象的引用地址,虽然也是拷贝了一份,但指向的对象却是同一个。故而改变obj2引起了obj1的改变。

基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。而引用类型值则是指那些保存在堆内存中的对象,即变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。

简而言之,堆内存存放引用值,栈内存存放固定类型值。

在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。原始值存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

 1 <script type="text/javascript”>
 2 var box = new Object(); //创建一个引用类型
 3 
 4 var box = "lee";  //基本类型字符串
 5 
 6 box.age = 23;  //基本类型值添加属性很怪异,因为只有对象才可以添加属性
 7 
 8 alert(box.age); //不是引用类型,无法输出
 9 
10 </script>

3、类型转换:
        使用:Number()、parseInt() 和parseFloat()做类型转换。Number()强转一个数值(包含整数和浮点数)。*parseInt()强转整数,*parseFloat()强转浮点数;函数isNaN()检测参数是否不是一个数字( is not a number);Boolean(value) - 把给定的值转换成 Boolean 型;String(value) - 把给定的值转换成字符串。

      4、数据类型思维导图

   

原文地址:https://www.cnblogs.com/Jackie0714/p/4940450.html