阮一峰JS教程读后感(一)数据类型(上)

2019-06-04  本文已影响0人  前端艾希

数据类型相关问题

关于JavaScript

JavaScript是一种动态弱类型语言。
动态语言:只有当代码运行时才会去检查变量类型,即在声明变量时不用指定数据类型。
弱类型语言:变量被赋值时不需要检查数据类型,即该变量被赋予什么类型的值,该变量就是什么类型。

  1. JavaScript有几种数据类型
JavaScript拥有6中数据类型,分别是:
1.数值(Number),整数或者浮点数;
2.字符串(String),'a','A','hello world!';
3.布尔值(boolean), True 或者 False;
4.null,表示空
5.undefined, 表示不存在
6.对象(object),一些数值的集合(我更愿意称之为字典)

2.NaN是什么意思?

NaN(not a number,非数)属于Number数据类型,表示不可表示的值,
比如 Number/String 这样的值无法表示,那么用NaN表示。主要出现在
字符串解析成数字解析错误的情况下。
并且NaN不等于任何数,与他自己也不相等

3.null和undefined的区别?

null:表示不存在
undefined:表示空
个人理解:其实这两者都表示不存在,但是null更高一级,undefined表示值不存在,
null直接表示对象不存在,即没这块内存地址。
区别:
1.typeOf(null) 返回 object, typeOf(undefined) 返回undefined
2.Number(null) 返回 0,Number(undefined) 返回 NaN

4.JavaScript有几种方法判断数据类型?

1.typeOf()
2.instanceof()
3.Object.prototype.toString()

5.为什么typeOf(null)为obj?

因为在JavaScript刚发布的时候null是object类型中的一个值,后来null独立出来了,
但是为了兼容以前的代码,这里也就没有修改。

6.布尔值的使用场景?

在判断语句中用于程序流程控制

7.JavaScript最多能处理多少位的十进制数字?

在JavaScript中所有数字都是由64位浮点数表示,第1位表示正负,第2至12位表示指数,
第13至64位(52位)表示的是小数部分,表示该数字的精度。
但是在JavaScript默认该数字整数位为1,所以其实是有53位数字来表示精度。
所以JavaScript能表示 -2^53 ~ 2^53之间的数字。
即16位十进制数字,所以用JavaScript来处理15位十进制数字是安全的。
至于大于该范围的数字会变成0.

8.JavaScript中+0和-0的区别?

在JavaScript中+0和-0都被当做一个正常的0来使用,唯一不同的是当做分母时,
1/(-0)返回-infinity,1/(+0)返回+infinity

9.parseInt()将字符串转成整数时的过程?

parseInt()会逐位将字符串转乘整数,直到某一位无法转换就停止。
并且可以接受两个参数,第二个参数表示转换的进制。

10.isNaN()的使用有哪些雷区?

isNaN(NaN) 为 true,isNaN('hellow') 也为true,所以isNaN返回true不一定是传入的是NaN,
而是可能传入了一个无法被转成数字的字符串。

11.Base64编码的使用场景?

Base64的目的是将任何字符转化成可打印字符,为的是程序中不出现特殊字符,
使用场景有要以文本格式传递二进制数值时可以使用Base64编码。

12.JavaScript的原生Base64方法有哪些?

btoa()将任意值转成base64编码,atob()将任意base64转成原来的码。

13.引用原始数据类型和复杂数据类型的区别?

如果两个变量同时引用了一个原始数据类型,那么这两个变量之间是copy关系,
不相互影响,如果改变其中一个变量的值不会影响另一个变量的值。
但是如果两个变量同时引用了一个对象,那么此时可以把两个变量看成两个指针,
同时指向一块内存地址,所以修改一个变量的值会影响到另一个变量的值。

14.JavaScript的对象中,哪些属性不能被删除?

1.对象不存在额属性不能被删除;
2.对象继承的属性或者方法不能被删除。

15.in和hasOwnProperty方法的区别?

in虽然能判断对象是否有该属性或者方法,但是不能判断是继承的还是对象其本身的,
hasOwnProperty()可以判断对象本身是否存在该属性或者方法。
上一篇 下一篇

猜你喜欢

热点阅读