博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript学习笔记——语言基础(2)
阅读量:6209 次
发布时间:2019-06-21

本文共 1002 字,大约阅读时间需要 3 分钟。

1、当你查询一个不存在的数组索引,结果会是undefined。

2、遍历一个数组可以像下面这样写:

for(var i = 0;i < a.length; i++){   //Do something with a[i]   }
     但这样效率比较低,因为每次循环都会计算一次数组长度。可以修改成:
for(var i = 0, len = a.length; i < len; i ++){    //Do something with a[i]}

    还有一种更好的写法是:

for(var i = 0, item; item = a[i]; i ++){   //Do something with a[i]}

  最后这种写法需要保证数组中不包含值是false的元素,否则还是用其他写法。

4、JavaScript中的函数调用,可以不给它传递预期的参数,此时,参数是undefined。

5、函数调用时,可以传递多于函数期望得到的参数数量,多余的将被忽略。函数会调用函数体内部的一个arguments内部对象。类似于数组对象,保存了函数调用时被传入的参数。所以多余的参数也可以通过从arguments中获取而被利用。

6、JavaScript中函数可以通过apply()调用,apply()有两个参数,第二个参数是一个数组,相当于把这个数组作为参数传递给原函数。JavaScript中的函数实际上也是一种对象。

7、闭包(closure)是JavaScript最强大的功能之一。当执行一个函数时,该函数会创建一个“范围对象”,这个对象用来保存这个函数中创建的局部变量。当这个函数执行完毕return后,通常JavaScript的垃圾回收器会清理掉“范围对象”。但返回值是个函数对象,新的函数中保留着对“范围对象”的引用,所以,此时不会回收这个“范围对象”。直到指向这个“范围对象”的引用计数为零才会回收。范围对象组成了一个范围链,类似于原型(prototype)链类似。

8、在IE中,闭包容易引起内存泄露,因为IE浏览器有自己的垃圾回收机制,而不是使用JavaScript自身的,两者之间的交互可能会引起内存泄露。

9、JS中的delete操作符与java,C++等语言不同,是用来删除一个对象的属性的。

转载于:https://www.cnblogs.com/Godyang/p/4027795.html

你可能感兴趣的文章
为什么是List list = new ArrayList(),而不直接用ArrayList(转)
查看>>
Spring包导入错误
查看>>
用WIN7批处理循环获取的机的内存和CPU信息
查看>>
ajax 检测用户名是否可用
查看>>
【转】Hive的insert操作
查看>>
第九篇、微信小程序-button组件
查看>>
UITapGestureRecognizer 的用法
查看>>
python之路--MySQL 库,表的详细操作
查看>>
Android-Dialog
查看>>
每天一道博弈论之“星空”
查看>>
ECshop在文章列表页调用文章简介
查看>>
JS 的execCommand 方法 做的一个简单富文本
查看>>
PHP根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围...
查看>>
poj 3581 Sequence(后缀数组,离散化)详解
查看>>
初次使用IDEA的相关技巧
查看>>
关于shell的一点东西
查看>>
用正则表达式写trim函数(javascript)
查看>>
【实习笔记】智能广场健身设备总结
查看>>
bzoj 4373 算术天才⑨与等差数列
查看>>
MAC下的XMPP环境搭建
查看>>