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

Posted zhi_chao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础系列(变量与类型)相关的知识,希望对你有一定的参考价值。

以下内容将javascript简称为JS

打开本文时不管你是零基础的初学者还是其他语言的老兵,我都想说程序语言的基础支撑起了整个网络世界,不把这些基础学透之后稍复杂的内容会让你寸步难行。

现在先给编程语言的(基础)一个定义,基础并不难任何人只需要用心都能学会,在学习基础的过程中千万不要有这个对我来说用不到就忽略带过,既然是基础忽视任何一个细节都是致命的,在学习过程中遇见自己不懂的可以想放心里下次遇见了在去细细体会它的作用。

变量这一词在所有的程序语言中都是最为关键、最常见的存在,所以要透彻的了解变量就尤其的重要,必须重视,学习是带着疑问过去,回来时疑问被解开了(变量是什么?数据类型是什么?他们都起了什么作用?)。

 

(这段话给零基础学习的读者)很多初学者会有疑问,变量到底是干嘛的,可以做些什么啊?举一个最简单的例子:你想通过编写代码实现加减乘除的功能,那么首要的前提就是,你必须要有两个数字,但计算机不认识数字,那么就需要通过计算机能看懂的代码去把这两个数字存起来,也就是我们口中所说的定义变量,这里说的还是挺外围的,要用专业术语说就是通过解释器将预定好的代码翻译成二进制代码,接下去就是很底层的问题我们不需要考虑,只需要知道:“程序由代码生成,代码由人去预先设计之后在由计算机识别运行,我们所做的就是让计算机读懂人的思维”。

 

那么JS中如何定义变量:

在JS中通过var来定义一个变量

var a = 1;
var b = 2;
a+b // 3
a*b //2

var表示定义, a则表示变量名称, 数字1就是我们所说的变量,变量可以存放以下所说的七种类型包括函数,这么一来我们就可以把变量看做是一个空的盒子只要是符合规定的代码都可以往里存放,在关键的地方去使用它。

  • 变量的构成:定义、名称、变量。
  • 定义:告诉计算机我这里有变量并且帮我在内存中开辟一块空间存储这些(数据)
  • 名称:必须给这个变量起一个代号,以方便后面的调用。
  • 变量:放入我们需要用到的数据,这些数据就可看成是一副拼图中的一小块。
变量是你与计算机沟通的第一句话,也是日后使用最多的,所以必须要记住它的写法细节,新手常常会忘记加分号(;)或者关键词写错 这些都是程序报错的必查因素,需要重视在以后的开发过程中能避免很多弯路,这里也说几点我常常碰到容易疏忽的细节。
  1. 关键词与变量名的书写错误!
  2. 变量名在之后给某个功能块调用时,常常会因为一个字母没写对,可能就会花上十几二十分钟在找为什么出错我都是跟着视频或者文档书写的怎么就是报错呢?(新手特别容易出现这样的错误!所以在每次报错时先快速浏览一遍变量名与下面的调用是否真的一致)
  3. 关键词都是固定那么几个在实践中用心去记一记。
  4. 在我们日常写代码过程中,使用最多的就是前人留下来的代码库,而并非都需要自己去写,这就是各种库、框架的实质作用,它包含着这么多年来历经各式各样工程师验证的功能库,我们必须在学完基础重点去了解这些库的深层作用,以便应对工作的各种需求,各种编程语言都有它自己的功能库,当都有那么几个相同的库,如Array数组库、String文字处理库、Math数字处理库、Date时间获取库,这些库几乎所有编程语言都是互通的,八字不离其首的关系,所以我们在学完基础后必须快速的对这些基本库进行了解,下次讲库时在做深入分析。
 
这里说一下题外话在java中(不是JavaScript哦),如果你要定义数字变量需要使用int来定义,文字则需要String定义,如 int a = 1; string b = \'文字\';
 
而在JavaScript中则省去了这些,一个var就搞定,它的类型则是你所写的内容决定,如var a = \'文字\'; var b = 66,这里的a会被自动识别为文字类型,b会被自动识别为数字类型,其他类型同样都是会被自动识别的。
 
扯完这些,现在就来看看变量类型,也是学习任何一门编程语言都必须要面对的重点知识,这里只对JS中的数据类型进行分析。
 
七大类型:

阅读提示:可以粗略带过但希望认真阅读布尔值的讲解,(以下类型代码中我们不会直接接触到的,除了函数类型会使用:function来定义)

基本类型: 

number: 数字; var a  = 12;

 

string: 文字; var a  = \'文字\';

 

boolean: true,fales;  布尔值:真.假 ;

复合型(集合型):

