2-数据类型、常量与变量

一个程序的功能大致可以总结为:输入-》计算-》输出。
而要输入、输出、计算的东西就是数据。
数据,是指一切能够输入到计算机中的信息。不过无论输入的是文字、图片、音频还是什么,在底层都是二进制的,在表层的表现也就是数字。当然我们不会直接去处理二进制。
直接处理二进制是十分复杂的,因此,在JS中,数据分成了很多类型。主要就6种基本类型:string、boolean、number、null、undefined、object。我们可以通过typeof 数据的名字,来知道一个数据的类型,不过由于历史原因,null类型的数据会被错误地推断为object。
故名思议,上述分别代表字符串、布尔、数字、空、未定义、对象。
JS是弱类型的,但不是无类型的,所以它会根据值来自动推断数据类型。如果用引号(单引号、双引号、反引号)引起来的会被推断为字符串(string),数字会被推端为数字类型(number),其它类型之后再说。

常量和变量的声明

常量,即在运行过程中不可改变的数据;变量,即在运行过程中可以改变的数据。
常量有两种表示方式,一种是字面量,也就是直接写,比如3就代表数字3;还有一种就是取一个名字。
const 常量名
这样就声明了一个常量。
变量需要一个名字才能使用,因此我们就必须要取一个名字了,语法如下
var 变量名
或者
let 变量名
它们都可以声明变量,但它们是有区别的,这种区别我们以后再说。
常量或变量取名的过程称为声明。
如果一个常量或变量没有被赋值,那么它的默认值是undefined,它是undefined类型的,undefined类型只有undefined这一个值。同理null类型的值也只有null这一个值。null是专门用于对象类型的数据,值为null的对象,代表当前的对象是空的。

数据的赋值

如果定义了常量或变量直接使用一个等于号即可。例如

let price;
price=3;

也可以在声明时,直接使用等于号赋值。例如let num=3
需要注意的是,赋值使用的是一个等号,如果等号的数量多了,含义就会发生变化。
console.log方法可以传入多个参数,可以是任何类型的,每个不同的参数使用逗号隔开,控制台输出时会在每个参数中间加上空格。

表达式

在等号右侧,不仅可以是一个常量,也可以是一个变量或者一个表达式。
表达式,即由运算数和运算符组成的一个式子。操作数既可以是常量也可以是变量。
表达式有很多类型,最常见的就是算术表达式,也就是我们小学就开始学的四则运算。操作符加减乘除分别用+-*/代表。除此之外,还有一个模运算(%),模运算简单来说就是求余数。例如5%2=1,因为5除以2=2余1。
算术表达式中,也可以使用括号,结果是符合四则运算规律的。另外,在没有括号的情况下,模运算的优先级是最高的、其次是乘除、最后是加减。
【例2-1】用算术表达式计算1+2+3.

let sum=1+2+3;

BOM和DOM

BOM和DOM是浏览器环境下特有的内容,BOM是指和浏览器相关的东西、DOM是指和当前网页相关的东西。BOM中有很多特殊的对象,window就是其中之一,你声明的一些变量和方法/函数会变成window对象的一部分。
用var声明的会变成window对象的属性;而用const或let声明的则不会变成window对象的属性,这便是var和let的区别之一。
在NodeJS中,没有window对象,但是也有一个类似的叫做global的对象,同时为了让大家写代码时能够写相同的名称,就又有了一个叫做globalThis的对象,globalThis在浏览器中就是指window对象,在NodeJS中就是指global对象。
var和let还有一个区别就是var可以在之后重新声明,新声明的会覆盖原先声明的,而let不能重复声明。这是它们之间的区别之二。它们还有更多的区别。
document是DOM中的一个对象,同时它是也是window对象的一个属性。(对象的属性也可以是一个对象)。document有一个write方法,可以在网页上输出内容。在没有刷新网页的情况下,document的write方法,是会在上一次输出的后面输出新的内容,并且多个参数之间、多次使用该函数之间,均不会有换行和空格。

注释

注释,是不会被运行的文字。主要用于解释代码是用来做什么的,注释分为单行注释和多行注释。语法如下:

// 这是单行注释
/*
这是
多行
注释
*/

数据类型之间的转换

在一些情况下,数据类型会被隐式转换,但是我们也可以显示地转换数据类型。语法如下:

parseInt(常量或变量);
parseFloat(常量或变量);
常量名或变量名.toString();

以上三行分别会转换为整数、小数和字符串,前两行都可以是字面量或者数据的名称,但最后一行除了字符串可以是字面量之外,其它都不能是字面量。
前两行虽然分别是转换成整数或者小数,但是它们都是number类型的。

输入和输出

输出,在控制台输出就是使用console对象的log方法,在网页输出就是用document对象的write方法,这些前面已经介绍过了。当然还有其它的方法,这里暂时不做介绍。
输入,在JS中也是有很多方法,最常用的是获取网页中文本框的值,但是除此之外,我们也可以使用prompt弹出一个输入对话框来进行输入。但是无论如何,JS和DOM交互时,所有的数据都是会被转换成字符串类型进行处理的,所以在进行一些运算时需要进行类型的转换。
【例2-2】将输入的值赋值给变量num。

let num=prompt();

运行上述代码之后,会弹出一个对话框,输入一些东西,确定之后,输入的值就会被赋值给变量num,此时我们可以通过typeof num看到它的类型是string类型的。
String和string是不同的,虽然都代表字符串,但是string是基本数据类型,typeof会返回string,而String是一个类,它的实例,typeof会返回object。
prompt方法可以传入一个参数,这个参数代表在对话框上要显示的内容。
【例2-3】输入两个数字,并计算它们的和。

let num1=prompt();
let num2=prompt();
let sum=parseFloat(num1)+parseFloat(num2);
console.log(sum);

如果在上述代码中,将第三行的类型转换删去,那么就会得到不正确的结果了。例如,输入3和5,在上述代码中会输出正确的结果8,而删除类型转换,就会输出错误的结果35了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容