Function类型
没有重载
声明了两个同名函数,而结果则是后面的函数覆盖了前面的函数。
var addSomeNumber = function (num){
return num + 100;
};
addSomeNumber = function (num) {
return num + 200;
};
var result = addSomeNumber(100); //30
函数声明与函数表达式
函数声明:
析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),进行声明提升到源代码树的顶部。
alert(sum(10,10));
function sum(num1, num2){
return num1 + num2;
}
函数表达式:
在执行到函数所在的语句之前,变量 sum 中不会保存有对函数的引用。
alert(sum(10,10)); // "unexpected identifier"
var sum = function(num1, num2){
return num1 + num2;
}
作为值的函数
函数名本身就是变量,所以函数也可以作为值来使用。也就是说,不仅可以 像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。
函数内部属性
arguments:
它是一个类数组对象,包含着传入函数中的所有参数callee
该属性是一个指针,指向拥有这个 arguments 对象的函数。
function factorial(num){
if (num <=1) {
return 1;
} else {
return num * arguments.callee(num-1)
}
}
无论引用函数时使用的是什么名字,都可以保证正常完递归调用。
this
this引用的是函数据以执行的环境对象
window.color = "red";
var o = { color: "blue" };
function sayColor(){
alert(this.color);
}
sayColor(); //"red"
o.sayColor = sayColor;
o.sayColor(); //"blue"
函数属性和方法
length
表示函数希望接收的命名参数的个数。
function sayName(name){
alert(name);
}
function sum(num1, num2){
return num1 + num2;
}
function sayHi(){
alert("hi");
}
alert(sayName.length); //1
alert(sum.length); //2
alert(sayHi.length); //0
prototype
保存它们所有实例方法的真正所在=
基本包装类型
每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们 能够调用一些方法来操作这些数据。
var s1 = "some text";
var s2 = s1.substring(2);
不能手动添加属性
用 new 操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。
var s1 = "some text";
s1.color = "red";
alert(s1.color); //undefined
单体内置对象
Global对象
URL编码方法
encodeURI():不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;
encodeURIComponent():它发现的任何非标准字符进行编码。eval方法
Global 对象的属性
window 对象
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。