在上一篇文章中,我们主要介绍了javaScript的基本语法、数据类型、数组,这一篇的内容我们主要学习JavaScript的变量、对象
变量
变量是存储信息的容器。当然,这是百度上面的解释。我个人通俗的理解是(通过拆字法来分析):变,说明这个物质在某一领域是可以变化、可以拓展的,但是变化的主动权需要有一定依据,你不能不受控制的变化(某一领域,我们可以理解为数据类型,主动权可以理解为代码逻辑,用户使用逻辑);量,在某一领域要遵循该领域定义的相对范围之内,无休止的大或者小是不行的,否则计算机在区分数据类型的设计之初就没有了任何意义(一定范围,我们可以理解为数据类型对应的使用范围),在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量设计规则:
A:变量必须以字母开头
B:变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
C:变量名称对大小写敏感(y 和 Y 是不同的变量)
变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句,比如:
在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,只能用var申明一次,例如:
如上图,我们的a变量给他赋值的是一个数值类型,但当我们给a变量赋值字符串类型的"我是字符串类型哟",alert居然显示的是新赋值的结果
如果是在JAVA中,这种写法肯定不允许会直接报错的,首先因为字符串和int的数据类型不同,而且两者没有直接继承关系。但是在JS中,允许使用var进行这样的跨数据类型操作
JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数(也叫 方法 )体内,同名变量在不同的函数体内互不冲突。
为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。
启用strict模式的方法是在JavaScript代码的第一行写上:
' use strict ' ;
这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。所以,为了解决这个问题,我们最好严格要求自己,使用 var 变量进行对应的编码开发。
JavaScript 变量的生命周期:
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
对象
我们首先来复习下在Java中对于类和对象的概念。首先,Object 类是最顶层的基类,所有的类都直接或间接继承Object。Java这门语言的本质就是面向对象开发(new 对象,使用对象 ,比如我们new 一个女朋友,让她下面给男性朋友吃来补充能量),面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。类与对象时整个面向对象中最基础的组成单元。那么,在Java中,
类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
那么JavaScript的对象是什么?
首先,当我们这样声明一个 JavaScript 变量时:
var h = "Hello Word" ; 实际上已经创建了一个 JavaScript 字符串对象。JavaScript 中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等等。我们也可以自定义自己的对象。
JavaScript的自定义对象是一组由键-值(key - value)组成的无序集合,如下图:
这里的person.name person.age就是取出对象里面的值,这样的写法是不是很像我们java自定义bean里面用public声明的成员变量。
首先,JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,person的name属性为' tanzuowu ',age属性为26。要获取一个对象的属性,用 对象变量 . 属性名 的方式即可获取。
关于变量和对象的介绍大概就是这样
未完待续。。。
如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。
Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。