• 变量的声明                   

        变量的定义:使用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. CocoaPods 安装及使用

    1.开启 terminal 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/ 3.使用新的源 $ gem sources -a ...

  2. 从MVC到Ajax再到前后端分离的思考

    前言 一位小妹去面试前端,前端leader问了"什么是ajax?",答:"接收后台的数据,然后然后自己填充和渲染样式":一位小哥去面试后台,技术经理问了&quo ...

  3. TypeScript入门,使用TypeScript编写第三方控件的方式!

    这是一篇新手篇的typescript插件编写方式!!!! 源码完整地址:https://gitee.com/dissucc/typescriptLearn 1.环境安装 node下载 下载地址:htt ...

  4. Java面向对象回顾(1)

    世界万物皆对象. 面向对象四大特性:继承.封装.多态.抽象 Java中现有类,再有对象.创建对象(对象实例化)必须先创建类. 将对象的特征对应写成类的属性. 将对象的方法对应携程类的方法. 如何创建对 ...

  5. scrapy初试水 day03(递归调用)

    import scrapyfrom scrapy.http import Requestfrom scrapy.spider import Rulefrom scrapy.linkextractors ...

  6. NYOJ-2359: 巴什博弈?

    2359: 巴什博弈? 时间限制: 1 Sec  内存限制: 30 MB 提交: 263  解决: 55 [提交][状态][讨论版] 题目描述 有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没 ...

  7. CCF-201503-3-节日

    问题描述 试题编号: 201503-3 试题名称: 节日 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一类节日的日期并不是固定的,而是以"a月的第b个星期c&q ...

  8. UWP 邮件反馈

    在我们构建App的时候,一个很人性化的设计就是增加邮件反馈渠道,就是让用户直接发邮件给你反馈. 当然,你也可以用系统自带的"反馈中心"(超级无敌难用,还经常打不开),或者使用商店的 ...

  9. php的过滤器功能

    1.简介 PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入. 1.1 外部数据: 来自表单的输入数据 Cookies Web services data 服务器变量 数据库查询结果 1 ...

  10. 独立安装WAMP

    安装apache 获得apache安装软件: 建议去官网下载: www.apache.org 双击执行: 进入欢迎界面 点击"next"进入到协议界面 接收协议点击"ne ...