1

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 对象

Math对象

http://www.w3school.com.cn/js...


散一群逗逼
554 声望508 粉丝

做一位有逼格的前端工程师