JavaScript笔记

来源:互联网 发布:淘宝买fifa 编辑:程序博客网 时间:2024/06/01 13:09

JavaScript笔记

函数定义:
函数可以通过声明定义,也可以是一个表达式, Function() 构造函数函数
(调用前使用了 new 关键字, 则是调用了构造函数new myFunction())

函数提升(Hoisting):
提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的的行为。
提升(Hoisting)应用在变量的声明与函数的声明。
因此,函数可以在声明之前调用

自调用函数
函数表达式可以 “自调用”。
自调用表达式会自动调用。
如果表达式后面紧跟 () ,则会自动调用。
不能自调用声明的函数。
通过添加括号,来说明它是一个函数表达式:

闭包可以访问上一层函数作用域里变量的函数,即便上一层函数已经关闭
使得函数拥有私有变量变成可能。

var add = (function() {
var counter = 0;
return function() { return counter += 1;}
})();

函数是对象:
JavaScript 函数描述为一个对象更加准确。
JavaScript 函数有 属性 和 方法

参数规则
JavaScript 函数定义时显式参数没有指定数据类型。
JavaScript 函数对隐式参数没有进行类型检测。
JavaScript 函数对隐式参数的个数没有进行检测

arguments.length 属性返回函数调用过程接收到的参数个数
toString() 方法将函数作为一个字符串返回

JavaScript 函数有个内置的对象 arguments 对象。
argument 对象包含了函数调用的参数数组

this指向函数执行时的当前对象。
当函数没有被自身的对象调用时, this 的值就会变成全局对象。
在 web 浏览器中全局对象是浏览器窗口(window 对象)
function myFunction() {
return this;
}
myFunction(); // 返回 window 对象

作为一个函数调用:
JavaScript 中函数始终是默认的全局对象
函数作为方法调用: J
JavaScript 中你可以将函数定义为对象的方法
使用构造函数调用函数:
函数调用前使用了 new 关键字, 则是调用了构造函数
作为函数方法调用函数:
函数是对象。JavaScript 函数有它的属性和方法。
call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身

addEventListener() 方法
removeEventListener() 方法来移除事件的监听
element.addEventListener(event, function, useCapture);
第一个参数是事件的类型 (如 “click” 或 “mousedown”).
第二个参数是事件触发后调用的函数。
第三个参数是个布尔值用于描述事件是冒泡还是捕获(事件传递有两种方式)。该参数是可选的。
默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素的事件
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件

当用户重置窗口大小时添加事件监听:
window.addEventListener(“resize”, function(){
document.getElementById(“demo”).innerHTML = sometext;
});

IE 8 及更早 IE 版本,Opera 7.0及其更早版本不支持 addEventListener() 和 removeEventListener() 方法。但是,对于这类浏览器版本可以使用 detachEvent() 方法来移除事件句柄:
element.attachEvent(event, function);
element.detachEvent(event, function);

JSON.parse()
用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify()
用于将 JavaScript 值转换为 JSON 字符串。

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,
该操作符指定要计算一个表达式但是不返回值

href="#"与href="javascript:void(0)"的区别# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。<a href="#pos">点我定位到指定位置!</a> <p id="pos">尾部定位点</p>

javascript:void(0), 表示一个死链接。

严格的比较运算中,=== 为恒等计算符,同时检查表达式的值与类型
switch 语句会使用恒等计算符(===)进行比较

常规的比较中,数据类型是被忽略的

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储

使用名字来作为索引的数组称为关联数组(或哈希)。

测试对象是否存在,正确的方式是我们需要先使用 typeof 来检测对象是否已定义:
if (typeof myObj !== “undefined” && myObj !== null)

JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。
对象只有被定义才有可能为 null,否则为 undefined

定义数组元素/定义对象,最后不能添加逗号

0 0
原创粉丝点击