JavaScript学习之旅-2(原创)

在上篇文章中,我们主要介绍了什么是javaScript,JavaScript所在的位置,如何引入具体的JS,以及简单的调试和打日志,这一篇的内容我们主要学习JavaScript的基本语法、数据类型、数组等

分号,花括号:

众所周知,Java是强类型的开发语言,而JavaScript是一门脚本语言。强类型语言对代码的语法格式要求严格,不按照语法格式进行编码,根本无法正常编译。JavaScript的语法和Java语言类似,每个语句以 ; 结束,语句块用{...}。

但是,JavaScript并不强制要求在每个语句的结尾加;(分号),浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;(分号)。但我们还是按照java那样严格要求语法,在每个语句的结束的时候自觉主动加上分号。下面是很low逼的代码,各位看官笑笑就好了。

alert 就是会在Html上面弹窗(类似我们Android里面的dialog),里面的 大于你,小于你 就是弹窗的内容。

这里不做过多描述......

JavaScript本身对嵌套的层级没有限制,但是过多的嵌套无疑会大大增加看懂代码的难度。遇到这种情况,需要把部分代码抽出来,作为函数来调用,这样可以减少代码的复杂度。

注释:

和java的单行多行注释一样,javascript也是以 / / 开头直到行末的字符被视为行注释,注释是给开发人员看到,JavaScript引擎会自动忽略;多行注释也是一样 /***/,


注释那点事儿

大小写:

请注意,JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。

数据类型:

首先我们一起来复习下,Java基本数据类型有那几种?Java基本数据类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double,也有人称为四类八种。说完了Java的数据类型,我们说说JavaScript的数据类型。

首先,JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:


Number数据类型

字符串:

字符串是以单引号'或双引号"括起来的任意文本,比如'java'(这里是单引号),"android"(这里是双引号) 等等。请注意,'  '或 "  " 本身只是一种表示方式,并不是字符串的一部分。因此,字符串' abc '只有a,b,c这3个字符。(字符 穿成串 就是字符串)

布尔类型:

一个布尔类型只有true、false两种值。(和java一模一样)要么是true,要么是false,可以直接用true、false表示布尔值,也可以通过布尔运算计算出来(比如第一张很low逼代码图),

1)&&运算是与运算,只有所有都为true,&&运算结果才是true

2)|| 运算是或运算,只要其中有一个为true,|| 运算结果就是true

3)! 运算是非运算,它是一个单目运算符,把true变成false,false变成true

上面3个布尔类型的使用规则跟java一样

布尔类型的使用注意:

要特别注意相等运算符 == 。JavaScript在设计时,有两种比较运算符:

第一种是 == 比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是 === 比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,我们应该严谨的坚持使用 === 比较。

另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己,唯一能判断NaN的方法是通过isNaN()函数:

还有:注意浮点数的比较


小学数学

看到这里你是不是觉得很纳闷, (1 - 2 / 3)不就是等于 1 / 3 嘛?JavaScript居然显示不等于。。。

首先,这不是JavaScript的设计缺陷。这是因为浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值,比如我们把代码改成这样 

解决浮点数精度丢失问题

null 和 undefined

null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值类型,' '表示长度为0的字符串,而null表示“空”。例如Java中,对没有实例化的对象,这个对象也就是null,使用这个没有实例化的对象里面的方法就会抛出 NullPonitException。。。在JavaScript中,还有一个和null类似的, 它叫undefined,它表示“未定义”。事实证明,两者区分的意义不大。(或者这是中西文化理解差异的一种体现,比如,在考四六级把温泉翻译成 hot water,把药草翻译成 medic grass 等等)大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。

数组

数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。记住,这里是任意数据类型,记住,这里是任意数据类型,JavaScript的数组索引的起始值为0。

数组初体验

好奇的大兄弟们会说,看下那个为null的或者索引为7及以上对应的值,会不会像java一样报什么数组越界的错,好的,开始实验:


验证不存在的索引

未完待续。。。

如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。

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

你可能感兴趣的:(JavaScript学习之旅-2(原创))