• 变量的声明                   

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

1、声明变量

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

  2、重新声明变量

 <script type="text/javascript">
var i=123;//使用var关键字声明变量
var i;//在重新声明该变量后,变量的值不会被重置或清除。
document.write("i的值是:"+i);//i的值还是123
</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用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

 <head>

   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

   <title></title>

   <script type="text/javascript">

       alert(typeof null);

   </script>

 </head>

 <body>

 </body>

 </html>

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

 alert(typeof undefined); //output "undefined"

 alert(typeof null); //output "object"

 alert(null == undefined); //output "true"

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

 alert(null === undefined); //output "false"

 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),指向存储对象的内存处。

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

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

4、数据类型思维导图

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

JavaScript基础2——关于变量的更多相关文章

  1. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  2. JavaScript基础系列(变量与类型)

    以下内容将JavaScript简称为JS 打开本文时不管你是零基础的初学者还是其他语言的老兵,我都想说程序语言的基础支撑起了整个网络世界,不把这些基础学透之后稍复杂的内容会让你寸步难行. 现在先给编程 ...

  3. JavaScript基础精华01(变量,语法,数据类型)

    JavaScript是一种脚本语言. 脚本,一条条的文字命令.执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行 JavaScript基本组成 1.基本语法(浏览器基本都支持,有统 ...

  4. JavaScript 基础(五) 函数 变量和作用域

    函数定义和调用 定义函数,在JavaScript中,定义函数的方式如下: function abs(x){ if(x >=0){ return x; }else{ return -x; } } ...

  5. 【javascript基础】3、变量和作用域

    前言 这篇和大家说一下javascript中的变量和作用域,由于是将基础嘛,主要给大家捋一下知识,不想翻开书复习的道友可以看一下,打算刚开始学习javascript的同学可以扫一眼. PS:jQuer ...

  6. 初识 Javascript.01 -- Javascript基础|输出方式、变量、变量命名规范、数据类型、

    Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司   研发出世界上第一款浏览器. 95年 sun公司   java语言诞生 网景公司和su ...

  7. JavaScript基础回顾一(类型、值和变量)

    请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ...

  8. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  9. Javascript基础系列之(二)变量

    javascript 中变量通过var关键字(variable)来声明的. var school = "beijingyizhong" 也可以通过var 关键字给变量多个值. va ...

随机推荐

  1. 关于iOS GangSDK的使用,为App快速集成社群公会模块

    手上有一个自己开发的小游戏,想加一个家族系统活跃下游戏的氛围,想到这块儿可能会有大量的工作需要自己做,就偷了个懒去网上搜罗了一波,结果惊奇的发现居然真的有类似的服务,并且还是免费的,所以决定入坑尝试一 ...

  2. 一步步搭建最简单oauth2.0认证和授权

    oauth2.0 最早接触这个概念是在做微信订阅号开发.当时还被深深的绕进去,关于oauth2.0的解释网上有好多,而且都讲解的比较详细,下面给大家价格参考资料. http://owin.org/ h ...

  3. Function Programming - 纯函数(Pure Function)

    纯函数的定义,非常重要!! Pure function 意指相同的输入,永远会得到相同的输出,而且没有任何显著的副作用. 老样子,我们还是从最简单的栗子开始: var minimum = 21; va ...

  4. memcached一致性哈希及php客户端实现

    1.memcached分布式算法 memcached的分布式是依靠客户端的算法来实现,假设键名为$key,服务器数量为N,常规的实现方式有两种: 取模哈希 crc32($key)%N,通过这个算法将键 ...

  5. 基于ESXI6.5的服务器基本配置(HP DL388 Gen 9)

    最近一段时间由于做毕业设计的原因,一直处于忙碌状态,刚做完毕业设计,导师处于项目的原因,买了一台惠普服务器(人民币1.7万),服务器自带的内存仅有16 G,硬盘也就只有600G,而且磁盘还做了raid ...

  6. python 正则空格\xa0实录 与xpath取 div 里面的含多个标签的所有文字

    业余玩爬虫时,由原先的原生写法 改为 scrapy框架了,使用自带的selector时,xpath配合正则来抓取回复数和阅读数的时候,遇到的小问题,mark下. 首先获取到 我需要的数据块,(我用sc ...

  7. 找出共同好友 - 数据挖掘 - Scala版

    大家好,关于“找出共同好友”的算法,网上有不少语言的实现,今天有空之余,自己研究了下Scala算法的写法 完整代码可以参考Git地址:https://github.com/benben7466/Spa ...

  8. PHP入门怎么选?大学生适合学习吗?

    大学毕业,面对竞争激烈的社会,理想总是很丰满,现实却很残酷.在硕士.博士都随处可见的今天,本科和大专文凭就显得苍白无力,在面试官问你"有没有工作经验"的时候,你是不是只想起实习期间 ...

  9. 深入理解javascript函数进阶系列第一篇——高阶函数

    前面的话 前面的函数系列中介绍了函数的基础用法.从本文开始,将介绍javascript函数进阶系列,本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数 ...

  10. python3 中encode 和decode的使用方法。

    编码: 将文本转换成字节流的过程.即Unicode----------->特定格式的编码方式,产生特定的字节流保存在硬盘中(一般为utf-8格式). 解码: 将硬盘中的字节流转换成文本的过程.即 ...