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的转变。


总结

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



目录
相关文章
|
JavaScript 前端开发
70.【JavaScript 6.0】(八)
70.【JavaScript 6.0】
49 1
|
3月前
|
移动开发 JavaScript 前端开发
快速认识JavaScript
快速认识JavaScript
|
5月前
|
JavaScript 前端开发 算法
JavaScript 解密技巧大分享
JavaScript 解密技巧大分享
39 2
|
6月前
|
前端开发 JavaScript
实用的JavaScript小技巧
这些JavaScript小技巧可以帮助你更加高效地编写代码,提高代码质量和可读性。
39 1
|
存储 缓存 JavaScript
有趣的JavaScript(1)
有趣的JavaScript(1)
有趣的JavaScript(1)
|
编解码 JavaScript 前端开发
初识JavaScript
初识JavaScript
230 0
初识JavaScript
|
JavaScript 前端开发
JavaScript 自己实现 new
JavaScript 自己实现 new
|
JSON JavaScript 前端开发
javascript
理解ES 全称: ECMAScript js语言的规范 我们用的js是它的实现 js的组成 ECMAScript(js基础) 扩展-->浏览器端 BOM DOM 扩展-->服务器端 Node.
1306 0
|
JavaScript 前端开发
|
自然语言处理 JavaScript 前端开发