JavaScript学习之旅-3(原创)

简介: 在上一篇文章中,我们主要介绍了javaScript的基本语法、数据类型、数组,这一篇的内容我们主要学习JavaScript的变量、对象变量变量是存储信息的容器。

在上一篇文章中,我们主要介绍了javaScript的基本语法、数据类型、数组,这一篇的内容我们主要学习JavaScript的变量、对象

变量

变量是存储信息的容器。当然,这是百度上面的解释。我个人通俗的理解是(通过拆字来分析):变,说明这个物质在某一领域是可以变化、可以拓展的,但是变化的主动权需要有一定依据,你不能不受控制的变化(某一领域,我们可以理解为数据类型,主动权可以理解为代码逻辑,用户使用逻辑);量,在某一领域要遵循该领域定义的相对范围之内,无休止的大或者小是不行的,否则计算机在区分数据类型的设计之初就没有了任何意义(一定范围,我们可以理解为数据类型对应的使用范围),在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量设计规则:

A:变量必须以字母开头

B:变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)

C:变量名称对大小写敏感(y 和 Y 是不同的变量)

变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句,比如:


img_454a551076dd7f978d8032d19ccc2fa3.png
基本变量


在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,只能用var申明一次,例如:


img_c3b25a56cdd163d1e47e7fa7096f0bea.png
只能用var申明不同的数据类型

如上图,我们的a变量给他赋值的是一个数值类型,但当我们给a变量赋值字符串类型的"我是字符串类型哟",alert居然显示的是新赋值的结果

如果是在JAVA中,这种写法肯定不允许会直接报错的,首先因为字符串和int的数据类型不同,而且两者没有直接继承关系。但是在JS中,允许使用var进行这样的跨数据类型操作

JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:


img_af735913d207426724e994be4a4e464a.png
全局变量

使用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)组成的无序集合,如下图:

img_8e5e6f69689619fb0442105745dbd0ac.png
自定义对象

这里的person.name person.age就是取出对象里面的值,这样的写法是不是很像我们java自定义bean里面用public声明的成员变量。

首先,JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,person的name属性为' tanzuowu ',age属性为26。要获取一个对象的属性,用  对象变量 . 属性名 的方式即可获取。

关于变量和对象的介绍大概就是这样

未完待续。。。

如果这篇文章对你有帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。

相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
70 0
|
3天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
29天前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
|
1月前
|
前端开发 搜索推荐 JavaScript
编程笔记 html5&css&js 001 学习编程从网页开始
编程笔记 html5&css&js 001 学习编程从网页开始
|
2月前
|
前端开发 JavaScript
从零开始学习前端开发:HTML、CSS、JavaScript入门指南
【2月更文挑战第1天】本文将带领读者从零开始学习前端开发,介绍HTML、CSS和JavaScript的基础知识与应用,帮助读者快速入门前端开发领域。
62 1
|
2月前
|
数据采集 机器学习/深度学习 JavaScript
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
51 0
|
2月前
|
JSON 前端开发 JavaScript
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
35 0
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
|
2月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
33 0
|
2月前
|
JavaScript 中间件 测试技术