Array:数组;var a  = [1,2,3,4,\'文字\',\'abc\'];它是一串数据的集合。

 

function: 函数; function a(){};它是通过代码实现的功能块。

 

object: 对象;先留印象之后讲到对象篇时在深入

特殊类型:

Null:空对象; 一般出现在调用对象时,这个对象并没有被定义

 

undefined: 未定义;一般出现在程序报错的情况下

 
要这些类型有什么用呢?
数字、文字,不用多说,通过这两类型完成数据的呈现,使用数字类型完成各式各样的算法。
 
function 函数也称方法:
  就是一个逻辑功能的集合,在上一章也说到过,函数是可以放置所有代码,而后在这些代码的辅助下形成一个有处理事务能力的功能块,在编程中使用最多的除了变量就必属函数,之后另开一篇深入讲解,让我们先把必要基础先打牢靠。
 
Array 数组:
  同样是各种编程语言共有的数据类型,它的功能就是将一系列需要处理的数据进行合并式的存储,特别需要注意的是想在数组中拿数据必须通过循环进行获取需要使用(length)这个属性(至于什么是循环什么是length你现在只需要留一个印象就好,暂时不要去钻牛角尖,后面都会有详细讲解,与数组有着类似功能的还有JS中的JSON对象,它的存储方式是通过键值对的形式进行存储。
什么是键值对?来看下面对比
  • JSON存数据, var a = {a:12,b:\'你好\',c:22}; 以键值对的方式进行存储,跟java中的map是一样的,这里的 a 就是 键,12 则是 值, 
  • Array数组存数据, var a = [1,2,\'你好\',123]; 
 千万不要忽视 方括号[]与花括号{}。
现在我们只是做一个了解看的不是很明白也没关系,在之后章节实践中使用到时在去做重点认知,把接下来的布尔值学好看明白才是学习本章的重点。
 
object 对象:
  在JavaScript中所有对象属于核心概念:它是JS中的老大哥,可它并非指具体谁谁谁是对象,而是一种范指,只有在使用一个对象时你可以把它具体化(实例化)通过new关键字来实现,之后在通过点(.)进行调用更加具体的功能块及属性。
在JS中任何数据都可以看做是对象,这也是我为什么说它是泛指的原因。
那么对象它到底能为我们做些什么呢?先说一下对象的写法与JSON相同,都是通过键值对的方式进行存放,在调用某个具体对象:属性时就是用键来调用其中的值,而且在对象中可以放置函数搭建我们自己的功能块,在这里我们先做一个简单的了解(只需要知道对象是功能块的集合,只有你想使用内置功能时去把它具体化出来在进行使用。)
 
Null与undefined:想详细了解可直接看这篇转载的文章。
 
boolean 布尔值类型:
  它的用途非常关键,所有的判断、循环语句都是靠着它才能正常执行,而一个程序如果没有判断就不可能是一个完整的程序,其实用白话讲:“程序想拥有处理事情的能力,必须要有分辨事物好坏的能力
 
那么怎么才能深入的了解这个布尔类型呢?我先推荐一位业界大神的文章 布尔代数——阮一峰;想学好前端跟着他才是正道。
我们从前面定义的两个变量入手
var a = 1;       //数字类型
var b = \'文字\';  //文字类型也叫字符串类型

a == b ; //true 真的 他们相等 将数字转换为字符串类型 a === b;//fales 假的 他们不相等 不做转换直接比较
上面的三等号(===)是运算符中的一种,叫做比较符,比较符还有(> 、< 、>= 、<= 、==、===、!=、!==;大于、小于、大于等于、小于等于、类型比较、!不等于);双等号(==)和现在看见的三等号(===),这些都不是本章重点讲运算符时重点分析。
现在我们要关注布尔值是在什么情况下会出现,这直接影响到我们将来写代码时逻辑的清晰度和可确定性,写判断语句时的底气,所以来看看布尔值的出现条件
  1. 在使用比较符时,布尔值必定会出现。
  2. 在JS中所有单独出现的值都可当做布尔值,但有以下规则。
    • undefined ,null ,0 ,-0 ,NaN ,“”   会被转换成false;(先了解一下以后碰到要使用时回来看看)
    • 所有其他值,包括所有独立对象、函数、数组、变量都会转换成true;(看清楚是独立的 并非两者有比较关系)
布尔值:它只有两个值,真和假,true和fales,判断语句if()只有在true(真)的情况下才会执行,而else则是在假的情况下执行,之后会讲解。
一个程序的判断能力,就是来自于布尔值的灵活应用,之后讲比较运算符,逻辑运算符在详细讲解它,这里先留下一个布尔值很重要的印象好吗?
 
小节:看完本章节你应当有以下收获
  1. 我们得知变量与类型是程序的入口。
  2. 写代码并不是所有功能都需要去自己实现,而是去灵活的使用前人给我们留下的功能集合(库),还有学不完的内置对象。
  3. 函数是可以放置任何代码的功能集,而想要让函数有功能必须先从定义变量开始之后在是一步步的代码逻辑。
  4. 程序的功能是由各式各样的判断产生(并非是绝对的)。
  5. 想要让程序有判断能力,必须使用到布尔值真与假(这是绝对的)。
  6. 了解布尔值的出现规则,这将会让自己避免特别多的弯路。
  7. 七大数据类型,我们现在只需要关注:数字、文字、布尔值、数组、函数、(而对象,在基础内容中出现较少,之后讲对象在做讲解,现在姑且把对象当中比函数更高一级的功能块就可以。)
  8. 让计算机读懂我们的代码必须使用这门语言预先设定好的关键字就行描述如:定义变量 var 、定义函数 function、 定义判断语句 if(),还有很多以后会一一提到。
  9. 还有很多读者可以自行总结。
 
 希望你能有所收获也希望,能得到你的点评谢谢阅读!

以上是关于JavaScript基础系列(变量与类型)的主要内容,如果未能解决你的问题,请参考以下文章

javascript 命名空间与运用(前端基础系列)

Javascript基础与面向对象基础~目录

JavaScript系列一:语言基础

5分钟快速入门JavaScript数据结构与算法的基础①JavaScript数据结构与算法系列

5分钟快速入门JavaScript数据结构与算法的基础①JavaScript数据结构与算法系列

5分钟快速入门JavaScript数据结构与算法的基础①JavaScript数据结构与算法系列