JavaScript数据类型简介及严格检查

1、数据类型

JavaScript中的数据类型与Java中相似,但定义方式有所不同,在JavaScript中,可以使用var定义所有内容,包括整形,浮点类型,字符串和bool类型等等,但是在java中,我们一般使用相应的定义符号来进行变量的定义。

1.1 字符串类型及相关操作

JS中的字符串相对于其他的字符串中还是有一些变化的,当然,也保留了一些特性,比如:转义字符的使用,“.length”方法的使用等等。这些基础的除外,JS中增加了新的特性:

多行字符串:使用``字符隔开,在中间可以插入多行的字符串(此按键在tab键上方);

模板字符串:同样是使用``字符,来将新定义的字符串中嵌套已经定义的字符串,如下图所示

 

图1.1  模板字符串的使用

字符串的不可变性:当我们定义好了一个字符串之后,如果我们使用数组的方法访问并试图更改其内容的时候,更改会生效,但并不会保存在字符串中,字符串仍未原来的值。

 图1.2  字符串的不可变性

我们在源代码中定义的字符串变量,可以通过报错信息了解到就是只读的,不能更改内容,而在浏览器端测试时定义的student字符串时可以做出更改操作的,但是内容并不会改变。

.substring方法:通过该方法可以截取字符串的部分内容,注意,该方法若只提供一个值则是向后截取,两个值则端点取值为”[ )”规则。

 

1.2 数组及相关操作

 JS中数组类似c++中的vector容器,可以通过更改数组长度这个属性值来直接改变数组的长度,也可以在数组前端和后端“塞入”元素。

.length方法:通过.length方法我们可以获取到数组的长度,而更改其获取的值可以直接改变数组的长度;

图1.3  .length()方法获取并改变长度

.push与.pop方法:调用二者可以在数组尾端插入或者弹出元素;

.shift与.unshift方法:shift方法用来删除数组的第一个元素,unshitf方法则用来在数组前端插入元素;

图1.4  四种插入方法的使用示例

.indexOf方法:该方法在字符串中也可以使用,用来查询指定元素在其中的位置;

.reverse与.sort方法:通过调用reverse方法可以将数组顺序翻转,sort方法则可以将数组从小到大排序,这两者在c++中均有使用;

.join:join方法输出数组元素,并用开发者为其提供的参数来将数组元素相连接;

.concat:将两个数组合并,声称一个新的数组,但是注意,这里的新数组是返回值,并不更改原本的两个数组;

图1.5  concat方法拼接字符串和join方法输出字符串

.slice:该方法与字符串中的substring方法一毛一样,包头不包尾地截取数组的指定长度生成一个新数组。

 

1.3 对象类型详解

 JS中对象定义方法如下:

图1.6 JS中对象的定义方法

这里的定义给人的感觉就是JS是简化版的类的定义,有类名,有类的属性值。其实,这也确实有部分类似类的地方,但是相比较于类,它要更加灵活一些。定义时,最后一个属性可以不加逗号分隔开,这也是为了保证对低版本的兼容性的问题。

 

对象属性的更改:我们直接使用“对象名.属性名”的方法来访问对象的属性,同样可以直接使用赋值语句对其内容进行更改。

对象属性的删除:我们使用delete方法来进行对象属性的删除,如我们想删除student对象中的name属性,我们可以使用delete student.name 的语句来实现删除,效果如下所示

图1.7  删除属性的效果

对象属性的添加:我们只需要使用类似对象属性更改的语句,直接对一个未定义的内容进行更改即可,如想在上面删除了name之后的student中重新添加回name,只需要 stude.name='xiaozhan' 就可以重新添加上name这一属性,如下所示:

图1.8 添加属性的效果

对象属性的查询:查询有两种不同的方法,我们可以调用父对象的方法“hasOwnProperty”进行访问,这里的查询对象是被限制在本对象中,我们定义的有就是true,没有就是false。注意,这里的查询内容需要加单引号,以表示其是字段内容。

图1.9 hasOwnProperty查询本对象和父对象中内容时的返回值

另一种方法则是使用“### in ###”的方法进行查询,比如name in student(承接上文),但是这里的查询范围不仅仅是定义的本对象,同样回去查询父对象的方法,也就是会去被继承的位置进行查询,如果有的话也会输出true,比如我们查询hasOwnProperty返回值也是true。

图1.10 使用in查询本对象和父对象中内容时的返回值

 

2、严格检查

由于JavaScript中很多内容采用的是较为“随意”的编写方式,所以在一些情况下,我们随手定义的全局变量可能会影响到别人写的JavaScript代码,因此,在JavaScript中,我们提倡使用let来定义局部变量而不是随手使用var定义全局变量。

同时,JavaScript还给我们提供了一种严格检查的方法,通过在<script><script/>中加入'use strict'的字段(注意要添加上括号),可以使JS自动帮助我们检查编写程序的严格性问题,帮助我们完善我们的代码。 

 

图2.1与图2.2  使用和不适用use strict的区别

通常情况下,我们编写都要加上use strict方法,来辅助我们进行相对严谨的JS内容编写。

 

posted on 2021-08-04 16:43  我真不会编程啊  阅读(69)  评论(0)    收藏  举报