getElementById
返回一个对象getElementsByTagName("<tag>")
返回一个数组getElementsByClassName("<class1> <class2>")
返回一个数组
null
给元素添加事件处理函数后,一旦事件发生,相应的 JavaScript 代码得到执行。被调用的 JavaScript 代码可以返回一个值,这个值将被传递给相应事件处理函数。(指示是否执行默认的操作)
nodeType
属性node.nodeValue
<p>
中的文本
[<p>].nodeValue
将返回空值,<p>
元素本身的 nodeValue
为空值<p>
元素中的文本是一个文本节点,所以应通过其子节点的第一个节点去获取
[<p>].childNodes[0].nodeValue;
var a = function () {
for (var i = 0; i < 5; i++) {
console.log("aaa");
}
// for 语句中的循环计数量 i,在循环体外,仍可访问到 i==5
console.log(i);
}
a();
var person = new Object();
person.name = "Monsoir";
person.age = 22;
var person = {
name: "Monsoir",
age: 22
};
var person = {
"name": "Monsoir",
"age": 29,
5: true // 数值属性自动转换为字符串
};
var colors = new Array();
var colors = new Array(20);
var colors = new Array("red", "blue", "green");
// 省略 new
var colors = Array();
var colors = Array(20);
var colors = Array("red", "blue", "green");
var colors = ["red", "blue", "green"];
var colors = [];
undefined
undefined
if (Array.isArray(value)) {
// Do something if value is an array.
}
toLocaleString()
方法toString()
方法push()
,模拟队列操作pop()
,模拟相反方向的队列操作toString()
,比较得到的字符串var values = [0, 1, 5, 10, 15];
values.sort();
alert(values); // 0, 1, 10, 15, 5
// Define a compare function
function compare(value1, value2) {
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
// Invoke the compare function
var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); // 0, 1, 5, 10, 15
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1); // green,blue,yellow,purple
var colors3 = colors.slice(1, 4); // green,blue,yellow
// 删除数组前两项
var resultArray = originArray.splice(0,2);
// 从数组的位置2开始插入字符串 "red" 和 "green"
var resultArray - originArray.splice(2, 0, "red", "green")
// 删除数组位置2开始的一个项,并从位置2开始添加 "red", "green"
var resultArray = originArray(2, 1, "red", "green");
this
的值,可选var number = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return item > 2;
});
alert(everyResult); // false
var someResult = numbers.some(function(item, index, array){
return item > 2;
});
alert(someResult); // true
var filterResult = numbers.filter(function(item, index, array){
return item > 2;
});
alert(filterResult); // [3,4,5,4,3]
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); // [2,4,6,8,10,8,6,4,2]
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); // 15
callee
属性,这是一个指针,指向拥有这个 arguments
对象的函数function factorial(num) {
if (num <= 1) {
return 1;
} else {
return num * factorial(num - 1); // 函数的执行与函数名耦合了!
}
}
function factorial(num) {
if (num <= 1) {
return 1;
} else {
return num * argument.callee(num - 1); // 使用 callee 解耦
}
}
function sayColor() {
alert(this.color);
}
sayColor(); // this 指向的环境为全局环境,即 window
var o = {color: "blue"};
o.sayColor = sayColor;
o.sayColor(); // this 指向 o 的环境
function outer() {
inner();
}
function inner() {
alert(arguments.callee.caller);
}
outer(); // 显示 outer() 函数的源代码
每读取一个基本类型值时,后台会创建一个对应的基本包装类型的对象,从而使我们能调用一些方法来操作这些数据。如:Boolean, Number, String
var s1 = "Some text"; // 基本类型
var s2 = s1.substring(2); // 后台创建一个对象,处于读取模式
// 实际上系统的操作类似于
var s1 = "Some text";
var s1 = new String("Some text"); // 隐藏操作
var s2 = s1.substring(2);
s1 = null; // 隐藏操作
1. 创建 String 类型的实例
2. 在实例上调用指定的方法
3. 销毁实例
使用 new
创建的引用类型的实例,在执行流离开当前作用域前,一直保存在内存中
自动创建的基本包装类型,存在于一行代码的执行瞬间(隐藏操作),然后立即被销毁
使用 new
调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的
var value = "25";
var number = Number(value); // 转型函数
alert(typeof number); // --> "number"
var obj = new Number(value); // 构造函数
alert(typeof obj); // --> "Object"
不依赖宿主环境的对象,在程序执行前已经存在
isNaN()
isFinite()
parseInt()
parseFloat()
eval()
方法通过 window 对象来方法 Global 对象的属性和函数
bind() 会创建一个新函数。当这个新函数被调用时,bind() 的 1st 参数将作为函数运行时的 this,之后的一序列参数,将作为函数的参数传入
this.x = 9;
var module = {
x: 81,
getX: function() { return this.x; }
};
module.getX(); // 81
var retrieveX = module.getX;
retrieveX(); // 9,this 指向了全局作用域
var boundGetX = retrieveX.bind(module); // module 作为 retrieveX 运行时的 this
boundGetX(); // 81,x 被绑定到 module 对象中的 x