JavaScript问题总结

简介: JavaScript问题总结

  跟着纪老师的安排走,我们已经初学了HTML和CSS,现在正在学JavaScript,预计三周时间,在学习过程中也遇到了一些问题,和大家一一分享~~


问题一、根据下面代码说明:undefined是如何分配空间的?


<!DOCTYPE html>
<html>
<body>
<p>添加具有高索引的元素可以在数组中创建未定义的“孔”。</p>
<p id="demo"></p>
<script>
var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[6] = "Lemon";
fLen = fruits.length;
text = "";
for (i = 0; i < fLen; i++) {
  text += fruits[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>

运行结果为:

   undefined 这个变量从根本上就没有定义,而且它的原始类型是undefined,它显示在界面上只是占位的,当试图访问一个不存在的对象属性或数组项时,就会返回一个undefined值,所以索引为5和6指向的元素是不会分配内存的。

      JavaScript语言是弱类型的语言,数组内存空间是不连续的,数组加元素的时候可以自动扩容。


问题二:为什么创建出来的时间和预想的时间不同?


      使用 new Date(milliseconds),创建一个零时(January 1, 1970, 00:00:00 Universal Time)加毫秒的新日期对象,代码如下:


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var d = new Date(0);
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>


显示结果:

是因为电脑上设置的时区不同,显示的时间也不同,当把时间区域设置成为夏威夷时显示结果为:

在这里又引发出来一个问题,为什么new Date(0)显示的日期是1970年1月1日,1970有什么特殊的含义吗?

链接: 1970年1月1日那天,发生了什么?最伟大的变化是电脑的CPU和配合的计算机操作系统由32位向64的转变。


总结

      不断的遇见问题,不断的去解决问题。认真对待问题,以后再次遇到该问题时它已不再是坑而是垫脚石。



目录
相关文章
|
7月前
|
JavaScript 前端开发
javascript01
javascript01
40 0
|
9月前
|
JavaScript 前端开发
70.【JavaScript 6.0】(五)
70.【JavaScript 6.0】
54 1
|
8月前
|
存储 前端开发 JavaScript
javascript常用的东西
javascript常用的东西
119 0
|
10月前
|
存储 JavaScript 前端开发
JavaScript Day01 初识JavaScript 2
JavaScript Day01 初识JavaScript
36 0
|
11月前
|
移动开发 JavaScript 前端开发
|
11月前
|
JavaScript 前端开发
初学JavaScript
JavaScript
52 0
|
11月前
|
JavaScript 前端开发
JavaScript 中的 mailto
JavaScript 中的 mailto
|
JavaScript 前端开发
Javascript的特点
Javascript的特点
57 0
|
JavaScript 前端开发 Java
JavaScript简识
本文主要介绍前端三剑客中的JavaScript的基础语法,关于JavaScript的DOM API在下文中介绍。
125 0
JavaScript简识
|
JavaScript 前端开发
JavaScript字符串转数字
JavaScript字符串转数字 由于输入框或对话框返回的类型是字符串,但当我们想使用数字类型时进行一些数学的计算时我们就需要转换为数字类型,使用parseInt、parseFloat即可。
JavaScript字符串转数字