JavaScript学习笔记——语言基础(2)

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++等语言不同,是用来删除一个对象的属性的。

时间: 2024-10-14 04:43:28

JavaScript学习笔记——语言基础(2)的相关文章

JavaScript学习笔记——语言基础(1)

1.JavaScript虽然名字里包含Java,但它和Java的交集微乎其微. 2.JavaScript没有输入/输出的概念.它是一个在宿主环境下运行的脚步语言.帮助宿主环境与外界交流.最普遍的宿主就是浏览器,但在Adobe Acrobat,photoshaop,Yahoo的widget中也有JavaScript的解释器. 3.JavaScript的类型图谱如下: 4.JavaScript中的字符串是一些字符序列.它们是Unicode字符序列,每个字符都是由16位数字表示. 5.JavaScri

JavaScript学习笔记——语法基础1.1

一.写在前面的话 1.我们有听说过,在一些地方,会把JavaScript当作入门级编程语言,这是因为它相对易学,易习. 2.JavaScript是一门地地道道的编程语言,既然是一门语言,那就应该有专属于它本身的语法,掌握它的语法势在必行. 3.不要试图去记忆它的所有语法和关键字,事实上,几乎没有人能做到这一点. 4.没有一个人敢说,学JavaScript1年或者几年就能称为不败的神话,坚持下去,会让你走的更远,只有这样,你才可能欣赏到更美的风景. 5.制定一个适合你自己的计划,选择一本适合你的书

JavaScript学习笔记——DOM基础 2.1

一.DOM 1.DOM的基本概念 DOM是Document Object Model的缩写,意思是文本对象模型,也就是说,如果没有Document,DOM也就无从谈起.我们可以把创建的网页当作是一个Document对象. JavaScript的对象可以分为三种类型:由用户自定义的对象,由JavaScript本身提供的内建对象,以及由浏览器提供的宿主对象. 顺便提一下BOM(Browser Object Model)和WOM(Window Object Model),其实这两个说的是一种东西,但大

JavaScript学习笔记——对象基础

javascript对象基础 一.名词解释: 1.基于对象 一切皆对象,以对象的概念来编程. 2.面向对象编程(oop Object oriented programming) A.对象 就是人们要研究的任何事物,不仅能表示具体事物,还能表示抽象的规则,计划或事件. 属性的无序集合,每个属性可以存一个值(原始值,对象,函数) B.对象的属性和行为 属性:用数据值来描述他的状态 行为:用来改变对象行为的方法 C.类 具有相同或相似的性质的对象的抽象就是类.对象的抽象,就是类,类的具体化(实例化)

【Javascript学习】语言基础

数据类型 javascript数据类型分为两种:基本类型与对象类型 基本类型:数字.字符串.布尔值.null.undefined其中null与undefined代表了各自特殊类型的唯一成员 对象类型:所谓对象类型便是属性的集合,每个属性都是由键值对组成普通的对象时无序键值对,有序的键值对便是我们的数组了 还有一个特殊的对象便是函数函数是具有与他相关联的可执行代码的对象,通过调用函数运行可执行代码并返回结果 若是使用new操作符来新建一个对象我们便称之为构造函数每个构造函数定义了一个类——由构造函

JavaScript学习笔记——1.基础知识

1.在html中使用js <script>do something</script> <script src="test.js"></script> <a href="javascript:do something">Link</a> <button onclick="do something">Button</button> PS:一个html文件中

JavaScript学习笔记——语法基础1.2

一.数组 1.通常情况下,一个变量只能有一个值,若想拥有多个值,就需要使用数组,换句话来说,数组是一个特殊的容器,它可以根据需求存放一个或者多个值.2.数组可以用关键字Array来声明,声明的同时,可以设定它的长度length. var myArray = Array(3); document.write(myArray.length); //输出3 3.我们可以在声明数组的同时对它进行填充,也可以在声明之后进行填充,当然,我们需要对新填充的值指定存放位置,需要注意下标是从0开始计数的. Jav

JavaScript学习笔记——DOM基础 2.6

一.CSS-DOM 1.清楚一个概念 HTML负责的是结构,CSS负责的是样式,JavaScript负责的是动作(行为). 2.style属性 语法:element.style 返回:object style相对于element是一个属性,而style本身是一个对象,它包含了诸多元素的样式. 关于这一点,可以根据后面的例子去理解. 3.获取样式 例子:element.style.fontFamily 返回:style对应属性的值,如fontFamily,返回“Microsoft yahei” 注

JavaScript学习笔记——DOM基础 2.5

一.document.write方法 document对象write()方法,常用来向网页中输出字符串,圆括号中可以是要输出的字符串, document.write('这是我的个人博客'); 也可以是字符串变量, var myText = '这是我的个人博客'; document.write(myText); 还有一种,就是通过字符串和变量组合的方式进行输出. var myText = '这是我的'; document.write(myText + '个人博客'); document.write